Python pygame | Колизии

код:

#библиотеки
import pygame
from random import randrange
#спрайты
walkRight = [pygame.image.load('pygame_right_1.png'),
pygame.image.load('pygame_right_2.png'), pygame.image.load('pygame_right_3.png'),
pygame.image.load('pygame_right_4.png'), pygame.image.load('pygame_right_5.png'), 
pygame.image.load('pygame_right_6.png')]

walkLeft = [pygame.image.load('pygame_left_1.png'),
pygame.image.load('pygame_left_2.png'), pygame.image.load('pygame_left_3.png'),
pygame.image.load('pygame_left_4.png'), pygame.image.load('pygame_left_5.png'), 
pygame.image.load('pygame_left_6.png')]

bg = pygame.image.load('pygame_bg.jpg')
playerStand = pygame.image.load('pygame_idle.png')


#создаём границы
pygame.init()
win = pygame.display.set_mode((1200, 650))
player = pygame.Surface((40,80 ))
zen = pygame.Surface((40, 40))
arrow = pygame.Surface((20, 40))
#даём название окну
pygame.display.set_caption('tremp hunter beta')
#фреймы
clock =  pygame.time.Clock()
#координаты пули до выстрела
a_x = 1000
a_y = 1000
#счёт
score = 0

myfont = pygame.font.SysFont('monospace', 39)
#логичечкая переменная чтоб можно было стрелять только 1 раз
strike = False
#кординаты игрока
x = 20
y = 533
#кординаты врага
x_e = 850
y_e = 50

#корость
speed = 5
#то нужно чтобы выводить квадрат в разнх местах по рандому
apple = randrange (0, x_e, y_e), randrange (0, x_e , y_e)
#для прижка
isJump = False
jumpCount = 10
#для передвижения
left = False
right = False
#для спрайов
animCount = 0
#цикл для рисования
def  drawWindow () :
    global animCount
    win.blit(bg, (-1,-1 ))

    win.blit(zen, (*apple, y_e, y_e))
    win.blit(arrow, (a_x, a_y))

    string = myfont.render('SCORE: ' + str(score), 0, (255, 0,0))

    win.blit(string, (0, 50))

    win.blit(player, (x ,y ))

    pygame.display.update()#обновление цикла


#переменная для движения
run = True
#цикл
while run:
    clock.tick(30)#fps
    #проверка нв закрытие
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    #управление
    keys = pygame.key.get_pressed()
    if keys[pygame.K_f]:
          if strike == False:
              strike=True
              a_x  = x
              a_y = y - 40
    if strike :
            a_y -= 100
            if a_y< 1:
                    strike = False
                    a_y = 1000
                    a_x = 1000
        
    if keys[pygame.K_LEFT] and x > 5:
        x-= speed
        left = True
        right = False
        lastMove = 'left'
    elif keys[pygame.K_RIGHT]and x<1100 - 20 - 5:
        x += speed
        left = False
        right = True
        lastMove = 'right'
    else:
        left = False
        right = False
        animCount = 0
        #прыжок
    if not (isJump):
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            if jumpCount < 0:
                y += (jumpCount ** 2) / 2
            else:
                y -= (jumpCount ** 2) / 2
            jumpCount -= 1

        else:
            isJump = False
            jumpCount = 10

    drawWindow()#конец цикла

pygame.quit()#закрытие
#смотри у нас ести координаты перса это x , y  , а границы перса с размером 40 на 80
#мы их соединяем с помощью рисования и границ и картинки - это win.blit(player, (x ,y ))
        

Ответы (0 шт):