Advertisement
bluesplay106

Ice Adventure - character.py

Dec 6th, 2011
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. import pygame,os
  2. from states import standing, walking, skating
  3. import level
  4.  
  5. class Character(pygame.sprite.Sprite):
  6. def __init__(self, position, setting):
  7. pygame.sprite.Sprite.__init__(self)
  8. self.setting = setting
  9.  
  10. self.image = pygame.image.load(os.path.join("Sprite Sheets","girl.png"))
  11. self.rect = self.image.get_rect()
  12.  
  13. #animation of character
  14. self.actions = {
  15. "back_walk1" : (42,5,35,46),
  16. "back" : (78,5,35,46),
  17. "back_walk2" : (119,5,35,46),
  18.  
  19. "right_walk1" : (36,144,46,45),
  20. "right" : (81,144,46,45),
  21. "right_walk2" : (126,146,46,45),
  22.  
  23. "front_walk1" : (40,50,37,49),
  24. "front" : (78,50,37,49),
  25. "front_walk2" : (119,50,37,49),
  26.  
  27. "left_walk1" : (36,98,48,45),
  28. "left" : (81,98,48,45),
  29. "left_walk2" : (126,98,48,45)
  30. }
  31.  
  32. #initial character position
  33. self.action = "back"
  34. self.area = pygame.rect.Rect(self.actions[self.action])
  35. self.rect.topleft = position
  36.  
  37. #Character Movements
  38. self.walking_state = walking.Walking(self)
  39. self.standing_state = standing.Standing(self)
  40. self.skating_state = skating.Skating(self)
  41. self.state = self.standing_state
  42. self.direction = "back"
  43.  
  44. self.walking_speed = 10
  45. self.skate_speed = 7
  46.  
  47. self.level_i = 5
  48.  
  49. #ice
  50. self.ice_image = pygame.image.load(os.path.join("images","ice.jpg"))
  51. self.ice_rect = self.ice_image.get_rect()
  52.  
  53. self.block_image = pygame.image.load(os.path.join("images","Block.jpg"))
  54. self.block_image_rect = self.block_image.get_rect()
  55.  
  56. #checks character is on ice or ground
  57. def onIce(self):
  58. print "on ice =", self.rect.colliderect(self.ice_rect)
  59. if self.rect.colliderect(self.ice_rect):
  60. return True
  61. else:
  62. return False
  63.  
  64. def blockCollide(self):
  65. if self.rect.colliderect(self.block_image_rect):
  66. return True
  67. else:
  68. return False
  69.  
  70. def startCollide(self):
  71. if self.rect == self.levels[self.level_i][1]:
  72. return True
  73. else:
  74. return False
  75.  
  76. def stairCollide(self):
  77. if self.rect == self.levels[self.level_i][2]:
  78. return True
  79. else:
  80. return False
  81. def handle_event(self,event):
  82. #if self.state != self.skating_state:
  83. #self.onIce()
  84.  
  85. if event.type == pygame.KEYDOWN:
  86. self.action = self.state.handle_event(event)
  87. else:
  88. self.action = self.state.no_event()
  89.  
  90. def handle_animation(self):
  91. self.check_bounds()
  92. self.area = pygame.rect.Rect(self.actions[self.action])
  93.  
  94. def touching_wall_x(self):
  95. if (self.rect.x == 0) or (self.rect.x == 440):
  96. return True
  97. else:
  98. return False
  99.  
  100. def touching_wall_y(self):
  101. if (self.rect.y == 0) or (self.rect.y == 320):
  102. return True
  103. else:
  104. return False
  105.  
  106. def check_bounds(self):
  107. # stay within width of screen
  108. if self.rect.x < 0:
  109. self.rect.x = 0
  110. elif self.rect.x > 440:
  111. self.rect.x = 440
  112. #stay within height of screen
  113. if self.rect.y < 0:
  114. self.rect.y = 0
  115. elif self.rect.y > 320:
  116. self.rect.y = 320
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement