基于OpenGL用C++实现生命游戏

完整代码及注释如下:

#include <GL/glew.h>
#include <GL/glut.h>
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>

using namespace std;

vector< vector<int> > show;

// 细胞自动机的参数
const int WALL_PERCENT = 48; // 初始墙的百分比
const int SMOOTH_TIMES = 5;   // 平滑的次数
const int WALL_THRESHOLD = 4; // 墙的阈值

// 细胞和背景的颜色参数
const float CELL_R = 0.0f; // 细胞的红色分量
const float CELL_G = 1.0f; // 细胞的绿色分量
const float CELL_B = 0.0f; // 细胞的蓝色分量
const float BG_R = 0.8f;   // 背景的红色分量
const float BG_G = 0.8f;   // 背景的绿色分量
const float BG_B = 0.8f;   // 背景的蓝色分量

// 世界坐标系的缩放比例
#define SCALE 1.0f // 缩放比例,越大则显示的内容越多

// 世界坐标系的网格数
const int GRID = 40; // 网格数,越大则细胞越密集

// 游戏的状态
bool running = true;          // 是否运行
int reproductionSpeed = 5;     // 细胞繁殖的速度
bool squareDistributionMode = false; // 是否启用方形分布

// 函数声明
void gameOfLife(vector< vector<int> >& board);
void initCells(vector< vector<int> >& board);
void Initial(void);
void TimerFunction(int value);
void Display(void);
void KeyboardDown(unsigned char key, int x, int y);
void KeyboardUp(unsigned char key, int x, int y);

// 细胞自动机逻辑
void gameOfLife(vector< vector

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenGL编3D游戏(含全部源程序)讲述3D游戏的编写方法。 《学OpenGL编3D游戏》重在游戏实现方案。全书以一个完整(基本)的3D游戏为主线,采用循序渐进的方法,从建立OpenGL图形环境入手,讲解3D基本图形、构图原理;从引入摄像机,建立天空、山地、树木,到3D模型使用和3D动画模型的显示。用鱼骨方式讲解相关知识技术,完整地展示了3D游戏的编写过程。● 特点 重在游戏的基本实现方法 搭建一个基本功能的游戏环境 最新的外部功能模块的使用● 提供《学OpenGL编3D游戏》的教学演示课件 《学OpenGL编3D游戏》的教学课件。用多媒体的表现手法将学习过程完全显示在你面前,使用者可以随时查看所选章节的知识要点提示,可以观看程序的制作过程和效果,也可以马上进入到VC编辑器对范例程序修修改改,在实践中加深对知识的理解;还可以进入到网上论坛和朋友们讨论学习心得。● 内容提要第1 章 OpenGL的程序框架__Windows、OpenGL程序框架的建立。第2 章 OpenGL的基本图形__在OpenGL图形界面上作一些简单的图形。第3 章 OpenGL的组合图形__用简单图形来构成两个复杂一点的3D模型。第4 章 摄像漫游__________有了摄像机你就可以在OpenGL场景中自由地漫游了。第5 章 开天辟地__________在OpenGL场景中有了天空、大地、景物。第6 章 OpenGL中显示文字__介绍了OpenGL中文字的几种显示方式。第7 章 特殊的平面_树_____栽些树种些草,让这个OpenGL世界充满生机。第8 章 显示3D模型________在OpenGL场景中显示3DS格式的模型。第9 章 使用MD2动画模型___OpenGL场景中出现了活生生的人(3D动画模型)。第10 章 使用MDL动画模型__介绍一种更先进的动画模型—3D骨骼动画。第11章 射击、爆炸________逼真的爆炸效果,是用程序仿真爆炸的物理过程。第12章 碰撞检测__________加入碰撞检测后,游戏才有真实的感觉。第13章 游戏进度保存______场景(或进度)保存和调入是游戏必不可少的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值