Glatte Tastatur-Bewegung in Pygame

Ich verwende diesen code, um einen player sprite verschieben um einen Bildschirm, wenn die Pfeiltasten gedrückt werden:

import pygame, sys, time
from pygame.locals import *

pygame.init()

FPS=30
fpsClock=pygame.time.Clock()

width=400
height=300
DISPLAYSURF=pygame.display.set_mode((width,height),0,32)
pygame.display.set_caption('Animation')
background=pygame.image.load('bg.png')


UP='up'
LEFT='left'
RIGHT='right'
DOWN='down'

sprite=pygame.image.load('down.png')
spritex=200
spritey=130
direction=DOWN


pygame.mixer.music.load('bgm.mp3')
pygame.mixer.music.play(-1, 0.0)
while True:
    DISPLAYSURF.blit(background,(0,0))

    DISPLAYSURF.blit(sprite,(spritex,spritey))

    for event in pygame.event.get():
        if event.type==QUIT:
            pygame.quit()
            sys.exit()

        if event.type == KEYDOWN:
            if (event.key == K_LEFT):
                spritex-=5
                sprite=pygame.image.load('left.png')
            elif (event.key == K_RIGHT):
                spritex+=5
                sprite=pygame.image.load('right.png')
            elif (event.key == K_UP):
                spritey-=5
                sprite=pygame.image.load('up.png')
            elif (event.key == K_DOWN):
                spritey+=5
                sprite=pygame.image.load('down.png')

    pygame.display.update()
    fpsClock.tick(FPS)

Das Bild ist in der Lage, wirklich bewegen, aber nur 5 Pixel, wenn die Taste gedrückt wird. Ich möchte für das Bild in Bewegung halten, während die Taste gedrückt gehalten wird (und fügen einfache Kollisionserkennung mit dem Fenster, aber das ist ein anderes Thema). Was würde das Bild in Bewegung zu halten, während die Taste gedrückt wird?

Ich empfehle 4 space Einrückung anstatt tabs.

InformationsquelleAutor oracleCreeper | 2012-12-30

Schreibe einen Kommentar