Pygame 移动一个图像
对象的移动是任何计算机游戏的一个重要方面。计算机游戏通过在递增的位置上绘制和擦除一个物体来创造运动的错觉。下面的代码通过在事件循环中递增X坐标位置来绘制一个图像,然后用背景色擦除它。
例子
image_filename = 'pygame.png'
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
screen = pygame.display.set_mode((400,300), 0, 32)
pygame.display.set_caption("Moving Image")
img = pygame.image.load(image_filename)
x = 0
while True:
screen.fill((255,255,255))
for event in pygame.event.get():
if event.type == QUIT:
exit()
screen.blit(img, (x, 100))
x= x+0.5
if x > 400:
x = x-400
pygame.display.update()
输出
Pygame的标志图像开始显示在左边界,并反复向右移动。如果它到达右边界,它的位置将被重置为左。
在下面的程序中,图像开始时显示在(0,150)的位置。当用户按下方向键(左、右、上、下)时,图像的位置会改变5个像素。如果发生KEYDOWN事件,程序会检查键值是否为K_LEFT、K_RIGHT、K_UP或K_DOWN。如果是K_LEFT或K_RIGHT,X坐标值会改变+5或-5。如果键值是K_UP或K_DOWN,y坐标的值会变化为-5或+5。
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_RIGHT:
x= x+5
if event.key == K_LEFT:
x=x-5
if event.key == K_UP:
y=y-5
if event.key == K_DOWN:
y=y+5
pygame.display.update()