added many comments, fixed bloop movement in playground
This commit is contained in:
parent
1434303450
commit
ab2c7dcb48
@ -42,6 +42,7 @@ class SpriteSheet:
|
|||||||
self.img_attrib = json.load(json_file)
|
self.img_attrib = json.load(json_file)
|
||||||
json_file.close()
|
json_file.close()
|
||||||
|
|
||||||
|
# Count for how many images have been added in the image list
|
||||||
image_count = 0
|
image_count = 0
|
||||||
|
|
||||||
# Get the sprite size as a tuple
|
# Get the sprite size as a tuple
|
||||||
@ -89,6 +90,8 @@ class DataHandler:
|
|||||||
'adult': 0,
|
'adult': 0,
|
||||||
'evolution_stage': '',
|
'evolution_stage': '',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Frame counter
|
||||||
self.frames_passed = 0
|
self.frames_passed = 0
|
||||||
|
|
||||||
def write_save(self):
|
def write_save(self):
|
||||||
@ -118,12 +121,17 @@ class DataHandler:
|
|||||||
Run the game logic.
|
Run the game logic.
|
||||||
"""
|
"""
|
||||||
self.frames_passed += 1
|
self.frames_passed += 1
|
||||||
|
# Run logic of the game every second.
|
||||||
if self.frames_passed >= game_fps:
|
if self.frames_passed >= game_fps:
|
||||||
self.attributes['age'] += 1
|
|
||||||
print(self.attributes['age'])
|
|
||||||
|
|
||||||
|
# Add one to the age of the bloop.
|
||||||
|
self.attributes['age'] += 1
|
||||||
|
|
||||||
|
# Save the data when the age of the bloop is a multiple of 10.
|
||||||
if self.attributes['age'] % 10 == 0:
|
if self.attributes['age'] % 10 == 0:
|
||||||
self.write_save()
|
self.write_save()
|
||||||
|
|
||||||
|
# Reset frame counter
|
||||||
self.frames_passed = 0
|
self.frames_passed = 0
|
||||||
|
|
||||||
|
|
||||||
@ -162,7 +170,7 @@ class PlaygroundFriend(pygame.sprite.Sprite):
|
|||||||
self.index = 0
|
self.index = 0
|
||||||
self.image = self.images[self.index]
|
self.image = self.images[self.index]
|
||||||
|
|
||||||
self.animation_frames = 1
|
self.movement_frames = game_fps / 2 # How many frames pass before the bloop moves
|
||||||
self.current_frame = 0
|
self.current_frame = 0
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
@ -170,27 +178,34 @@ class PlaygroundFriend(pygame.sprite.Sprite):
|
|||||||
Takes the images loaded and animates it, spacing it out equally for the framerate.
|
Takes the images loaded and animates it, spacing it out equally for the framerate.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
margins = 9
|
margins = 9 # Margins for how far the bloop can move from the left and the right of the screen
|
||||||
movement_amount = 4
|
movement_amount = 2 # Pixels that the bloop moves in one movement
|
||||||
|
|
||||||
self.current_frame += 1
|
self.current_frame += 1
|
||||||
if self.current_frame >= self.animation_frames:
|
|
||||||
self.current_frame = 0
|
|
||||||
self.index = (self.index + 1) % len(self.images)
|
|
||||||
self.image = self.images[self.index]
|
|
||||||
|
|
||||||
# Move the sprite so long as it is not in the egg stage
|
# Check to see if the number of movement frames has passed
|
||||||
if self.evolution_stage != 0:
|
if self.current_frame >= self.movement_frames:
|
||||||
|
self.current_frame = 0
|
||||||
|
|
||||||
|
# Move only if the bloop is not in the egg stage
|
||||||
|
if self.evolution_stage != 'egg':
|
||||||
|
|
||||||
|
# Change direction if the bloop has reached either edge of the screen
|
||||||
if self.rect.x < margins:
|
if self.rect.x < margins:
|
||||||
self.direction = 1
|
self.direction = 1
|
||||||
elif self.rect.x > game_res - margins - self.rect.width:
|
elif self.rect.x > game_res - margins - self.rect.width:
|
||||||
self.direction = 0
|
self.direction = 0
|
||||||
|
|
||||||
|
# Move according to the direction.
|
||||||
if self.direction == 0:
|
if self.direction == 0:
|
||||||
self.rect.x -= movement_amount
|
self.rect.x -= movement_amount
|
||||||
else:
|
else:
|
||||||
self.rect.x += movement_amount
|
self.rect.x += movement_amount
|
||||||
|
|
||||||
|
# Animate the bloop
|
||||||
|
self.index = (self.index + 1) % len(self.images)
|
||||||
|
self.image = self.images[self.index]
|
||||||
|
|
||||||
|
|
||||||
class SelectionEgg(pygame.sprite.Sprite):
|
class SelectionEgg(pygame.sprite.Sprite):
|
||||||
"""
|
"""
|
||||||
@ -222,25 +237,13 @@ class SelectionEgg(pygame.sprite.Sprite):
|
|||||||
self.index = 0
|
self.index = 0
|
||||||
self.image = self.images[self.index]
|
self.image = self.images[self.index]
|
||||||
|
|
||||||
self.animation_frames = 1
|
|
||||||
self.current_frame = 0
|
|
||||||
|
|
||||||
def update_frame_dependent(self):
|
|
||||||
"""
|
|
||||||
Takes the images loaded and animates it, spacing it out equally for the framerate.
|
|
||||||
"""
|
|
||||||
|
|
||||||
self.current_frame += 1
|
|
||||||
if self.current_frame >= self.animation_frames:
|
|
||||||
self.current_frame = 0
|
|
||||||
self.index = (self.index + 1) % len(self.images)
|
|
||||||
self.image = self.images[self.index]
|
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""
|
"""
|
||||||
Updates the sprite object.
|
Updates the sprite object.
|
||||||
"""
|
"""
|
||||||
self.update_frame_dependent()
|
# Animate the sprite
|
||||||
|
self.index = (self.index + 1) % len(self.images)
|
||||||
|
self.image = self.images[self.index]
|
||||||
|
|
||||||
|
|
||||||
class EggInfo:
|
class EggInfo:
|
||||||
@ -284,6 +287,7 @@ class EggInfo:
|
|||||||
Draw the info icons on a given surface.
|
Draw the info icons on a given surface.
|
||||||
:param surface: the surface to draw the icons on.
|
:param surface: the surface to draw the icons on.
|
||||||
"""
|
"""
|
||||||
|
# Blit the info onto the given surface.
|
||||||
surface.blit(self.surface, (self.x, self.y))
|
surface.blit(self.surface, (self.x, self.y))
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user