Wenas, estaba acabado un pekeño pintball y he acabado las dos clases, la pelota y la porteria. Cuando le doy a ejecutar se me ejecuta bien pero la porteria no se me ve :S. Estoy buscando q se actualice y todo y no lo encuentro :S.
Donde puede estar el error?
import pygame
from pygame.locals import *
from math import *
from pygame.sprite import Sprite
width = 1024
height = 786
class Bola(Sprite):
def __init__(self, x, y, radio, color=(0, 255, 0)):
Sprite.__init__(self)
self.x, self.y = x, y
self.radio = radio
self.crear_imagen(radio, color)
self.rect = self.image.get_rect(self.image)
self.empujar(0, 0)
def crear_imagen(self, radio, color):
ancho = alto = radio * 2
self.image = pygame.Surface((ancho, alto)).convert()
self.image.set_colorkey((0, 0, 0))
pygame.draw.circle(self.image, color, (radio, radio), radio)
def update(self):
self.x += self.dx
self.y += self.dy
self.rect.center = (self.x, self.y)
self.verificar_limites()
def verificar_limites(self):
if self.rect.top < 0:
self.rect.top = 0
self.y = self.radio
self.dy *= -1.05
elif self.rect.bottom > height:
self.rect.bottom = height
self.y = height - self.radio
self.dy *= -1.05
def empujar(self, dx, dy):
self.dx = dx
self.dy = dy
class Porteria(Sprite):
def __init__(self, x, y, ancho, alto, color=(255, 0, 255)):
Sprite.__init__(self)
self.x, self.y = x, y
self.d = ancho
self.h = alto
self.crear_imagen(x, y, ancho, alto, color)
self.rect = self.image.get_rect(self.image)
self.empujar(0, 0)
def crear_imagen(self, x, y, ancho, alto, color):
ancho2 = ancho * 2
alto2 = alto * 2
self.image = pygame.Surface((ancho, alto)).convert()
self.image.set_colorkey((0, 0, 0))
pygame.draw.rect(self.image, color, (x, y, ancho, alto))
def update(self):
self.y = self.mover_y
self.rect.center = (self.y)
self.verificar_limites()
def verificar_limites():
if self.rect.top < 0:
self.rect.top = 0
self.y = self.h
self.mover_y *= -1
elif self.rect.bottom > height:
self.rect.bottom = heigh
self.y = height - self.h
self.mover_y *=-1
def mover_y():
teclas = pygame.key.get_pressed()
if teclas[K_UP]:
self.y -= 50
elif teclas[K_DOWN]:
self.y += 50
def empujar(self, dx, dy):
self.mover_y = dy
def actualizar_pantalla(screen, bolas, porterias):
screen.fill((0, 0, 0))
bolas.draw(screen)
porterias.draw(screen)
pygame.display.flip()
def main():
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Pinbola")
bolas = pygame.sprite.Group()
porterias = pygame.sprite.Group()
b1 = Bola(x=400, y=100, radio=10)
b1.empujar(-1.5, 0.4)
p1 = Porteria(x=100, y=30, ancho=10, alto=30)
bolas.add([b1])
porterias.add([p1])
clock = pygame.time.Clock()
while True:
for e in pygame.event.get():
if e.type == QUIT:
return
clock.tick(300)
actualizar_pantalla(screen, bolas, porterias)
bolas.update()
porterias.update
if __name__ == '__main__':
main()
Gracias!!!