linux 吃豆人游戏,C++ 使用 openGL 实现吃豆人游戏
C++ 使用 openGL 实现吃豆人游戏
一、实验介绍
1.1 实验内容
本节实验主要通过 C++ 和 openGL 库来实现了一个吃豆人的小游戏。主要的课程内容涉及到 C++ 相关的序列容器 vector 、deque 和迭代器,以及 openGL 相关的窗口初始化与绘图功能。
1.2 知识点
C++ 编程基础
C++ 模板库使用
openGl 库使用
1.3 实验环境
xfce 终端
ubuntu16.04
openGl 库
1.4 适合人群
有一定 C++ 编程基础,了解 STL 模板库,对游戏设计、逻辑分析和 openGL 库感兴趣的同学。
1.5 代码获取
//解压源代码
unzip -q Pacman.zip
二、环境准备
2.1 安装 openGL 库
执行以下命令安装所需的各种依赖
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
2.2 编译程序
需要进入 Pacman/src/ 目录
make
2.3 运行程序
需要进入 Pacman/bin/ 目录
./Pacman
2.4 运行效果
三、项目分析
3.1 模块拆分
在开始编写程序之前我们需要利用 C++ 的思想把实际问题转换成一个个对象。说到游戏应该就能想到角色、地图和怪物以及操作命令等。我们把这些元素细化就可以得到游戏设计模块:
角色设计
地图设计
怪物设计
食物设计
操作设计
界面设计
3.2 开发说明
C++ :编程语言
Linux ubuntu 16.04 :开发环境
openGL :第三方库
备注:openGL 是一种图形界面处理库,提供了许多 API 给其他语言调用。我们的地图、角色和界面等等都需要调用它。
4.1 提前准备
在这里首先需要为我们的项目创建一个文件夹,进入 /home/shiyanlou/Code/ 目录下,将我们这次的项目命名为 Pacman。进入这个文件夹创建三个子文件夹 inlcude(存放头文件)、src(存放源代码)和 bin(存放可执行文件)。并创建相应的代码文件,具体内容与结构如下:
include 目录下
control.h
createpacman.h
food.h
gameover.h
gameresult.h
gamestart.h
init.h
laberynth.h
main.h
monster.h
src 目录下(相对应)
control.cpp
createpacman.cpp
food.cpp
gameover.cpp
gameresult.cpp
gamestart.cpp
init.cpp
labernth.cpp
Pacman.cpp
monster.cpp
4.2 预定义与全局变量
首先在 include 创建 main.h,用来存放头文件和一些全局变量,全局变量的定义是方便所有的模块访问并反映游戏的状态。全局变量定义后,在主函数中进行赋值,所有模块就都能访问了。
//main.h
ifndef _MAIN_H_
define _MAIN_H_
include
include
include
include
define _USE_MATH_DEFINES
include
include
include
include
using namespace std;
extern bool replay; //检查是否启动游戏
extern bool over; //检查游戏是否结束
extern float squareSize; //一个单元大小
extern float xIncrement; // x坐标
extern float yIncrement; // y坐标
extern int rotation; // 方向
extern float* monster1; //第一个怪物的坐标和方向
extern float* monster2; //第二个怪物的坐标和方向
extern float* monster3; //第三个怪物的坐标和方向
extern float* monster4; //第四个怪物的坐标和方向
extern vector border; //墙坐标
//障碍物坐标 (为了清晰分为三部分)
extern vector obstaclesTop;
extern vector obstaclesMiddle;
extern vector obstaclesBottom;
extern deque food;
extern vector bitmap; // 2d图像,可移动区域
extern bool* keyStates; // 按键状态
extern int points; // 得分
linux 吃豆人游戏,C++ 使用 openGL 实现吃豆人游戏相关推荐
- C++ 使用 openGL 实现吃豆人游戏
一.游戏须知 1.1 实验内容 本节实验主要通过 C++ 和 openGL 库来实现了一个吃豆人的小游戏.主要的课程内容涉 及到 C++ 相关的序 ...
- steam+linux+吃鸡游戏,steam十款免费吃鸡大逃杀游戏推荐
今天为大家推荐十款steam免费吃鸡大逃杀游戏.虽然是免费游戏,但还是有许多因为玩法创新而被玩家热捧,如果你喜欢吃鸡游戏,又不愿意花钱买,那么今天的推荐不容错过! <瓦尔格雷夫:不朽的平原> ...
- 20年,1人写出70万行代码!沙盒游戏「鼻祖」13年靠玩家捐赠维生
本文转载自 新智元 一款游戏,让一位玩家皈依佛教. 这位玩家曾寄信开发者,因其开发的游戏理解了「众生皆苦,世事无常」. 究竟是什么游戏还能让人看破红尘? Dwarf Fortress (矮人堡垒)! ...
- 高嘌呤食物搜索引擎_“高嘌呤”的食物已发现,尿酸高的人,要尽量挑着吃!...
导语:在我们的生活中又出现了一种现象,越来越频发,也是越来越倾向于年轻化,那么就是高尿酸,现在高尿酸已经被列为了我们国家的第四高,身体内的嘌呤含量是一部分,那么另一部分也是来源于我们平时摄入的食物,所 ...
- 为什么吃鸡显示连接不到服务器,为什么吃鸡进游戏显示连接不上 | 手游网游页游攻略大全...
发布时间:2015-09-28 原因:显卡太老,不支持DX9.0c+SM3.0 解决方法:换新显卡 标签: 发布时间:2017-05-12 怎么吃鸡?相信很多新手玩家在经过几十甚至上百小时的游戏洗礼之 ...
- @[666_C++牛人放出超屌代码]3d超级枪战小游戏
@[666_C++牛人放出超屌代码]3d超级枪战小游戏 介绍: 本游戏为联网游戏,设置玩家最多为10人,死亡后强制踢出. 可执行文件为Start.exe,点击打开即可 你可以按住Alt+Tab键在控制 ...
- 未转变者rust服务器推荐,如果steam只留一个游戏,你会选择吃鸡还是CSGO
随着steam被更多的玩家所知道,吃鸡这款游戏简直火得一塌糊涂. 那么,现在我们来假设一个情况,假如steam遭遇某些神秘力量的打击而导致关闭所有游戏. 只能保留一款游戏,那么,你会选择绝地求生呢?还 ...
- c++ vector最大值_第14章 火柴人的无尽冒险(《C和C++游戏趣味编程》配套教学视频)...
本章我们将编写一个2D跑酷类游戏,玩家键盘控制火柴人奔跑和跳跃,躲避蝙蝠到达终点.游戏地图随机生成,随着关卡数的增加,游戏难度越来越大,效果如图所示. 首先定义Player类,实现异步输入控制和延时改 ...
- 砸钱抢人抢项目,腾讯字节血拼游戏
2021年,互联网大厂在游戏行业"杀"疯了. 企查查数据显示,2021年仅过去半年,游戏行业投资高达126起,创下近年新高,数量较2019年.2020年同期分别上涨了34%.157 ...
最新文章
- P2P Device Discovery流程分析
- 深度强化学习入门到精通--资料综述
- leetcode--872. 叶子相似的树
- vue中通过第三方代理解决跨域问题
- Spring 框架基础(05):事务管理机制,和实现方式
- python实现多人聊天论文_python网络编程 双人多人聊天
- python一次性输入多个数_python如何一次性输入多个数
- 半小时训练亿级规模知识图谱,亚马逊这个 AI 框架要火!
- 如何在 SQL Server 2005 故障转移群集中添加或删除节点(安装程序)
- Atitit. Derby的使用总结attilax
- 电脑连上网络,浏览器上不了网?
- 请提前为你的眼泪找一个合适的借口
- 遥控汽车的编程c语言,智能小车循迹、避障、红外遥控C语言代码.docx
- linux安装系统d,matebookD安装linux系统总结
- 保研经验分享:痛并快乐的成长经历
- 百分点认知智能实验室:如何打造工业级的机器翻译
- 【程序人生】2020 年度总结
- 西门子PLC1200学习之比较指令
- kubectl插件管理工具krew
- ShardingSphere实践(7)——数据加密
热门文章
- 菏泽市计算机教师考试试题,山东菏泽教师招聘《信息技术》考情分析
- c语言对输入成绩进行修改命令,广东工业大学C语言实验(上机)任务书2015版.doc
- 风投简介与IT风投的优势
- 生命无常,请别辜负好时光!
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
- 基于YRCloudFile容器存储的WordPress HA部署方案
- 四成饿了么骑手是“斜杠青年”,工厂厂长兼职送外卖缓解压力
- 页眉默认横线的快速删除、以及页眉的水印妙用
- 【autojs】微信朋友圈点赞全分辨率脚本源代码
- 富文本编辑器回显去掉<p></p>