好吧,我的代碼在下面,現在我是pygame的新手,並試圖找出如何在屏幕上移動圖像。從我所見過的pygame中,下面的代碼應該將圖像向上移動(現在唯一可能的移動)。但是,當我推動圖像不動。 Python正在認識到我正在向上推,因爲它在系統托盤中打印,但是沒有任何動作,有人可以幫忙嗎?python和pygame圖像移動
import pygame, sys
from pygame.locals import *
FPS = 30
WIN_WIDTH = 800
WIN_HEIGHT = 600
HALF_WIDTH = int(WIN_WIDTH/2)
HALF_HEIGHT = int(WIN_HEIGHT/2)
COLOR = (255, 0, 255)
IMAGE = pygame.image.load('squirrel.png')
STARTSIZE = 25
LEFT = 'left'
def main():
pygame.init()
FPS_CLOCK = pygame.time.Clock()
movement = 1
moveUp = False
DISPLAY_SURFACE = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
while True:
DISPLAY_SURFACE.fill(COLOR)
playerObj = {'surface': pygame.transform.scale(IMAGE, (STARTSIZE, STARTSIZE)),
'facing': LEFT,
'size': STARTSIZE,
'x': HALF_WIDTH,
'y': HALF_HEIGHT}
playerObj['rect'] = pygame.Rect((playerObj['x'], playerObj['y'], playerObj['size'], playerObj['size']))
DISPLAY_SURFACE.blit(playerObj['surface'], playerObj['rect'])
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_UP:
moveUp = True
if event.type == KEYUP:
if event.key == K_UP:
moveUp = False
elif event.type == QUIT:
pygame.quit()
sys.exit()
if moveUp:
playerObj['y'] += movement
print("moving up")
else:
print('stopped')
pygame.display.update()
FPS_CLOCK.tick(FPS)
if __name__ == '__main__':
main()
我試過,仍然沒有任何動靜,我想這可能是我的問題早,但無論哪種方式,它不移動圖像 – user1758231
那麼*就是問題的一部分。另一個可能與你的blit命令有關,不幸的是我現在無法正確測試。嘗試將DISPLAY_SURFACE.fill(color)和DISPLAY_SURFACE.blit(..)移至pygame.display.update() – timc
之前哦,我明白了,謝謝您的建議!我實際上需要將playerObj移出,但將playerObj保留在while循環中,現在它的工作雖然謝謝! – user1758231