繁体   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