Python 我不知道';我不知道我在Pygame中的边框有什么问题,我需要帮助根据按下的键旋转我的播放器图标

Python 我不知道';我不知道我在Pygame中的边框有什么问题,我需要帮助根据按下的键旋转我的播放器图标,python,pygame,Python,Pygame,所以我在#border下写了我的边界代码,但我不知道它有什么问题。当我运行程序时,图标仅在x轴和y轴均为零时与边框发生碰撞,而不是在x轴和y轴均为最大像素时与边框发生碰撞。我还想知道如何根据用户键输入旋转图像 导入pygame pygame.init() screen=pygame.display.set_模式((900500)) #游戏窗口标题 pygame.display.set_标题(“蛇时间”) #游戏窗口图标 icon=pygame.image.load('snake.png') py

所以我在#border下写了我的边界代码,但我不知道它有什么问题。当我运行程序时,图标仅在x轴和y轴均为零时与边框发生碰撞,而不是在x轴和y轴均为最大像素时与边框发生碰撞。我还想知道如何根据用户键输入旋转图像

导入pygame
pygame.init()
screen=pygame.display.set_模式((900500))
#游戏窗口标题
pygame.display.set_标题(“蛇时间”)
#游戏窗口图标
icon=pygame.image.load('snake.png')
pygame.display.set_图标(图标)
#蛇玩家形象
Snake\u Player=pygame.image.load('Snake Head.png')
PlayerX=420
PlayerY=435
PlayerX_Change=0
PlayerY_Change=0
def播放器(x,y):
屏幕。blit(蛇_播放器,(x,y))
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
#球员运动
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左:
PlayerX_变化=-0.7
PlayerY_Change=0
如果event.key==pygame.K_RIGHT:
PlayerX_变化=0.7
PlayerY_Change=0
如果event.key==pygame.K_UP:
PlayerY_Change=-0.7
PlayerX_Change=0
如果event.key==pygame.K_向下:
PlayerY_变化=0.7
PlayerX_Change=0
#边界
如果PlayerX=836:
PlayerX=0
elif PlayerY=500:
PlayerY=0
PlayerX+=PlayerX\u更改
PlayerY+=PlayerY\u变化
#游戏窗口颜色
屏幕填充((30,90,0))
玩家(PlayerX,PlayerY)
pygame.display.update()

试试这个,然后用其他键继续:

if keys[pygame.K_LEFT] and PlayerX - 0.7 > 0:
    PlayerX - 0.7
我建议将其用于播放器的移动,而不是
KEYDOWN
事件。
此外,使用a来评估与边界的碰撞。可通过以下方法获得尺寸为的矩形:

running=True
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
#球员运动
keys=pygame.key.get_pressed()
如果键[pygame.K_左]:
PlayerX-=0.7
如果键[pygame.K_RIGHT]:
PlayerX+=0.7
如果键[pygame.K_UP]:
玩耍-=0.7
如果键[pygame.K_DOWN]:
PlayerY+=0.7
#边界
player\u rect=Snake\u player.get\u rect(左上方=(PlayerX,PlayerY))
如果玩家右左<0:
PlayerX=0
elif player_rect.right>屏幕。获取宽度()
PlayerX=screen.get_width()-player_rect.width
如果player_rect.top<0:
PlayerY=0
elif player_rect.bottom>屏幕。获取高度()
PlayerY=screen.get_height()-player_rect.height
#游戏窗口颜色
屏幕填充((30,90,0))
玩家(PlayerX,PlayerY)
pygame.display.update()