Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import math
- from enum import Enum
- pygame.init()
- bg = 'res\\maps\\bg.png'
- P_img = 'res\\m_chars\\archer\\'
- ext = '.png'
- screen = pygame.display.set_mode()
- area = screen.get_rect()
- screen_width = area[2] / 2
- screen_height = area[3] / 2
- pygame.init()
- display_width = int(screen_width)
- display_height = display_width
- print(display_width)
- print(display_height)
- screen = pygame.display.set_mode((display_width, display_height))
- pygame.display.set_caption("Parallel Universe Fighter")
- class Dir(Enum):
- up = 0
- down = 1
- right = 2
- left = 3
- class walk(Enum):
- up = 'u_walk_'
- down = 'd_walk_'
- right = 'r_walk_'
- left = 'l_walk_'
- class att(Enum):
- up = 'u_att_'
- down = 'd_att_'
- right = 'r_att_'
- left = 'l_att_'
- class faint(Enum):
- up = 'u_faint_'
- down = 'd_faint_'
- right = 'r_faint_'
- left = 'l_faint_'
- def set_list_values(_list, str_add, list_qty):
- for i in range(list_qty):
- _list.insert(i, str_add + str(i) + ext)
- walk_up = []
- set_list_values(walk_up, P_img + walk.up.value, 3)
- walk_down = []
- set_list_values(walk_down, P_img + walk.down.value, 3)
- walk_right = []
- set_list_values(walk_right, P_img + walk.right.value, 3)
- walk_left = []
- set_list_values(walk_left, P_img + walk.left.value, 3)
- attack_up = []
- set_list_values(attack_up, P_img + att.up.value, 3)
- attack_down = []
- set_list_values(attack_down, P_img + att.down.value, 3)
- attack_right = []
- set_list_values(attack_right, P_img + att.right.value, 3)
- attack_left = []
- set_list_values(attack_left, P_img + att.left.value, 3)
- faint_up = []
- set_list_values(faint_up, P_img + faint.up.value, 3)
- faint_down = []
- set_list_values(faint_down, P_img + faint.down.value, 3)
- faint_right = []
- set_list_values(faint_right, P_img + faint.right.value, 3)
- faint_left = []
- set_list_values(faint_left, P_img + faint.left.value, 3)
- attack_direction = [attack_up, attack_down, attack_right, attack_left]
- standing = [P_img + 'u_stand' + ext, P_img + 'd_stand' + ext, P_img + 'r_stand' + ext, P_img + 'l_stand' + ext]
- def update_frame(list_, list_num, delay):
- global player
- player = pygame.image.load(list_[list_num]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- screen.blit(player, plr_pos)
- pygame.time.delay(delay)
- pygame.display.update()
- def attack(atk_dir):
- global fight
- for i in range(3):
- update_frame(atk_dir, i, 50)
- fight = False
- update_frame(standing, saved_pos, 50)
- def redrawGameWindow():
- global player
- global walkCount
- if walkCount + 1 >= 4:
- walkCount = 0
- if fight:
- if saved_pos == Dir.up.value:
- attack(attack_up)
- elif saved_pos == Dir.down.value:
- attack(attack_down)
- elif saved_pos == Dir.right.value:
- attack(attack_right)
- elif saved_pos == Dir.left.value:
- attack(attack_left)
- if up:
- player = pygame.image.load(walk_up[walkCount]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- walkCount += 1
- elif down:
- player = pygame.image.load(walk_down[walkCount]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- walkCount += 1
- elif right:
- player = pygame.image.load(walk_right[walkCount]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- walkCount += 1
- elif left:
- player = pygame.image.load(walk_left[walkCount]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- walkCount += 1
- screen.blit(player, plr_pos)
- pygame.display.update()
- def set_idle_pos(i):
- global walkCount
- global player
- walkCount = 0
- player = pygame.image.load(standing[i]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- screen.blit(player, plr_pos)
- tile_width = display_width / 10
- tile_height = display_height / 10
- player = pygame.image.load(standing[Dir.down.value]).convert()
- player = pygame.transform.scale(player, (math.floor(tile_width), math.floor(tile_height)))
- background = pygame.image.load(bg).convert()
- walkCount = 0
- run = True
- coord_x = 0
- coord_y = 0
- plr_pos = (int(tile_width), int(tile_height))
- up = False
- down = False
- left = False
- right = False
- fight = False
- isJump = False
- jumpCount = 10
- plr_direction = [up, down, right, left]
- screen.blit(background, (0, 0))
- screen.blit(player, plr_pos)
- saved_pos = Dir.down.value
- while run:
- pygame.time.delay(100)
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- run = False
- key = pygame.key.get_pressed()
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_UP or event.key == pygame.K_w:
- up = True
- down = False
- left = False
- right = False
- saved_pos = Dir.up.value
- elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
- up = False
- down = True
- left = False
- right = False
- saved_pos = Dir.down.value
- elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
- up = False
- down = False
- left = False
- right = True
- saved_pos = Dir.right.value
- elif event.key == pygame.K_LEFT or event.key == pygame.K_a:
- up = False
- down = False
- left = True
- right = False
- saved_pos = Dir.left.value
- elif event.key == pygame.K_f:
- fight = True
- elif event.type == pygame.KEYUP:
- if event.key == pygame.K_UP or event.key == pygame.K_w:
- up = False
- set_idle_pos(Dir.up.value)
- elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
- down = False
- set_idle_pos(Dir.down.value)
- elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
- right = False
- set_idle_pos(Dir.right.value)
- elif event.key == pygame.K_LEFT or event.key == pygame.K_a:
- left = False
- set_idle_pos(Dir.left.value)
- redrawGameWindow()
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement