jueves, 15 de octubre de 2015

Un sprite con movimiento mediante teclas de dirección

#Con la siguiente salida asociada:

import pygame,time
from pygame.locals import *

SCREENRECT = Rect(0,0,640,480)

class Gato(pygame.sprite.Sprite):
    speed = 5
    bounce = 24
    images = []
    frame = 0
    animcycle=12
    def __init__(self):
        pygame.sprite.Sprite.__init__(self,self.containers)
        self.image=self.images[0]
        self.rect = self.image.get_rect()
        self.facing=-1
        
    def move(self,horver,direction):
        if horver==1:
            if direction==-1:
                self.image=self.images[0]
                self.rect.move_ip(direction*self.speed,0)
            if direction==1:
                self.image=self.images[1]
                self.image=self.images[0]
                self.rect.move_ip(direction*self.speed,0)
        if horver==-1:
            if direction==-1:
                self.image=self.images[2]
                self.rect.move_ip(0,direction*self.speed)
            if direction==1:
                self.image=self.images[3]
                self.rect.move_ip(0,direction*self.speed)
    def update(self):
        self.frame=self.frame+1
        self.image = self.images[self.frame/self.animcycle%3]
#        self.image=self.images[

    def inf(self):
        print self.speed
        print self.bounce
        print self.images

class Bomb(pygame.sprite.Sprite):
    images=[]
    def __init__(self):
        pygame.sprite.Sprite.__init__(self,self.containers)
        self.image=self.images[0]
        self.rect=self.image.get_rect()
    def update(self):
        self.rect.move(300,300)

def main():
    pygame.init()
    clock=pygame.time.Clock()
    windowStyle=0 #FULLSCREEN

    bestDepth=pygame.display.mode_ok(SCREENRECT.size,windowStyle,32)
    disp=pygame.display.set_mode(SCREENRECT.size,windowStyle,bestDepth)

    background= pygame.Surface(SCREENRECT.size)
    img=pygame.image.load('./DataImgs/car.png')
    sheep=pygame.image.load('./DataImgs/sheep.png')
    all = pygame.sprite.RenderUpdates()
    Gato.containers = all
    bombs=pygame.sprite.Group()
    Bomb.containers = bombs, all

    img2 = pygame.transform.flip(img,1,0)
    img3 = pygame.transform.rotate(img,-90)
    img4 = pygame.transform.rotate(img,90)
    Gato.images=[img,img2,img3,img4]
    Bomb.images=[sheep]

    gato = Gato()
    bomb = Bomb() 

    gato.inf()

#    disp.blit(img,(100,00))

    while True:
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
        keystate=pygame.key.get_pressed()        
        all.clear(disp,background)
        all.update()
        if keystate[K_RIGHT]:
            gato.move(1,1)
        if keystate[K_LEFT]:
            gato.move(1,-1)
        if keystate[K_DOWN]:
            gato.move(-1,1)
        if keystate[K_UP]:
            gato.move(-1,-1)
            

#        for bomb in pygame.sprite.spritecollide(gato,bombs,1):
#            print "Explosion!"

        dirty=all.draw(disp)
        pygame.display.update(dirty)
        clock.tick(40)



if __name__=='__main__': main()

No hay comentarios:

Publicar un comentario