Pygame 使用数字键盘键移动
如果我们想要在游戏窗口中对一个对象进行斜向移动,我们需要使用数字键盘的键。虽然键盘上的4、6、8和2分别对应左、右、上和下箭头,但数字键盘上的7、9、3和1可以用来使对象进行上-左、上-右、下-右和下-左的斜向移动。Pygame将这些键标识为以下值:
K_KP1 keypad 1
K_KP2 keypad 2
K_KP3 keypad 3
K_KP4 keypad 4
K_KP5 keypad 5
K_KP6 keypad 6
K_KP7 keypad 7
K_KP8 keypad 8
K_KP9 keypad 9
示例
对于左,右,上和下箭头的按下,x和y坐标像以前一样递增/递减。对于对角线移动,根据方向,两个坐标都会发生变化。例如,对于K_KP7按键按下,x和y都递减5,对于K_KP9,x递增而y递减。
image_filename = 'pygame.png'
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
screen = pygame.display.set_mode((400,300))
pygame.display.set_caption("Moving with arrows")
img = pygame.image.load(image_filename)
x = 0
y= 150
while True:
screen.fill((255,255,255))
screen.blit(img, (x, y))
for event in pygame.event.get():
if event.type == QUIT:
exit()
if event.type == KEYDOWN:
if event.key == K_KP6:
x= x+5
if event.key == K_KP4:
x=x-5
if event.key == K_KP8:
y=y-5
if event.key == K_KP2:
y=y+5
if event.key == K_KP7:
x=x-5
y=y-5
if event.key == K_KP9:
x=x+5
y=y-5
if event.key == K_KP3:
x=x+5
y=y+5
if event.key == K_KP1:
x=x-5
y=y+5
pygame.display.update()