Python 官方文档:入门教程 => 点击学习
目录1. 游戏循环和游戏时钟1.1 游戏中的动画实现原理2. 游戏循环3. 游戏时钟1. 游戏循环和游戏时钟 之前几篇文章中,飞机大战游戏中的英雄飞机已经被绘制到屏幕上了,怎么能够让
之前几篇文章中,飞机大战游戏中的英雄飞机已经被绘制到屏幕上了,怎么能够让飞机移动呢?
跟电影的原理类似,游戏中的动画效果,本质上是快速的在屏幕上绘制图像
电影是将多张静止的电影胶片连接、快速的播放,产生连贯的视觉效果!
一般在电影上每秒绘制60次,就能够达到非常连续高品质的动画效果(相当于要每秒钟调用60次update效果)
每次绘制的结果被称为帧Frame(静止画面)
游戏的两个组成部分:
游戏循环的开始就意味着游戏的正式开始
游戏循环的作用:
pygame.display.update()
更新屏幕显示pygame专门提供了一个类pygame.time.Clock
可以非常方便的设置屏幕绘制速度--刷新帧率
要使用时钟对象需要两步骤:
在游戏初始化创建一个时钟对象
在游戏循环中让时钟对象调用tick(帧率)方法
tick
方法会根据上次被调用的时间,自动设置游戏循环中的延时
案例演示:本案例将在游戏循环外部创建时钟对象,在游戏循环内部创建tick方法,就可以来指定循环内部的代码执行的频率。
具体代码演示如下所示:游戏循环内部的代码,每秒重复循环60次就可以,就在游戏初始化的时候,创建游戏时钟对象。
然后,在游戏循环中,通过时钟对象调用tick的方法,就可以轻松的指定,游戏循环内部的代码每秒钟执行的次数。
import pygame
pygame.init()
# 创建游戏的窗口 640*642
screen = pygame.display.set_mode((640, 642))
# 绘制背景图像
bg = pygame.image.load("./飞机大战资料包/images/background1.jpg")
screen.blit(bg, (0, 0))
# 绘制英雄的飞机
hero = pygame.image.load("./飞机大战资料包/images/me1.png")
screen.blit(hero, (300, 500))
# 可以在所有绘制工作完成之后,统一调用update方法
pygame.display.update()
# 创建时钟对象
clock = pygame.time.Clock()
# 游戏循环->意味着游戏的正式开始
i = 0
while True:
# 希望无限循环内部的代码每秒钟重复循环60次
# 可以指定循环体内部的代码执行的频率
clock.tick(60)
print(i)
i = i + 1
pass
pygame.quit()
以上就是python pygame 动画游戏循环游戏时钟实现原理的详细内容,更多关于Python pygame 动画的资料请关注编程网其它相关文章!
--结束END--
本文标题: Pythonpygame动画游戏循环游戏时钟实现原理
本文链接: https://www.lsjlt.com/news/120006.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0