簡體   English   中英

當我嘗試移動它時,玩家回到初始 position Pygame

[英]Player getting back in initial position when I try to move it Pygame

當我移動播放器時,他移動了 10 個像素,同時我按住右箭頭並在我釋放鍵時返回初始位置。 順便說一句,你不需要告訴我當我按右時他會向左移動,我知道:)

這是代碼:

import pygame



pygame.init()

WIDTH = 1000
HEIGHT = 1000
screen = pygame.display.set_mode([WIDTH,HEIGHT])
clock = pygame.time.Clock()

WHITE = (255,255,255)
def ecranAlb():
    screen.fill(WHITE)

def player():
    playerImg = pygame.image.load('jucator.png')
    WIDTHplayer = 150
    HEIGHTplayer = 130
    playerImg = pygame.transform.scale(playerImg,(WIDTHplayer,HEIGHTplayer))
    Xplayer = 500
    Yplayer = 500
    

    vel = 10

    keys = pygame.key.get_pressed()

    if keys[pygame.K_RIGHT]:
        Xplayer -= vel

    
    screen.blit(playerImg,(Xplayer,Yplayer))   

running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    ecranAlb()
    player()
    pygame.display.flip()



pygame.quit()

播放器的 position 在player function 內的應用程序循環中不斷設置:

 def player(): # [...] Xplayer = 500 Yplayer = 500

您必須在 function 之外的應用程序循環之前初始化播放器 position。 使用global語句更改 function 內全局命名空間中的變量:

playerImg = pygame.image.load('jucator.png')
WIDTHplayer = 150
HEIGHTplayer = 130
playerImg = pygame.transform.scale(playerImg,(WIDTHplayer,HEIGHTplayer))
Xplayer = 500
Yplayer = 500
vel = 10

def player():
    global Xplayer, Yplayer  
    
    keys = pygame.key.get_pressed()
    if keys[pygame.K_RIGHT]:
        Xplayer -= vel
 
    screen.blit(playerImg,(Xplayer,Yplayer))

暫無
暫無

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

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