Mercurial > dw
changeset 8:ea712aee4501
Made the player just a monster plugin
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Mon, 17 Dec 2007 01:19:57 +0100 |
| parents | 4f07624ec577 |
| children | 2a0fdca2802b |
| files | avatar.py level.py map.txt monster/player.py |
| diffstat | 4 files changed, 46 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/avatar.py Mon Dec 17 01:07:31 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -import pygame -from pygame.locals import * - -from monster import Monster -from util import * - -class Avatar(Monster): - - def __init__(self, x=0, y=0, image_file="abi2.png"): - '''Create the avatar. Each one is likely to have different graphics.''' - self.facing = 0 - self.step = 0 - Monster.__init__(self, x, y, image_file) - - def update(self): - if self.step>0: - self.rect.move_ip(delta_x[self.facing]*3, delta_y[self.facing]*2) - self.z += delta_y[self.facing]*2 - self.step -= 1 - else: - self.facing = 3 - self.step = 0 - self.frame = 0 -# self.z = self.y*16-12 -# self.rect.topleft = (self.x*24, self.z) - self.anim = self.frames[self.facing-1] - self.animate(1) - - def walk(self, direction): - self.facing = direction - self.step = 8 - self.x += delta_x[self.facing] - self.y += delta_y[self.facing]
--- a/level.py Mon Dec 17 01:07:31 2007 +0100 +++ b/level.py Mon Dec 17 01:19:57 2007 +0100 @@ -17,8 +17,8 @@ self.scrollpos = [-48,-32] self.map = Map(filename) self.cache = Cache() + self.monsters = {} self.background = self.create_map(self.map) - def create_map(self, m): '''Create background and animations.''' @@ -35,18 +35,22 @@ if image: background.blit(image , (x*24+48, y*16+32)) for url in urls[1:]: - if url=='joe.png': - self.player = Avatar(x, y) - self.add_sprite(self.player) - else: - module = __import__("monster.%s" % url, globals(), {}, ["Mob"]) - self.add_sprite(module.Mob(x, y)) - + monster = self.create_monster(x,y, url) + if url=='player': + self.player = monster x += 1 x = 0 y += 1 return background + def create_monster(self, x, y, kind): + module = __import__("monster.%s" % kind, globals(), {}, ["Mob"]) + monster = module.Mob(x, y) + self.monster = self + self.add_sprite(monster) + self.monsters[(x,y)] = monster + return monster + def add_sprite(self, sprite): self.animations.add(sprite) sprite.rect.move_ip(self.scrollpos[0], self.scrollpos[1])
--- a/map.txt Mon Dec 17 01:07:31 2007 +0100 +++ b/map.txt Mon Dec 17 01:19:57 2007 +0100 @@ -7,7 +7,7 @@ B <floor.png> <jello> Z <floor.png> <jello> & <floor.png> <jello> -@ <floor.png> <joe.png> +@ <floor.png> <player> ::::::XXXXXXXXXXXXXX ::::::..::::XX::::::
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/monster/player.py Mon Dec 17 01:19:57 2007 +0100 @@ -0,0 +1,33 @@ +import pygame +from pygame.locals import * + +from monster import Monster +from util import * + +class Mob(Monster): + + def __init__(self, x=0, y=0, image_file="abi2.png"): + '''Create the avatar. Each one is likely to have different graphics.''' + self.facing = 0 + self.step = 0 + Monster.__init__(self, x, y, image_file) + + def update(self): + if self.step>0: + self.rect.move_ip(delta_x[self.facing]*3, delta_y[self.facing]*2) + self.z += delta_y[self.facing]*2 + self.step -= 1 + else: + self.facing = 3 + self.step = 0 + self.frame = 0 +# self.z = self.y*16-12 +# self.rect.topleft = (self.x*24, self.z) + self.anim = self.frames[self.facing-1] + self.animate(1) + + def walk(self, direction): + self.facing = direction + self.step = 8 + self.x += delta_x[self.facing] + self.y += delta_y[self.facing]
