Python 如何建立一个支持玩家的动作脚本Pygame
好吧,我是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
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不是向右移动了吗?谢谢你帮我解决了这个问题