标签:get http 绘制 变化 str tick com 设置 监听
在上一讲中 你需要完成这样的这样的效果, 如果你还没有完成,请不要继续往下阅读!!切记切记切记。,重要的事情说三遍
所谓的游戏循环很好的理解 就是 ,什么时候游戏会退出,注意啊,我们是反向的理解 游戏不退出,那么游戏就没有结束,没有结束,就说明游戏正在运行中,是运行的状态
把我们的游戏循环写出来
++++
# 游戏循环
while True:
print(i)
i += 1
++++
所谓的游戏时钟 实际上指的就是刷新率
pygame.time.Clock
可以非常方便的设置屏幕绘制速度 —— 刷新帧率‘tick(帧率)
方法tick
方法会根据 上次被调用的时间,自动设置 游戏循环 中的延时# 1. 创建游戏时钟对象-你不需要导入包,这个是python自带的,就像js里面的定时器
clock = pygame.time.Clock()
i = 0
# 游戏循环
while True:
# 设置屏幕刷新帧率
clock.tick(60)
print(i)
i += 1
需求分析:我们需要让飞机动起来。实现的原理就是在每一次的绘制中。把图片的位置进行变化,这样就完成了我们的 动 的效果
代码逻辑分析
pygame.Rect
的变量记录英雄的初始位置y - 1
—— 向上移动y <= 0
将英雄移动到屏幕的底部update()
方法之前,需要把 所有的游戏图像都重新绘制一遍而且应该 最先 重新绘制 背景图像,如果你不听我的建议,后果自负具体的实现
# 1. 定义英雄的初始位置
++++(在这之前我们已经定于了对象)
# 设置我们的初始化的绘制位置
hero_rect = pygame.Rect(150, 500, 102, 126)
while True:
# 可以指定循环体内部的代码执行的频率
clock.tick(60)
# 2.更新英雄位置
hero_rect.y -= 1
# 3. 如果移出屏幕,则将英雄的顶部移动到屏幕底部
if hero_rect.y <= 0:
hero_rect.y = 700
# 4.绘制背景图片
screen.blit(bg, (0, 0))
# 5.绘制英雄图像
screen.blit(hero, hero_rect)
# 6.更新显示//有关于整个窗口的更新 你需要放在最后
pygame.display.update()
你已经注意到了这一点,业务我们的循环好像是一个无限循环,它没有结束的条件,
pygame
中通过 pygame.event.get()
可以获得 用户当前所做动作 的 **事件列表,我们在可以写一个函数获取到这些事件其中的一个 ‘退出’事件 ,根据它来退出游戏+++++(上面还有好多代码就忽略了,我们专注我们的核心业务需求)
while True:
# 设置屏幕刷新帧率
clock.tick(60)
# 1.事件监听
for event in pygame.event.get():
# 2.判断用户是否点击了关闭按钮
if event.type == pygame.QUIT:
print("退出游戏...")
# 卸载所有的依赖包
pygame.quit()
# 直接退出系统
exit()
标签:get http 绘制 变化 str tick com 设置 监听
原文地址:https://www.cnblogs.com/BM-laoli/p/12551437.html