Bueno, pues el otro dia me descargue un ejemplo de un juego que habia aqui colgado llamado Invaders, que es tipo "1945", pues tras estudiar el codigo y verlo decidid intentar hacer una copia fijandome en el ejemplo para estudiarlo y ver mas o menos como funciona pygame, pero es que por mas que me fijo y me fijo no soy capaz de hacer que a`partir de una clase crear varias naves enemigas, os dejo el codigo, perdonar si esta un poco desorganizado
- Código: Seleccionar todo
#Importacion de librerias
import pygame
import random
from pygame.locals import *
from pygame.sprite import Sprite
#Variables de tamagno
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
#Funcion para subir fotos
def load_image(fullname, colorkey=False):
try:
image = pygame.image.load(fullname)
except pygame.error, message:
print 'No se puede cargar la imagen: ', fullname
raise SystemExit, message
image = image.convert()
if colorkey:
colorkey = image.get_at((0, 0))
image.set_colorkey(colorkey, RLEACCEL)
return (image, image.get_rect())
#Clase de la nave
class nave(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
(self.image, self.rect) = load_image('datos/nave.png', True)
self.rect = self.image.get_rect()
self.rect.x = 368
self.rect.y = 536
def update(self):
teclas = pygame.key.get_pressed()
#Movimiento
if teclas[K_LEFT]:
self.rect.x -= 1
if teclas[K_RIGHT]:
self.rect.x += 1
if teclas[K_UP]:
self.rect.y -= 1
if teclas[K_DOWN]:
self.rect.y += 1
#Limites
if self.rect.x <26> 826:
self.rect.x = -26
if self.rect.y <0>= 536:
self.rect.y = 536
#Naves enemigas
class enemigo(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
(self.image, self.rect) = load_image('datos/enemigo.png', True)
self.set_initial_position()
self.load_image()
def set_initial_position(self):
self.rect.centerx = random.randint(100, 700)
self.rect.y = 0
self.x_velocity = 1
self.y_velocity = 2
def load_image(self):
(self.image, self.rect) = load_image('datos/enemigo.png', True)
def update(self):
#Mover el sprite en 20
self.rect.move_ip((self.x_velocity, self.y_velocity))
if self.rect.left <64>= SCREEN_WIDTH +64:
self.rect.left = -64
if self.rect.y >= SCREEN_HEIGHT:
self.rect.y = 0
#Programa principal
if __name__ == '__main__':
pygame.init()
salir = False
screen = pygame.display.set_mode( (SCREEN_WIDTH,SCREEN_HEIGHT) )
pygame.display.set_caption( "Pruebas" )
(background_image, _) = load_image('back.jpg')
screen.blit(background_image, (0, 0))
sprites = pygame.sprite.RenderClear()
nave = nave()
enemigo = enemigo()
sprites.add(nave)
enemies = pygame.sprite.RenderClear()
enemy_counter = 0
while not salir:
screen.blit(background_image, (0,0) )
keyinput = pygame.key.get_pressed()
keyinput = pygame.key.get_pressed()
sprites.update()
enemies.add(enemigo)
sprites.add(enemigo)
sprites.draw(screen)
pygame.display.flip()
if keyinput[K_ESCAPE] or pygame.event.peek(QUIT):
raise SystemExit