簡體   English   中英

pygame我可以移動我的角色,但不能很大

[英]pygame I can move my character but not greatly

我目前正在使用pygame制作游戲,但是當我改變方向時,我停下了,不得不再次按下箭頭鍵。 看來這不是一個大問題,但是很容易讓人煩惱。

這是代碼(它是寫在游戲循環中的,所以這不是問題):

if event.type == pygame.KEYDOWN:
    if event.key == K_LEFT:
        coordsX = coordsX - 0.1

    elif event.key == K_RIGHT:
        coordsX = coordsX + 0.1

    elif event.key == K_UP:
        coordsY = coordsY - 0.1

    elif event.key == K_DOWN:
        coordsY = coordsY + 0.1

    elif event.key == K_LEFT and event.key == K_UP:
        coordsX = coordsX - 0.1
        coordsY = coordsY - 0.1

    elif event.key == K_LEFT and event.key == K_DOWN:
        coordsX = coordsX - 0.1
        coordsY = coordsY + 0.1

    elif event.key == K_RIGHT and event.key == K_UP:
        coordsX = coordsX + 0.1
        coordsY = coordsY - 0.1

    elif event.key == K_RIGHT and event.key == K_DOWN:
        coordsX = coordsX + 0.1
        coordsY = coordsY + 0.1

我在上面的評論中所指的示例:

if event.type == pygame.KEYDOWN:
    if event.key == K_LEFT:
        moving_left = True
    elif event.key == K_RIGHT:
        moving_right = True
    elif ....

elif event.type == pygame.KEYUP:
    if event.key == K_LEFT:
        moving_left = False
    elif event.key == K_RIGHT:
        moving_right = False
    elif ....

if moving_left:
    coordsX = coordsX - 0.1
if moving_right:
    coordsX = coordsX + 0.1
if ...

對於這種情況,您可能並不關心何時按下按鍵或按鍵的順序,但是您確實想知道按下了哪些按鍵。 因此,您可能需要查看pygame.key.get_pressed

然后,主循環看起來像這樣

pygame.event.pump()
keys = pygame.key.get_pressed()
if keys[K_LEFT]:
    coordsX -= 0.1
if keys[K_RIGHT]:
    coordsX += 0.1
...

另外,在這里跳過使用elif,條件會自行解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM