From 5539bb744513f2b235b069eb5f9b14ab71a68c02 Mon Sep 17 00:00:00 2001 From: Gabriel Eirea Date: Sat, 11 Dec 2010 22:16:44 +0000 Subject: First commit --- diff --git a/#Game.py# b/#Game.py# new file mode 100644 index 0000000..0b2c4ea --- /dev/null +++ b/#Game.py# @@ -0,0 +1,59 @@ +import pygame +import os +from AnimatedSprite import * + +class Game(): + + def __init__(self): + pygame.display.init() + self.screen = pygame.display.set_mode((800,600)) + self.clock = pygame.time.Clock() + + # load images + images_main = self.load_sprite_group(50,50,"main.png") + # load levels + # setup objects + self.me = AnimatedSprite(images_main,30) + # start + print("initializing...") + + def load_sprite_group(self, w, h, filename): + ''' + Specs : + Master can be any height. + Sprites frames width must be the same width + Master width must be len(frames)*frame.width + Assuming you ressources directory is named "ressources" + ''' + images = [] + master_image = pygame.image.load(os.path.join('images', filename)).convert_alpha() + + master_width, master_height = master_image.get_size() + for i in xrange(int(master_width/w)): + images.append(master_image.subsurface((i*w,0,w,h))) + return images + + def start (self): + print("starting...") + while True: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + return + + if event.type == pygame.MOUSEBUTTONDOWN: + pass + + self.screen.fill((0,0,0)) + time_passed = self.clock.tick(30) + + self.me.render(self.screen) + + pygame.display.flip() + + +def main(): + game = Game() + game.start() + +if __name__ == "__main__": + main() diff --git a/AnimatedSprite.py b/AnimatedSprite.py new file mode 100644 index 0000000..084f03f --- /dev/null +++ b/AnimatedSprite.py @@ -0,0 +1,306 @@ +import pygame +import os +import random + +LEFT = 1 +RIGHT = 2 +UP = 3 +DOWN =4 + +class AnimatedSprite(pygame.sprite.Sprite): + """ + AnimatedSprite is a custom Sprite class for animated objects + + images: list with sprite images + sprites: list with image# for every frame + next_frames: list with next frame from current one + dxs: list with dx for current frame + dys: list with dy for current frame + xini: initial x position + yini: initial y position + fps: fps + """ + + def __init__(self, images, sprites, next_frames, + dxs, dys, xini, yini, fps = 10): + pygame.sprite.Sprite.__init__(self) + self._images = images + + # Track the time we started, and the time between updates. + # Then we can figure out when we have to switch the image. + self._start = pygame.time.get_ticks() + self._delay = 1000 / fps + self._last_update = 0 + self._frame = 0 + + self._sprites = sprites + self._next_frames = next_frames + self._dxs = dxs + self._dys = dys + self.x = xini + self.y = yini + self.move = 0 + + self.image = self._images[self._sprites[self._frame]] + + # Call update to set our first image. + self.update(pygame.time.get_ticks()) + + def update(self, t): + # Note that this doesn't work if it's been more that self._delay + # time between calls to update(); we only update the image once + # then, but it really should be updated twice. + +# print t + +# if t - self._last_update > self._delay: +# if self._frame >= 2: #len(self._images): +# self._frame = 0 + print self._frame + self.image = self._images[self._sprites[self._frame]] +# self.x += self._dxs[self._frame] +# if move == RIGHT: +# self.x += 5 +# elif move == LEFT: +# self.x -= 5 +# self.y += self._dys[self._frame] + self._last_update = t + + def render(self, screen): +# self.update(pygame.time.get_ticks()) + screen.blit(self.image, (self.x, self.y)) +# pygame.draw.rect(screen,(0,0,0),(self.x+15, self.y+38, 38, 38),1) + + def domove(self, grilla): + if self.move == RIGHT: + if self.x+62<1200: + if grilla[(self.y+78)/50][(self.x+62)/50] == 0 and \ + grilla[(self.y+40)/50][(self.x+62)/50] == 0: + self.x += 8 + self._frame = self._next_frames[self._frame] + else: + self.x += 8 - (self.x+62)%50 -1 + else: + self.x = 1146 + elif self.move == LEFT: + if self.x+8 > 0: + if grilla[(self.y+78)/50][(self.x+8)/50] == 0 and \ + grilla[(self.y+40)/50][(self.x+8)/50] == 0: + self.x -= 8 + self._frame = self._next_frames[self._frame] + else: + self.x += -8 + 50 - (self.x+8)%50 +1 + else: + self.x = -16 + elif self.move == UP: + if self.y+16 > 0: + if grilla[(self.y+34)/50][(self.x+16)/50] == 0 and \ + grilla[(self.y+34)/50][(self.x+54)/50] == 0: + self.y -= 6 + self._frame = self._next_frames[self._frame] + else: + self.y += -6 + 50 - (self.y+34)%50 +1 + else: + self.y = -22 + elif self.move == DOWN: + if self.y+84 < 900: + if grilla[(self.y+84)/50][(self.x+16)/50] == 0 and \ + grilla[(self.y+84)/50][(self.x+54)/50] == 0: + self.y += 6 + self._frame = self._next_frames[self._frame] + else: + self.y += 6 - (self.y+84)%50 -1 + else: + self.y = 900-78 + + def ai(self, grilla): + if self.move == RIGHT: + if self.x+62<1200: + if grilla[(self.y+78)/50][(self.x+62)/50] == 0 and \ + grilla[(self.y+40)/50][(self.x+62)/50] == 0: + self.x += 8 + self._frame = self._next_frames[self._frame] + else: + self.x += 8 - (self.x+62)%50 -1 + self.move = random.randint(1,4) + self.startupFrame() + else: + self.x = 1146 + self.move = random.randint(1,4) + self.startupFrame() + elif self.move == LEFT: + if self.x+8 > 0: + if grilla[(self.y+78)/50][(self.x+8)/50] == 0 and \ + grilla[(self.y+40)/50][(self.x+8)/50] == 0: + self.x -= 8 + self._frame = self._next_frames[self._frame] + else: + self.x += -8 + 50 - (self.x+8)%50 +1 + self.move = random.randint(1,4) + self.startupFrame() + else: + self.x = -16 + self.move = random.randint(1,4) + self.startupFrame() + elif self.move == UP: + if self.y+16 > 0: + if grilla[(self.y+34)/50][(self.x+16)/50] == 0 and \ + grilla[(self.y+34)/50][(self.x+54)/50] == 0: + self.y -= 6 + self._frame = self._next_frames[self._frame] + else: + self.y += -6 + 50 - (self.y+34)%50 +1 + self.move = random.randint(1,4) + self.startupFrame() + else: + self.y = -22 + self.move = random.randint(1,4) + self.startupFrame() + elif self.move == DOWN: + if self.y+84 < 900: + if grilla[(self.y+84)/50][(self.x+16)/50] == 0 and \ + grilla[(self.y+84)/50][(self.x+54)/50] == 0: + self.y += 6 + self._frame = self._next_frames[self._frame] + else: + self.y += 6 - (self.y+84)%50 -1 + self.move = random.randint(1,4) + self.startupFrame() + else: + self.y = 900-78 + self.move = random.randint(1,4) + self.startupFrame() + + + def updateFrame(self, fr): + self._frame = fr + + def startupFrame(self): + if self.move == UP: + self._frame = 0 + elif self.move == DOWN: + self._frame = 8 + elif self.move == LEFT: + self._frame = 16 + elif self.move == RIGHT: + self._frame = 24 + + + def updateMove(self,move): + self.move = move + + + +def dibujar_grilla(grilla,screen): + for yi in range(18): + for xi in range(24): + if grilla[yi][xi] == 1: + pygame.draw.rect(screen,(100,100,100),(xi*50,yi*50,50,50),2) + + + +if __name__ == "__main__": + + pygame.display.init() + screen = pygame.display.set_mode((1200,900)) + clock = pygame.time.Clock() + + images = [] + master_image = pygame.image.load(os.path.join('images', 'xoxi-ninios-sprite-01.png')).convert_alpha() + master_width, master_height = master_image.get_size() + w = int(master_width/4) + h = int(master_height/4) + for i in xrange(4): + images.append(master_image.subsurface((i*w,0,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,h,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,2*h,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,3*h,w,h))) + + bg_image = pygame.image.load(os.path.join('images', 'derechos-plaza-fondo.jpg')).convert_alpha() + + sps = [0, 1, 0, 2, 0, 1, 0, 3, 4, 5, 4, 6, 4, 5, 4, 7, 8, 9, 8, 10, + 8, 9, 8, 11, 15, 13, 15, 14, 15, 13, 15, 12] + nf = [1, 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, 15, 8, 17, 18, 19, + 20, 21, 22, 23, 16, 25, 26, 27, 28, 29, 30, 31, 24] + dxs = [5, 5, 5, 5, 5, -5, -5, -5, -5, -5] + dys = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + + sp = AnimatedSprite(images, sps, nf, dxs, dys, 50, 400, 10) + sp2 = AnimatedSprite(images, sps, nf, dxs, dys, 50, 400, 10) + + grilla = [[0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1], + [0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0], + [0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0], + [0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1], + [0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1], + [0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0], + [0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0], + [0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1], + [1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1], + [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], + [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1], + [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1]] + + + playing = True + + sp.updateMove(0) + sp2.updateMove(random.randint(1,4)) + + while playing: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + playing = False + elif event.type == pygame.MOUSEBUTTONDOWN: + pass + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_UP: + sp.updateMove(UP) + sp.updateFrame(0) + if event.key == pygame.K_DOWN: + sp.updateMove(DOWN) + sp.updateFrame(8) + if event.key == pygame.K_LEFT: + sp.updateMove(LEFT) + sp.updateFrame(16) + if event.key == pygame.K_RIGHT: + sp.updateMove(RIGHT) + sp.updateFrame(24) + elif event.type == pygame.KEYUP: + if event.key == pygame.K_UP: + sp.updateMove(0) + sp.updateFrame(0) + if event.key == pygame.K_DOWN: + sp.updateMove(0) + sp.updateFrame(8) + if event.key == pygame.K_LEFT: + sp.updateMove(0) + sp.updateFrame(16) + if event.key == pygame.K_RIGHT: + sp.updateMove(0) + sp.updateFrame(24) + + sp.domove(grilla) + sp2.ai(grilla) + + screen.blit(bg_image, (0, 0)) + +# dibujar_grilla(grilla,screen) + + time_passed = clock.tick(20) + sp.update(time_passed) + sp2.update(time_passed) + sp.render(screen) + sp2.render(screen) + + pygame.display.flip() + diff --git a/AnimatedSprite.pyc b/AnimatedSprite.pyc new file mode 100644 index 0000000..30a0149 --- /dev/null +++ b/AnimatedSprite.pyc Binary files differ diff --git a/AnimatedSprite.py~ b/AnimatedSprite.py~ new file mode 100644 index 0000000..968124d --- /dev/null +++ b/AnimatedSprite.py~ @@ -0,0 +1,189 @@ +import pygame +import os + +LEFT = 1 +RIGHT = 2 +UP = 3 +DOWN =4 + +class AnimatedSprite(pygame.sprite.Sprite): + """ + AnimatedSprite is a custom Sprite class for animated objects + + images: list with sprite images + sprites: list with image# for every frame + next_frames: list with next frame from current one + dxs: list with dx for current frame + dys: list with dy for current frame + xini: initial x position + yini: initial y position + fps: fps + """ + + def __init__(self, images, sprites, next_frames, + dxs, dys, xini, yini, fps = 10): + pygame.sprite.Sprite.__init__(self) + self._images = images + + # Track the time we started, and the time between updates. + # Then we can figure out when we have to switch the image. + self._start = pygame.time.get_ticks() + self._delay = 1000 / fps + self._last_update = 0 + self._frame = 0 + + self._sprites = sprites + self._next_frames = next_frames + self._dxs = dxs + self._dys = dys + self.x = xini + self.y = yini + + self.image = self._images[self._sprites[self._frame]] + + # Call update to set our first image. + self.update(pygame.time.get_ticks()) + + def update(self, t): + # Note that this doesn't work if it's been more that self._delay + # time between calls to update(); we only update the image once + # then, but it really should be updated twice. + +# print t + +# if t - self._last_update > self._delay: +# if self._frame >= 2: #len(self._images): +# self._frame = 0 + print self._frame + self.image = self._images[self._sprites[self._frame]] +# self.x += self._dxs[self._frame] +# if move == RIGHT: +# self.x += 5 +# elif move == LEFT: +# self.x -= 5 +# self.y += self._dys[self._frame] + self._last_update = t + + def render(self, screen): +# self.update(pygame.time.get_ticks()) + screen.blit(self.image, (self.x, self.y)) + + def move(self, move, grilla): + print "%d , %d" % (self.y/50,self.x/50) + if move == RIGHT: + if grilla[(self.y+50)/50][(self.x+70)/50] == 0: # arreglar + self.x += 8 + self._frame = self._next_frames[self._frame] + elif move == LEFT: + if grilla[(self.y+50)/50][(self.x-20)/50] == 0: # arreglar + self.x -= 8 + self._frame = self._next_frames[self._frame] + elif move == UP: + if grilla[(self.y)/50][(self.x+50)/50] == 0: # arreglar + self.y -= 6 + self._frame = self._next_frames[self._frame] + elif move == DOWN: + if grilla[(self.y+80)/50][(self.x+50)/50] == 0: # arreglar + self.y += 6 + self._frame = self._next_frames[self._frame] + + def updateFrame(self, sprite): + self._frame = sprite + +if __name__ == "__main__": + + pygame.display.init() + screen = pygame.display.set_mode((1200,900)) + clock = pygame.time.Clock() + + images = [] + master_image = pygame.image.load(os.path.join('images', 'xoxi-ninios-sprite-01.png')).convert_alpha() + master_width, master_height = master_image.get_size() + w = int(master_width/4) + h = int(master_height/4) + for i in xrange(4): + images.append(master_image.subsurface((i*w,0,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,h,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,2*h,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,3*h,w,h))) + + bg_image = pygame.image.load(os.path.join('images', 'derechos-plaza-fondo.jpg')).convert_alpha() + + sps = [0, 1, 0, 2, 0, 1, 0, 3, 4, 5, 4, 6, 4, 5, 4, 7, 8, 9, 8, 10, + 8, 9, 8, 11, 15, 13, 15, 14, 15, 13, 15, 12] + nf = [1, 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, 15, 8, 17, 18, 19, + 20, 21, 22, 23, 16, 25, 26, 27, 28, 29, 30, 31, 24] + dxs = [5, 5, 5, 5, 5, -5, -5, -5, -5, -5] + dys = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + + sp = AnimatedSprite(images, sps, nf, dxs, dys, 50, 400, 10) + + grilla = [[0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1], + [0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0], + [0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0], + [0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1], + [0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1],# aca mal + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1], + [0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1]] + + playing = True + + move = 0 + + while playing: +# clock.tick(30) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + playing = False + elif event.type == pygame.MOUSEBUTTONDOWN: + pass + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_UP: + move = UP + sp.updateFrame(0) + if event.key == pygame.K_DOWN: + move = DOWN + sp.updateFrame(8) + if event.key == pygame.K_LEFT: + move = LEFT + sp.updateFrame(16) + if event.key == pygame.K_RIGHT: + move = RIGHT + sp.updateFrame(24) + elif event.type == pygame.KEYUP: + if event.key == pygame.K_UP: + move = 0 + sp.updateFrame(0) + if event.key == pygame.K_DOWN: + move = 0 + sp.updateFrame(8) + if event.key == pygame.K_LEFT: + move = 0 + sp.updateFrame(16) + if event.key == pygame.K_RIGHT: + move = 0 + sp.updateFrame(24) + + sp.move(move, grilla) + +# screen.fill((100,100,100)) + screen.blit(bg_image, (0, 0)) + time_passed = clock.tick(15) + sp.update(time_passed) + sp.render(screen) + + pygame.display.flip() diff --git a/AnimatedSprite_0.py b/AnimatedSprite_0.py new file mode 100644 index 0000000..bfe4e59 --- /dev/null +++ b/AnimatedSprite_0.py @@ -0,0 +1,158 @@ +import pygame +import os + +LEFT = 1 +RIGHT = 2 +UP = 3 +DOWN =4 + +class AnimatedSprite(pygame.sprite.Sprite): + """ + AnimatedSprite is a custom Sprite class for animated objects + + images: list with sprite images + sprites: list with image# for every frame + next_frames: list with next frame from current one + dxs: list with dx for current frame + dys: list with dy for current frame + xini: initial x position + yini: initial y position + fps: fps + """ + + def __init__(self, images, sprites, next_frames, + dxs, dys, xini, yini, fps = 10): + pygame.sprite.Sprite.__init__(self) + self._images = images + + # Track the time we started, and the time between updates. + # Then we can figure out when we have to switch the image. + self._start = pygame.time.get_ticks() + self._delay = 1000 / fps + self._last_update = 0 + self._frame = 0 + + self._sprites = sprites + self._next_frames = next_frames + self._dxs = dxs + self._dys = dys + self.x = xini + self.y = yini + + self.image = self._images[self._sprites[self._frame]] + + # Call update to set our first image. + self.update(pygame.time.get_ticks()) + + def update(self, t): + # Note that this doesn't work if it's been more that self._delay + # time between calls to update(); we only update the image once + # then, but it really should be updated twice. + +# print t + +# if t - self._last_update > self._delay: +# if self._frame >= 2: #len(self._images): +# self._frame = 0 + self.image = self._images[self._sprites[self._frame]] +# self.x += self._dxs[self._frame] +# if move == RIGHT: +# self.x += 5 +# elif move == LEFT: +# self.x -= 5 +# self.y += self._dys[self._frame] + self._last_update = t + + def render(self, screen): +# self.update(pygame.time.get_ticks()) + screen.blit(self.image, (self.x, self.y)) + + def move(self, move): + if move == RIGHT: + self.x += 5 + self._frame = self._next_frames[self._frame] + elif move == LEFT: + self.x -= 5 + self._frame = self._next_frames[self._frame] + elif move == UP: + self.y -= 5 + self._frame = self._next_frames[self._frame] + elif move == DOWN: + self.y += 5 + self._frame = self._next_frames[self._frame] + + + + def updateFrame(self, sprite): + self._frame = sprite + +if __name__ == "__main__": + + pygame.display.init() + screen = pygame.display.set_mode((800,600)) + clock = pygame.time.Clock() + + images = [] + master_image = pygame.image.load(os.path.join('images', 'xoxi-ninios-sprite-01_800.png')).convert_alpha() + master_width, master_height = master_image.get_size() + w = int(master_width/4) + h = int(master_height/4) + for i in xrange(4): + images.append(master_image.subsurface((i*w,0,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,h,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,2*h,w,h))) + for i in xrange(4): + images.append(master_image.subsurface((i*w,3*h,w,h))) + + sps = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + nf = [1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12] + dxs = [5, 5, 5, 5, 5, -5, -5, -5, -5, -5] + dys = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + + sp = AnimatedSprite(images, sps, nf, dxs, dys, 50, 400, 10) + + playing = True + + move = 0 + + while playing: + clock.tick(30) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + playing = False + elif event.type == pygame.MOUSEBUTTONDOWN: + pass + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_UP: + move = UP + sp.updateFrame(0) + if event.key == pygame.K_DOWN: + move = DOWN + sp.updateFrame(4) + if event.key == pygame.K_LEFT: + move = LEFT + sp.updateFrame(8) + if event.key == pygame.K_RIGHT: + move = RIGHT + sp.updateFrame(15) + elif event.type == pygame.KEYUP: + if event.key == pygame.K_UP: + move = 0 + if event.key == pygame.K_DOWN: + move = 0 + if event.key == pygame.K_LEFT: + move = 0 + if event.key == pygame.K_RIGHT: + move = 0 + + sp.move(move) + + screen.fill((100,100,100)) + time_passed = clock.tick(30) + print move + sp.update(time_passed) + sp.render(screen) + + pygame.display.flip() diff --git a/Game.py b/Game.py new file mode 100644 index 0000000..63542d5 --- /dev/null +++ b/Game.py @@ -0,0 +1,59 @@ +import pygame +import os +from AnimatedSprite import * + +class Game(): + + def __init__(self): + pygame.display.init() + self.screen = pygame.display.set_mode((1200,900)) + self.clock = pygame.time.Clock() + + # load images + images_main = self.load_sprite_group(50,50,"main.png") + # load levels + # setup objects + self.me = AnimatedSprite(images_main,30) + # start + print("initializing...") + + def load_sprite_group(self, w, h, filename): + ''' + Specs : + Master can be any height. + Sprites frames width must be the same width + Master width must be len(frames)*frame.width + Assuming you ressources directory is named "ressources" + ''' + images = [] + master_image = pygame.image.load(os.path.join('images', filename)).convert_alpha() + + master_width, master_height = master_image.get_size() + for i in xrange(int(master_width/w)): + images.append(master_image.subsurface((i*w,0,w,h))) + return images + + def start (self): + print("starting...") + while True: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + return + + if event.type == pygame.MOUSEBUTTONDOWN: + pass + + self.screen.fill((0,0,0)) + time_passed = self.clock.tick(30) + + self.me.render(self.screen) + + pygame.display.flip() + + +def main(): + game = Game() + game.start() + +if __name__ == "__main__": + main() diff --git a/README b/README new file mode 100644 index 0000000..9f8cc00 --- /dev/null +++ b/README @@ -0,0 +1 @@ +Main file so far: AnimatedSprite.py diff --git a/images/boy.png b/images/boy.png new file mode 100644 index 0000000..0565169 --- /dev/null +++ b/images/boy.png Binary files differ diff --git a/images/boy.svg b/images/boy.svg new file mode 100644 index 0000000..c549e9d --- /dev/null +++ b/images/boy.svg @@ -0,0 +1,597 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/boy2_800.png b/images/boy2_800.png new file mode 100644 index 0000000..a40604e --- /dev/null +++ b/images/boy2_800.png Binary files differ diff --git a/images/boy_800.png b/images/boy_800.png new file mode 100644 index 0000000..116e3b6 --- /dev/null +++ b/images/boy_800.png Binary files differ diff --git a/images/derechos-plaza-fondo.jpg b/images/derechos-plaza-fondo.jpg new file mode 100644 index 0000000..2571eef --- /dev/null +++ b/images/derechos-plaza-fondo.jpg Binary files differ diff --git a/images/derechos-plaza-laberinto.jpg b/images/derechos-plaza-laberinto.jpg new file mode 100644 index 0000000..f1fd0e5 --- /dev/null +++ b/images/derechos-plaza-laberinto.jpg Binary files differ diff --git a/images/derechos-tileset-elementos.png b/images/derechos-tileset-elementos.png new file mode 100644 index 0000000..55413e8 --- /dev/null +++ b/images/derechos-tileset-elementos.png Binary files differ diff --git a/images/derechos-tileset-fondos.png b/images/derechos-tileset-fondos.png new file mode 100644 index 0000000..6687051 --- /dev/null +++ b/images/derechos-tileset-fondos.png Binary files differ diff --git a/images/main.png b/images/main.png new file mode 100644 index 0000000..d5aaec6 --- /dev/null +++ b/images/main.png Binary files differ diff --git a/images/main.xcf b/images/main.xcf new file mode 100644 index 0000000..5eef5ec --- /dev/null +++ b/images/main.xcf Binary files differ diff --git a/images/xoxi-ninios-sprite-01.gif b/images/xoxi-ninios-sprite-01.gif new file mode 100755 index 0000000..4e01f56 --- /dev/null +++ b/images/xoxi-ninios-sprite-01.gif Binary files differ diff --git a/images/xoxi-ninios-sprite-01.png b/images/xoxi-ninios-sprite-01.png new file mode 100644 index 0000000..fb53af5 --- /dev/null +++ b/images/xoxi-ninios-sprite-01.png Binary files differ diff --git a/images/xoxi-ninios-sprite-02.gif b/images/xoxi-ninios-sprite-02.gif new file mode 100644 index 0000000..0c104cf --- /dev/null +++ b/images/xoxi-ninios-sprite-02.gif Binary files differ diff --git a/images/xoxi-ninios-sprite-03.gif b/images/xoxi-ninios-sprite-03.gif new file mode 100644 index 0000000..1c6f9fa --- /dev/null +++ b/images/xoxi-ninios-sprite-03.gif Binary files differ -- cgit v0.9.1