[英]My player is not moving correctly, when the key is held down, it should move continuoulsy, but only moves once
我試圖在 pygame 中寫一些簡單的東西,但這是我不明白的。 我正在嘗試添加移動,但它不是連續的。 我按住鍵,但鍵只經過 1 x_change
import pygame, sys
from pygame.locals import *
pygame.init()
gDis=pygame.display.set_mode((400,300))
Black=(0,0,0)
White=(255,255,255)
Red=(255,0,0)
Blue=(0,0,255)
Silver=(192,192,192)
clock=pygame.time.Clock()
x=195
y=270
wid=20
hght=20
speed=5
x_change=0
y_change=0
left=False
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == K_LEFT:
x_change-=5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change=0
x+=x_change
gDis.fill(Black)
pygame.draw.rect(gDis, Silver, (x, y, wid, hght))
clock.tick(60)
pygame.display.update()
這是一個縮進的問題。 您必須在應用程序循環而不是事件循環中移動和繪制播放器:
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == K_LEFT:
x_change = -5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
# INDENTATION
#<--|
x += x_change
gDis.fill(Black)
pygame.draw.rect(gDis, Silver, (x, y, wid, hght))
pygame.display.update()
clock.tick(60)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.