Python 如何建立一个支持玩家的动作脚本Pygame

Python 如何建立一个支持玩家的动作脚本Pygame,python,pygame,Python,Pygame,好吧,我是PyGame的新手,我正在制作一个太空入侵者游戏,我正在制作移动脚本 由于某种原因,当我按下右键时,我的角色会无限向右移动。。我知道这一定是一个非常简单的解决方案,我只是没有看到它哈哈,我希望有一个答案 import pygame pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption('Space Invader') icon = pygame.i

好吧,我是PyGame的新手,我正在制作一个太空入侵者游戏,我正在制作移动脚本

由于某种原因,当我按下右键时,我的角色会无限向右移动。。我知道这一定是一个非常简单的解决方案,我只是没有看到它哈哈,我希望有一个答案

import pygame

pygame.init()   
screen = pygame.display.set_mode((800, 600))  



pygame.display.set_caption('Space Invader')  
icon = pygame.image.load('pepper.png')   
pygame.display.set_icon(icon)            


#Player
playerImg = pygame.image.load('sombreroship.png')
playerX = 370  
playerY = 480
playerX_Change = 0

def player (x, y): screen.blit(playerImg, (x, y) )      


running = True
while running:

# RGB  STANDS FOR RED, GREEN, BLUE   THE NUMBERS GOES MAX TO  255 FOR EXAMPLE_:

screen.fill((0, 0, 30))  # this will display yellow

for event in pygame.event.get():
    if event.type == pygame.QUIT:   #if we click the X the program ends
        running = False

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_LEFT:

         playerX_Change = -0.1
    if event.key == pygame.K_RIGHT:

        playerX_Change = 0.1
if event.type == pygame.KEYUP:
    if event.key == pygame.K_LEFT or  event.key == pygame.K_RIGHT:

        playerX_Change = 0.1
playerX += playerX_Change
player(playerX, playerY)  

pygame.display.update() 
我建议用键盘代替事件

键盘事件(请参阅模块)仅在按键状态更改时发生一次。每次按键时,
KEYDOWN
事件发生一次
KEYUP
在每次释放钥匙时发生一次。将键盘事件用于单个操作或逐步移动

返回包含每个键状态的序列。如果按下某个键,则该键的状态为
True
,否则为
False
。用于评估按钮的当前状态并获得连续移动:

导入pygame
pygame.init()
screen=pygame.display.set_模式((800600))
pygame.display.set_标题('空间入侵者')
icon=pygame.image.load('pepper.png')
pygame.display.set_图标(图标)
#玩家
playerImg=pygame.image.load('sombreroship.png')
playerX=370
playerY=480
def播放器(x,y):
屏幕光点(playerImg,(x,y))
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:#如果单击X,程序结束
运行=错误
keys=pygame.key.get_pressed()
如果键[pygame.K_RIGHT]:
playerX+=0.1
如果键[pygame.K_左]:
playerX-=0.1
#RGB代表红色、绿色、蓝色。数字最大为255,例如:
屏幕填充((0,0,30))#这将显示黄色
玩家(playerX,playerY)
pygame.display.update()

请解释这一行的作用:[if event.type==pygame.KEYUP://if event.key==pygame.K_LEFT或event.key==pygame.K_RIGHT://playerX_Change=0.1]对我来说,这意味着在未按下键时向右移动。你只是在这里打了个错字吗?哦,没关系,我刚看到一个小小的愚蠢的东西可以改变你的一生,谢谢你为什么用0.1来保持静止?0.1不是向右移动了吗?谢谢你帮我解决了这个问题