pygame编写飞机大战(3)-搭建游戏流程
来源:互联网 发布:三枪内裤怎么样 知乎 编辑:程序博客网 时间:2024/05/21 17:16
简单的游戏实现流程应该是:
1. 计算游戏中元素的坐标。也就是游戏每刷新一次,游戏中的元素,例如子弹坐标就会+1, 比如飞机的坐标计算等等;
2. 计算出了游戏中的元素,飞机或者子弹的坐标,那么就需要将飞机和子弹的图片绘制到这个坐标的位置;
3. 处理事件,游戏进行过程中,玩家会通过键盘或者鼠标点击、拖动、甚至关闭窗口等都属于事件,当玩家有这些操作的时候,我们要对玩家的操作做出响应。比如,如果玩家点击了窗口右上角的X按钮,我们就要停止游戏并且关闭窗口结束程序,如果玩家按下w键,我们就让飞机向上移动等等。
4. 碰撞检测。这个游戏核心逻辑,我们发出子弹,就要判断子弹是否和敌人飞机碰到一起,如果碰到一起我们就要消失子弹,并且消失飞机,在碰撞坐标处播放动画。如果敌人子弹击中我们,也是类似思路。碰撞检测我们主要通过判断两张图片的矩形是否相交。
5. 刷新窗口。这个最为简单,直接调用pygame.display.update()即可。
下面我们搭建流程代码如下,这里我们创建GameScene类,用于显示窗口,并负责游戏的核心逻辑及场景中各个游戏元素的管理:
import pygame# 主场景class MainScene(object): # 初始化主场景 def __init__(self): # 场景尺寸 self.mSize = (512, 768) # 场景对象 self.mScene = pygame.display.set_mode([self.mSize[0], self.mSize[1]]) # 设置标题 pygame.display.set_caption("飞机大战-v1.0") # 绘制 def draw_elements(self): pass # 动作 def action_elements(self): pass # 处理事件 def handle_event(self): pass # 碰撞检测 def detect_conlision(self): pass # 主循环,主要处理各种事件 def run_scene(self): while True: # 计算元素坐标 self.action_elements() # 绘制元素图片 self.draw_elements() # 处理事件 self.handle_event() # 碰撞检测 self.detect_conlision() # 刷新显示 pygame.display.update()# 入口函数if __name__ == "__main__": # 创建主场景 mainScene = MainScene() # 开始游戏 mainScene.run_scene()
框架流程中的涉及到的功能函数,例如绘制、计算坐标等并没有填写内容,我们在以后具体添加功能中,再去实现。此时直接运行效果如下:
阅读全文
0 0
- pygame编写飞机大战(3)-搭建游戏流程
- pygame编写飞机大战(1)-准备
- pygame编写飞机大战(4)-滚动地图
- pygame编写飞机大战(5)-子弹类
- pygame编写飞机大战(8)-碰撞检测
- pygame编写飞机大战(2)-pygame快速入门
- pygame编写飞机大战(6)-英雄飞机类
- pygame编写飞机大战(7)-敌人飞机类
- pygame编写飞机大战(9)-播放爆炸动画
- JS原生编写飞机大战小蜜蜂游戏
- 线程游戏-飞机大战
- 飞机大战游戏
- java飞机大战游戏
- 飞机大战游戏实现
- 游戏-飞机大战 (微信版)
- 游戏 飞机大战 c++
- java游戏-飞机大战
- 利用python的pygame的模块来实现简单的飞机大战游戏
- MyBatis入门基础(一) 为什么要用Mybatis
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
- ceph运维常用指令
- LeetCode 454. 4Sum II
- exp/imp三种模式——完全、用户、表
- pygame编写飞机大战(3)-搭建游戏流程
- c++加载驱动文件
- Hive简单部署
- 如何为eclipse安装合适版本的python插件pydev
- 使用eclipse作为python开发工具安装旧版pydev
- 脚本题
- Python使用'input'读取输入文本出现NameError错误
- Wall POJ
- Activity知识点,一篇搞定!