Advertisement
dacanizares

PyGame - Player walk, jump & idle anim

Oct 4th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. import game
  2. import pygame
  3. from pygame.locals import *
  4. from constants import *
  5.  
  6. class Player():
  7.     def __init__(self, x, y, resources):
  8.         self.x = x
  9.         self.y = y
  10.         self.base_y = y
  11.         self.frame = 0        
  12.         self.direction = True        
  13.         self.right = False
  14.         self.left = False
  15.         self.up = False
  16.         self.idle = resources.player[0]
  17.         self.walking = resources.player[1]
  18.         self.speed_x = 2
  19.         self.speed_y = 0
  20.         self.idle_time = 0
  21.  
  22.  
  23.     def update(self):
  24.         # X movement
  25.         if self.right:
  26.             self.x += self.speed_x            
  27.         if self.left:
  28.             self.x -= self.speed_x
  29.        
  30.         # Y movement
  31.         if self.y < self.base_y:
  32.             self.speed_y += 1
  33.         else:
  34.             self.speed_y = 0
  35.             if self.up:
  36.                 self.speed_y = -10  
  37.         self.y += self.speed_y
  38.    
  39.     def update_events(self, events):
  40.         if K_RIGHT in events:
  41.             if not self.right:
  42.                 self.direction = True
  43.             self.frame = 0
  44.             self.right = events[K_RIGHT]
  45.            
  46.         if K_LEFT in events:
  47.             if not self.left:
  48.                 self.direction = False
  49.             self.frame = 0
  50.             self.left = events[K_LEFT]
  51.             print 'Write your code left key'
  52.         if K_UP in events:
  53.             self.up = events[K_UP]
  54.  
  55.     def draw(self):
  56.         if self.direction:
  57.             anim_index = 0
  58.         else:
  59.             anim_index = 1
  60.  
  61.         if self.right or self.left:
  62.             sprite = self.walking[anim_index][self.frame]
  63.             self.frame = (self.frame + 1) % len(self.walking[anim_index])                
  64.         else:
  65.             sprite = self.idle[anim_index][self.frame]
  66.            
  67.             self.idle_time += 1
  68.             if self.idle_time == 20:
  69.                 self.frame = (self.frame + 1) % len(self.idle[anim_index])
  70.                 self.idle_time = 0
  71.  
  72.         xoffset = -sprite.get_width()/2
  73.         yoffset = -sprite.get_height()
  74.         game.draw(sprite, (self.x + xoffset, self.y + yoffset))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement