python入门06 动画精灵和碰撞检测pygame

【摘要】 目录
动画精灵和碰撞检测
前提
一、动画精灵​
①、一堆沙滩球都反弹
         ②、让小球动起来
二、碰撞检测
矩形碰撞与像素完美结合
三、统计时间
用 pygame.time.Clock() 控制帧速率
检查帧速率
调整帧速率
沙滩球程序中使用 Clock 和 get_fps()

动画精灵和碰撞检测
前提
接着python入门05 图…

目录

动画精灵和碰撞检测

前提

一、动画精灵

①、一堆沙滩球都反弹

②、让小球动起来

二、碰撞检测

矩形碰撞与像素完美结合

三、统计时间

用 pygame.time.Clock() 控制帧速率

检查帧速率

调整帧速率

沙滩球程序中使用 Clock 和 get_fps()


动画精灵和碰撞检测

前提

接着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
喜欢就支持一下吧
点赞0 分享