Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame,os
- from states import standing, walking, skating
- import level
- class Character(pygame.sprite.Sprite):
- def __init__(self, position, setting):
- pygame.sprite.Sprite.__init__(self)
- self.setting = setting
- self.image = pygame.image.load(os.path.join("Sprite Sheets","girl.png"))
- self.rect = self.image.get_rect()
- #animation of character
- self.actions = {
- "back_walk1" : (42,5,35,46),
- "back" : (78,5,35,46),
- "back_walk2" : (119,5,35,46),
- "right_walk1" : (36,144,46,45),
- "right" : (81,144,46,45),
- "right_walk2" : (126,146,46,45),
- "front_walk1" : (40,50,37,49),
- "front" : (78,50,37,49),
- "front_walk2" : (119,50,37,49),
- "left_walk1" : (36,98,48,45),
- "left" : (81,98,48,45),
- "left_walk2" : (126,98,48,45)
- }
- #initial character position
- self.action = "back"
- self.area = pygame.rect.Rect(self.actions[self.action])
- self.rect.topleft = position
- #Character Movements
- self.walking_state = walking.Walking(self)
- self.standing_state = standing.Standing(self)
- self.skating_state = skating.Skating(self)
- self.state = self.standing_state
- self.direction = "back"
- self.walking_speed = 10
- self.skate_speed = 7
- self.level_i = 5
- #ice
- self.ice_image = pygame.image.load(os.path.join("images","ice.jpg"))
- self.ice_rect = self.ice_image.get_rect()
- self.block_image = pygame.image.load(os.path.join("images","Block.jpg"))
- self.block_image_rect = self.block_image.get_rect()
- #checks character is on ice or ground
- def onIce(self):
- print "on ice =", self.rect.colliderect(self.ice_rect)
- if self.rect.colliderect(self.ice_rect):
- return True
- else:
- return False
- def blockCollide(self):
- if self.rect.colliderect(self.block_image_rect):
- return True
- else:
- return False
- def startCollide(self):
- if self.rect == self.levels[self.level_i][1]:
- return True
- else:
- return False
- def stairCollide(self):
- if self.rect == self.levels[self.level_i][2]:
- return True
- else:
- return False
- def handle_event(self,event):
- #if self.state != self.skating_state:
- #self.onIce()
- if event.type == pygame.KEYDOWN:
- self.action = self.state.handle_event(event)
- else:
- self.action = self.state.no_event()
- def handle_animation(self):
- self.check_bounds()
- self.area = pygame.rect.Rect(self.actions[self.action])
- def touching_wall_x(self):
- if (self.rect.x == 0) or (self.rect.x == 440):
- return True
- else:
- return False
- def touching_wall_y(self):
- if (self.rect.y == 0) or (self.rect.y == 320):
- return True
- else:
- return False
- def check_bounds(self):
- # stay within width of screen
- if self.rect.x < 0:
- self.rect.x = 0
- elif self.rect.x > 440:
- self.rect.x = 440
- #stay within height of screen
- if self.rect.y < 0:
- self.rect.y = 0
- elif self.rect.y > 320:
- self.rect.y = 320
Advertisement
Add Comment
Please, Sign In to add comment