Advertisement
Guest User

Pygame

a guest
Feb 19th, 2020
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.56 KB | None | 0 0
  1. import pygame
  2. import math
  3. from enum import Enum
  4.  
  5. pygame.init()
  6.  
  7. bg = 'res\\maps\\bg.png'
  8. P_img = 'res\\m_chars\\archer\\'
  9. ext = '.png'
  10.  
  11. screen = pygame.display.set_mode()
  12. area = screen.get_rect()
  13. screen_width = area[2] / 2
  14. screen_height = area[3] / 2
  15. pygame.init()
  16.  
  17. display_width = int(screen_width)
  18. display_height = display_width
  19. print(display_width)
  20. print(display_height)
  21. screen = pygame.display.set_mode((display_width, display_height))
  22. pygame.display.set_caption("Parallel Universe Fighter")
  23.  
  24.  
  25. class Dir(Enum):
  26.     up = 0
  27.     down = 1
  28.     right = 2
  29.     left = 3
  30.  
  31.  
  32. class walk(Enum):
  33.     up = 'u_walk_'
  34.     down = 'd_walk_'
  35.     right = 'r_walk_'
  36.     left = 'l_walk_'
  37.  
  38.  
  39. class att(Enum):
  40.     up = 'u_att_'
  41.     down = 'd_att_'
  42.     right = 'r_att_'
  43.     left = 'l_att_'
  44.  
  45.  
  46. class faint(Enum):
  47.     up = 'u_faint_'
  48.     down = 'd_faint_'
  49.     right = 'r_faint_'
  50.     left = 'l_faint_'
  51.  
  52.  
  53. def set_list_values(_list, str_add, list_qty):
  54.     for i in range(list_qty):
  55.         _list.insert(i, str_add + str(i) + ext)
  56.  
  57.  
  58. walk_up = []
  59. set_list_values(walk_up, P_img + walk.up.value, 3)
  60. walk_down = []
  61. set_list_values(walk_down, P_img + walk.down.value, 3)
  62. walk_right = []
  63. set_list_values(walk_right, P_img + walk.right.value, 3)
  64. walk_left = []
  65. set_list_values(walk_left, P_img + walk.left.value, 3)
  66. attack_up = []
  67. set_list_values(attack_up, P_img + att.up.value, 3)
  68. attack_down = []
  69. set_list_values(attack_down, P_img + att.down.value, 3)
  70. attack_right = []
  71. set_list_values(attack_right, P_img + att.right.value, 3)
  72. attack_left = []
  73. set_list_values(attack_left, P_img + att.left.value, 3)
  74. faint_up = []
  75. set_list_values(faint_up, P_img + faint.up.value, 3)
  76. faint_down = []
  77. set_list_values(faint_down, P_img + faint.down.value, 3)
  78. faint_right = []
  79. set_list_values(faint_right, P_img + faint.right.value, 3)
  80. faint_left = []
  81. set_list_values(faint_left, P_img + faint.left.value, 3)
  82.  
  83. attack_direction = [attack_up, attack_down, attack_right, attack_left]
  84.  
  85. standing = [P_img + 'u_stand' + ext, P_img + 'd_stand' + ext, P_img + 'r_stand' + ext, P_img + 'l_stand' + ext]
  86.  
  87.  
  88. def update_frame(list_, list_num, delay):
  89.     global player
  90.     player = pygame.image.load(list_[list_num]).convert()
  91.     player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  92.     screen.blit(player, plr_pos)
  93.     pygame.time.delay(delay)
  94.     pygame.display.update()
  95.  
  96.  
  97. def attack(atk_dir):
  98.     global fight
  99.     for i in range(3):
  100.         update_frame(atk_dir, i, 50)
  101.     fight = False
  102.     update_frame(standing, saved_pos, 50)
  103.  
  104.  
  105. def redrawGameWindow():
  106.     global player
  107.     global walkCount
  108.     if walkCount + 1 >= 4:
  109.         walkCount = 0
  110.     if fight:
  111.         if saved_pos == Dir.up.value:
  112.             attack(attack_up)
  113.         elif saved_pos == Dir.down.value:
  114.             attack(attack_down)
  115.         elif saved_pos == Dir.right.value:
  116.             attack(attack_right)
  117.         elif saved_pos == Dir.left.value:
  118.             attack(attack_left)
  119.     if up:
  120.         player = pygame.image.load(walk_up[walkCount]).convert()
  121.         player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  122.         walkCount += 1
  123.     elif down:
  124.         player = pygame.image.load(walk_down[walkCount]).convert()
  125.         player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  126.         walkCount += 1
  127.     elif right:
  128.         player = pygame.image.load(walk_right[walkCount]).convert()
  129.         player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  130.         walkCount += 1
  131.     elif left:
  132.         player = pygame.image.load(walk_left[walkCount]).convert()
  133.         player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  134.         walkCount += 1
  135.     screen.blit(player, plr_pos)
  136.     pygame.display.update()
  137.  
  138.  
  139. def set_idle_pos(i):
  140.     global walkCount
  141.     global player
  142.     walkCount = 0
  143.     player = pygame.image.load(standing[i]).convert()
  144.     player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  145.     screen.blit(player, plr_pos)
  146.  
  147.  
  148. tile_width = display_width / 10
  149. tile_height = display_height / 10
  150. player = pygame.image.load(standing[Dir.down.value]).convert()
  151. player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
  152. background = pygame.image.load(bg).convert()
  153. walkCount = 0
  154. run = True
  155. coord_x = 0
  156. coord_y = 0
  157. plr_pos = (int(tile_width), int(tile_height))
  158. up = False
  159. down = False
  160. left = False
  161. right = False
  162. fight = False
  163. isJump = False
  164. jumpCount = 10
  165. plr_direction = [up, down, right, left]
  166. screen.blit(background, (0, 0))
  167. screen.blit(player, plr_pos)
  168. saved_pos = Dir.down.value
  169. while run:
  170.     pygame.time.delay(100)
  171.     for event in pygame.event.get():
  172.         if event.type == pygame.QUIT:
  173.             run = False
  174.         key = pygame.key.get_pressed()
  175.         if event.type == pygame.KEYDOWN:
  176.             if event.key == pygame.K_UP or event.key == pygame.K_w:
  177.                 up = True
  178.                 down = False
  179.                 left = False
  180.                 right = False
  181.                 saved_pos = Dir.up.value
  182.             elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
  183.                 up = False
  184.                 down = True
  185.                 left = False
  186.                 right = False
  187.                 saved_pos = Dir.down.value
  188.             elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
  189.                 up = False
  190.                 down = False
  191.                 left = False
  192.                 right = True
  193.                 saved_pos = Dir.right.value
  194.             elif event.key == pygame.K_LEFT or event.key == pygame.K_a:
  195.                 up = False
  196.                 down = False
  197.                 left = True
  198.                 right = False
  199.                 saved_pos = Dir.left.value
  200.             elif event.key == pygame.K_f:
  201.                 fight = True
  202.         elif event.type == pygame.KEYUP:
  203.             if event.key == pygame.K_UP or event.key == pygame.K_w:
  204.                 up = False
  205.                 set_idle_pos(Dir.up.value)
  206.             elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
  207.                 down = False
  208.                 set_idle_pos(Dir.down.value)
  209.             elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
  210.                 right = False
  211.                 set_idle_pos(Dir.right.value)
  212.             elif event.key == pygame.K_LEFT or event.key == pygame.K_a:
  213.                 left = False
  214.                 set_idle_pos(Dir.left.value)
  215.     redrawGameWindow()
  216. pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement