Skip to content

Commit 00e675f

Browse files
author
Michael Fiano
committed
Cleaned up sprite classes.
1 parent d76961f commit 00e675f

File tree

1 file changed

+18
-29
lines changed

1 file changed

+18
-29
lines changed

lib/sprite.py

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ class CharacterSprite(pygame.sprite.DirtySprite):
5050
"""A sprite for moving character sprites."""
5151

5252
def __init__(self, screen, width, height, start_direction, direction,
53-
stopped, start_location, spritesheet, collide_size,
54-
collide_offset, speed_animate, speed_walk):
53+
stopped, start_location, spritesheet, collide_size, collide_offset,
54+
speed_animate, speed_walk):
5555
pygame.sprite.DirtySprite.__init__(self)
5656
self.screen = screen
5757
self.window = screen.window
@@ -135,10 +135,10 @@ def move_check(self):
135135
"""Check for walls, terrain, region, and random encounters."""
136136

137137
directions = {
138-
'up': self.collide_rect.move(0, -self.movement),
139-
'down': self.collide_rect.move(0, self.movement),
140-
'left': self.collide_rect.move(-self.movement, 0),
141-
'right': self.collide_rect.move(self.movement, 0) }
138+
'up': self.collide_rect.move(0, -self.movement),
139+
'down': self.collide_rect.move(0, self.movement),
140+
'left': self.collide_rect.move(-self.movement, 0),
141+
'right': self.collide_rect.move(self.movement, 0) }
142142
for key, rect in directions.iteritems():
143143
self.check_walls(key, rect)
144144
self.check_terrain(rect)
@@ -150,10 +150,8 @@ def check_walls(self, key, rect):
150150

151151
if pygame.Rect(rect).collidelistall(self.map.nowalk) != []:
152152
self.collide[key] = True
153-
if self.collide[self.direction]:
154-
self.stop = True
155-
else:
156-
self.collide[key] = False
153+
if self.collide[self.direction]: self.stop = True
154+
else: self.collide[key] = False
157155

158156
def check_terrain(self, rect):
159157
"""Check the type of terrain the sprite moved to."""
@@ -171,18 +169,21 @@ def check_region(self, rect):
171169
for region in self.map.map_regions:
172170
if pygame.Rect(rect).collidelistall(
173171
self.map.regions[region]) != []:
174-
self.current_region = region
172+
self.current_region = region
175173

176174

177175
class PartySprite(CharacterSprite):
178176
"""A sprite for party characters."""
179177

180178
def __init__(self, screen, hero, char):
179+
start_direction = screen.map.start_direction
181180
self.face_small = load_image("char", "faces", char + "_small")
181+
self.hero = hero
182182
hero_position = (hero.rect[0], hero.rect[1])
183183
self.position = (hero_position[0],hero_position[1]+32)
184184
CharacterSprite.__init__(self, screen, CHAR_WIDTH, CHAR_HEIGHT,
185-
"down", None, True, self.position, char, (32,32), (32,32), 3, 3)
185+
start_direction, None, True, self.position, char, (32,32),
186+
(32,32), 3, 3)
186187

187188

188189
class PlayerSprite(CharacterSprite):
@@ -209,44 +210,32 @@ def move(self):
209210
self.dirty = 1
210211
direction = self.direction
211212
map_rect = self.map.layers['terrain'].rect
212-
party = self.screen.party
213213
if not self.collide[direction]:
214+
214215
if direction == "up":
215216
if self.rect.centery < PLAYER_SCROLL_TOP and (
216217
self.scroll_pos[1] < 0):
217218
self.scroll_pos[1] += self.movement
218219
self.map.move([0, self.movement])
219-
else:
220-
for char in party.chars:
221-
party.chars[char].dirty = 1
222-
party.chars[char].rect.move_ip(0, -self.movement)
220+
else: self.rect.move_ip(0, -self.movement)
223221
elif direction == "down":
224222
if self.rect.centery > PLAYER_SCROLL_BOTTOM and (
225223
map_rect.height + self.scroll_pos[1] > CAMERA_SIZE[1]):
226224
self.scroll_pos[1] -= self.movement
227225
self.map.move([0, -self.movement])
228-
else:
229-
for char in party.chars:
230-
party.chars[char].dirty = 1
231-
party.chars[char].rect.move_ip(0, self.movement)
226+
else: self.rect.move_ip(0, self.movement)
232227
elif direction == "left":
233228
if self.rect.centerx < PLAYER_SCROLL_LEFT and (
234229
self.scroll_pos[0] < 0):
235230
self.scroll_pos[0] += self.movement
236231
self.map.move([self.movement, 0])
237-
else:
238-
for char in party.chars:
239-
party.chars[char].dirty = 1
240-
party.chars[char].rect.move_ip(-self.movement, 0)
232+
else: self.rect.move_ip(-self.movement, 0)
241233
elif direction == "right":
242234
if self.rect.centerx > PLAYER_SCROLL_RIGHT and (
243235
map_rect.width + self.scroll_pos[0] > CAMERA_SIZE[0]):
244236
self.scroll_pos[0] -= self.movement
245237
self.map.move([-self.movement, 0])
246-
else:
247-
for char in party.chars:
248-
party.chars[char].dirty = 1
249-
party.chars[char].rect.move_ip(self.movement, 0)
238+
else: self.rect.move_ip(self.movement, 0)
250239

251240
def check_encounter(self):
252241
"""Check for a random encounter."""

0 commit comments

Comments
 (0)