Advertisement
Karp007

Player.py

Oct 23rd, 2022 (edited)
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | Source Code | 0 0
  1. import pygame
  2. pygame.init()
  3.  
  4. class Player:
  5.     def __init__(self, x, y):
  6.         self.rect = pygame.Rect(100, 100, 50, 50)
  7.         self.movement = [0,0]
  8.         self.jump_vel = 7
  9.         self.jump = False
  10.         self.collisions = {'left' : False, 'right' : False, 'top' : False, 'bottom' : False}
  11.         self.points = 0
  12.     def check_if_collide(self, game_map):
  13.         hit_list = []
  14.         for tile in game_map:
  15.             if self.rect.colliderect(tile):
  16.                 hit_list.append(tile)
  17.         return hit_list
  18.     def moving(self, game_map, coins, tile_rects):
  19.         self.collisions = {'left' : False, 'right' : False, 'top' : False, 'bottom' : False}
  20.         #x - I didn't added checker here cause there are not walls
  21.         self.rect.x += self.movement[0]
  22.         hit_list = self.check_if_collide(tile_rects)
  23.         for tile in hit_list:
  24.             if self.movement[0] >= 0:
  25.                 self.collisions['right'] = True
  26.                 self.rect.right = tile.left
  27.             elif self.movement[0] <= 0:
  28.                 self.collisions['left'] = True
  29.                 self.rect.left = tile.right
  30.         for coin in coins:
  31.             if self.rect.colliderect(coin[0]):
  32.                 self.points += 1
  33.                 for tile in game_map[coin[1]]:
  34.                         if tile[coin[2]] == [coin[0].x // 32, coin[0].y // 32]:
  35.                              print('fgdf')
  36.                         else:
  37.                             print(tile[coin[2]], [coin[0].x // 32, coin[0].y // 32])
  38.                        
  39.         #y
  40.         self.rect.y += self.movement[1]
  41.         hit_list = self.check_if_collide(tile_rects)
  42.         for tile in hit_list:
  43.             if self.movement[1] >= 0:
  44.                 self.collisions['bottom'] = True
  45.                 self.rect.bottom = tile.top
  46.                 self.movement[1] = 0
  47.             elif self.movement[1] <= 0:
  48.                 self.rect.top = tile.bottom
  49.     def jumping(self):
  50.         if self.jump:
  51.             self.movement[1] -= self.jump_vel
  52.             self.jump_vel -= 1
  53.             if self.jump_vel <= 0:
  54.                 self.jump = False
  55.                 self.jump_vel = 7
  56.  
  57.     def slowing_down(self):
  58.         keyclick = pygame.key.get_pressed()
  59.         if not keyclick[pygame.K_a] and not keyclick[pygame.K_d]:
  60.             #left stop
  61.             if self.movement[0] * -1 > 0:
  62.                 #stopping
  63.                 self.movement[0] += 0.25
  64.                 #check if we are not going back
  65.                 if self.movement[0] >= 0:
  66.                     self.movement[0] = 0
  67.                     #right stop
  68.             elif self.movement[0] * -1 < 0:
  69.                 #stopping
  70.                 self.movement[0] -= 0.25
  71.                 #check if we are not going back
  72.                 if self.movement[0] <= 0:
  73.                     self.movement[0] = 0
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement