Seite 1 von 1

Animation.. Warum nicht?

Verfasst: Montag 1. April 2013, 19:08
von Lordoromis
Ich versuche momentan gerade eine 2d animation zu erstellen, allerdings wird die nicht angezeigt, warum denn nicht?

Code: Alles auswählen

import sys, pygame, time, random
from pygame.locals import*



pygame.init()

Width                  = 800
Heigth                  = 600
CharSpeed          = 100
Play                      = True
FPS                       = 30
Frame                = 0
Terrain               = {"CordX" :0,
                                   "CordY" :0}

CharImage       = pygame.image.load("Char.png")
CharImage.set_colorkey(CharImage.get_at((0, 0)))

BackgroundImage = pygame.image.load("Background.png")

TerrainImage    = pygame.image.load("Terrain.png")
TerrainImage.set_colorkey(TerrainImage.get_at((0, 0)))


def animation(self, Source, PicNumber, MiliSeconds):
    MasterImage = pygame.image.load(Source)
    MasterImage.set_colorkey(MasterImage.get_at((0, 0 )))

    Images= []
    
    MasterWidth = MasterImage.get_width()
    Width = MasterWidth/PicNumber
    Heigth = MasterImage.get_height()

    for i in range(MasterWidth/Width):
        Images.append(MasterImage.subsurface((i*Width,  0,  Width, Heigth)))
    return Images


    Timer = pygame.time.get_ticks()
    if Timer >= MiliSeconds*Frame:
        Frame += 1
        Screen.blit(Images[Frame] (Width/2-75, Heigth/2-180))
        
              
    
def main():

    global Screen, MainClock, MainFont, CharImage, BackgroundImage, Walking, Frame

    Screen = pygame.display.set_mode((Width, Heigth))
    pygame.display.set_caption("WhyNot? TrueStory")
    MainFont = pygame.font.Font("freesansbold.ttf", 20)
    MainClock = pygame.time.Clock()
    Move = False
    while True:
        Screen.fill((255, 255, 255))

        for event in pygame.event.get():
            if event.type == KEYUP:
                if event.key == K_ESCAPE:
                    pygame.quit()
                    sys.exit()

                if event.key == K_d:
                    Move = False
                if event.key == K_a:
                    Move = False

            if event.type == KEYDOWN:
                if event.key == K_d:
                    Terrain["CordX"] -= CharSpeed
                    animation(CharImage, "Char_Walk_R.png", 4, 300 )
                if event.key == K_a:
                    if Terrain["CordX"] is not 0:        
                        Terrain["CordX"] += CharSpeed
                    
            if Move == 10:
                if Terrain["CordX"] is not 0:        
                    Terrain["CordX"] += CharSpeed
            elif Move == -10:
                Terrain["CordX"] -= CharSpeed
                animation(CharImage, "Char_Walk_R.png", 4, 300 )
     

        Screen.blit(BackgroundImage, (0, 0))
        Screen.blit(CharImage, (Width/2-75, Heigth/2-180))
        Screen.blit(TerrainImage, (Terrain["CordX"], Terrain["CordY"]))   
        pygame.display.update()
        MainClock.tick(FPS)
                
                
if __name__ == "__main__":
    main()

Re: Animation.. Warum nicht?

Verfasst: Montag 1. April 2013, 20:13
von /me
Der Code sieht nicht wirklich schön aus und ist durch die fehlenden Python-Tags auch nicht besonders gut lesbar. Was aber zumindest sofort auffällt ist, dass du in der Funktion animation versuchst nach einem return noch Code auszuführen.

Edit: BlackJack hat jetzt dankenswerterweise die Code-Tags ergänzt.