【问题标题】:Player getting back in initial position when I try to move it Pygame当我尝试移动它时玩家回到初始位置 Pygame
【发布时间】:2021-06-12 23:00:53
【问题描述】:

当我移动播放器时,他移动了 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()

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    播放器的位置在player函数内的应用循环中不断设置:

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

    您必须在函数外的应用程序循环之前初始化播放器位置。使用global statement 更改函数内全局命名空间中的变量:

    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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多