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