我的碰撞不起作用所以你知道如何解决它吗?

问题描述 投票:0回答:0

所以我正在制作一个游戏,玩家将球击到墙上并反弹,但当我设置玩家和墙壁时,我试图做到这一点,这样你就可以与墙壁发生碰撞,但我分阶段通过了。

顺便说一句,我试过 get_rect(topleft = (X, Y)) 但那也没有用 剧本:

import pygame
WIDTH, HEIGHT = 700, 600
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
GREY = [117,117,117]
Player = pygame.image.load("Player.png")
Wall = pygame.image.load("Wall.png")
PX = 0
PY = 0

def draw_window():
    global GREY
    global Player
    global PX
    global PY
    WIN.fill(GREY)
    WIN.blit(Player, (PX,PY))
    WIN.blit(Wall, (510,0))
    Black = [0,0,0]
    Wall_rect = Wall.get_rect()
    pygame.draw.rect(WIN, Black, (510, 0, Wall.get_width(), Wall.get_height()), True)
    pygame.draw.rect(WIN, Black, (PX, PY, Player.get_width(), Player.get_height()), True)
    pygame.display.update()
    
def main():
    global PX
    global PY
    global Wall
    global Player
    Wall_rects = Wall.get_rect(topleft = (510,0))
    Wall_rect = pygame.Rect(510, 0, Wall.get_width(), Wall.get_height())
    Player_rect = pygame.Rect(PX, PY, Player.get_width(), Player.get_height())
    run = True
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                pygame.quit()
        keys = pygame.key.get_pressed()
        speed = 1.5
 
        if keys[pygame.K_LEFT]:
            PX -= speed
        if keys[pygame.K_RIGHT]:
            PX += speed
        if keys[pygame.K_DOWN]:
            PY += speed
        if keys[pygame.K_UP]:
            PY -= speed
        if pygame.Rect.colliderect(Wall_rect, Player_rect):
            print("COllision")
        draw_window()
main()
python pygame collision-detection collision
© www.soinside.com 2019 - 2024. All rights reserved.