【摘要】 目录
动画精灵和碰撞检测
前提
一、动画精灵
①、一堆沙滩球都反弹
②、让小球动起来
二、碰撞检测
矩形碰撞与像素完美结合
三、统计时间
用 pygame.time.Clock() 控制帧速率
检查帧速率
调整帧速率
沙滩球程序中使用 Clock 和 get_fps()动画精灵和碰撞检测
前提
接着python入门05 图…
目录
动画精灵和碰撞检测
前提
接着python入门05 图形pygame继续动画效果。
一、动画精灵
动画精灵:四处移动的单个图像或图像部分称为动画精灵(sprite),pygame有一个特殊的模块帮助跟踪屏幕上移动的大量图像。利用这个模块,可以更容易地移动图形对象。
具备特征:
- 图像(image):为动画精灵显示的图片。
- 矩形区(rect):包含动画精灵的矩形区域。
①、一堆沙滩球都反弹
Pygame 的 sprite 模块提供了一个动画精灵基类Sprite,基于pygame.sprite.Sprite 来创建自己的子类。
这里用了常规的python列表
import sys, pygame
class MyBallClass(pygame.sprite.Sprite):
def __init__(self, image_file, location):
pygame.sprite.Sprite.__init__(self) #初始化动画精灵
self.image = pygame.image.load(image_file) #加载图片
self.rect = self.image.get_rect() #得到定义图像边界矩形
self.rect.left, self.rect.top = location #设置球的初始位置
#设置窗口大小和颜色
size = width, height = 640, 480
screen = pygame.display.set_mode(size)
screen.fill([255, 255, 255])
img_file = "beach_ball.png"
balls = []
#将球增加到列表
for row in range(0, 3):
for column in range(0, 3):
location = [column * 180 + 10, row * 180 + 10]
ball = MyBallClass(img_file, location)
balls.append(ball)
for ball in balls:
screen.blit(ball.image, ball.rect)
pygame.display.flip()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
© 版权声明文章版权归作者所有,未经允许请勿转载。THE END
喜欢就支持一下吧
相关推荐