资源简介
VS工程奉上,运行逻辑应该无问题,用六面体代表贪吃蛇的身体,绘制用一个数组保存所有的顶点,用一个数组保存顶点的序号。但最后绘制的时候,不是编写循环语句逐个的指定顶点了,而是通知OpenGL,”保存顶点的数组”和”保存顶点序号的数组”所在的位置,由OpenGL自动的找到顶点,并进行绘制。但是没有调gluLookAt和glRotatef,运行起来是二维的。c++和opengl都是初学,请大家指正。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include< stdlib.h>
#include
#include
#include
using namespace std;
void Isalive();
void initList();
class Food
{
public:
int x;
int y;
bool Iseat;//true有 false没有产生新的
};
class Snake
{
public:
int n;
int x;
int y;
char ch;
bool gamestate;
bool alive;
};
Snake* snake = new Snake;
Food *food=new Food;
void initList()
{
snake[0].x = 0;
snake[0].y = 0;
snake[1].x = 1;
snake[1].y = 0;
snake[2].x = 2;
snake[2].y = 0;
snake[0].n = 3;
food->Iseat = false;
snake[0].alive = true;
snake[0].ch = ‘w‘;
}
void mydisplay()
{
if (snake[0].alive == true)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPolygonMode(GL_FRONT GL_LINE);
glPolygonMode(GL_BACK GL_LINE); //设置背面为轮廓线类型
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//glRotatef(45.0f45.0f 45.0f45.0f);
//边界
glColor3f(1.0f 1.0f 1.0f);
float x1 = 0.9;
float x2 = -0.9;
float y1 = 0.9;
float y2 = -0.9;
float vertex_list[8][3] =//// 将立方体的八个顶点保存到一个数组里面
{
{ x2y2-0.1 }
{ x1y2-0.1 }
{ x1y1-0.1 }
{ x2y1-0.1 }
{ x2y10}
{ x2y20}
{ x1y20}
{ x1y10}
};
int index_list[16] =
{
0123
4567
2761
3450
};
glEnableClientState(GL_VERTEX_ARRAY); //启用顶点数组
glVertexPointer(3 GL_FLOAT 0 vertex_list); //指定顶点数组
glDrawElements(GL_QUADS 16 GL_UNSIGNED_INT index_list);
//食物
glColor3f(1.0f 0.0f 0.0f);
float a1 = food->x / 10.0;
float a2 = a1 - 0.1;
float b1 = food->y / 10.0;
float b2 = b1 - 0.1;
float vertex_list1[8][3] =
{
{ a2b20 }
{ a1b20 }
{ a1b10 }
{ a2b10 }
{ a2b10.1}
{ a2b20.1}
{ a1b20.1}
{ a1b10.1}
};
int index_list1[16] =
{
0123
4567
2761
3450
};
glEnableClientState(GL_VERTEX_ARRAY); //启用顶点数组
glVertexPointer(3 GL_FLOAT 0 vertex_list1); //指定顶点数组
glDrawElements(GL_QUADS 16 GL_UNSIGNED_INT index_list1);
for (int i = 0; i < snake[0].n; i++)
{
if (i == 0)
{
glColor3f(1.0f 0.0f 0.0f);
}
else
{
glColor3f(0.0f 0.0f 1.0f);
}
float x1 = snake[i].x / 10.0;
float x2 = x1 - 0.1;
float y1 = snake[i].y / 10.0;
float y2 = y1 - 0.1;
float vertex_list[8][3] =
{
{ x2y20 }
{ x1y20 }
{ x1y10 }
{ x2y10 }
{ x2y10.1}
{ x2y20.1}
{ x1y20.1}
{ x1y10.1}
};
int index_list[16] =
{
0123
4567
2761
3450
};
//顶点数组是如何使用
glEnableClientState(GL_VERTEX_ARRAY); //启用顶点数组
glVertexPointer(3 GL_FLOAT 0 vertex_list);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 35840 2020-03-21 12:27 贪吃蛇\.vs\opengltest\v15\.suo
文件 37392384 2020-03-21 23:34 贪吃蛇\.vs\opengltest\v15\Browse.VC.db
..A..H. 36 2020-03-21 12:18 贪吃蛇\.vs\opengltest\v15\Browse.VC.opendb
文件 3866624 2020-03-16 20:20 贪吃蛇\.vs\opengltest\v15\ipch\AutoPCH\921065164ffb760e\OPENGL.ipch
文件 74121216 2020-03-21 12:18 贪吃蛇\.vs\opengltest\v15\ipch\AutoPCH\b5de8ebafe9ef7d6\OPENGL.ipch
文件 71168 2020-03-21 12:18 贪吃蛇\Debug\opengltest.exe
文件 510984 2020-03-21 12:18 贪吃蛇\Debug\opengltest.ilk
文件 757760 2020-03-21 12:18 贪吃蛇\Debug\opengltest.pdb
文件 100273 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengl.obj
文件 249 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.log
文件 1354 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\CL.command.1.tlog
文件 70028 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\CL.read.1.tlog
文件 1038 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\CL.write.1.tlog
文件 2414 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\li
文件 7162 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\li
文件 986 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\li
文件 214 2020-03-21 12:18 贪吃蛇\opengltest\Debug\opengltest.tlog\opengltest.lastbuildstate
文件 609280 2020-03-21 12:18 贪吃蛇\opengltest\Debug\vc141.idb
文件 520192 2020-03-21 12:18 贪吃蛇\opengltest\Debug\vc141.pdb
文件 7957 2020-03-21 12:18 贪吃蛇\opengltest\opengl.cpp
文件 6152 2020-03-10 14:58 贪吃蛇\opengltest\opengltest.vcxproj
文件 951 2020-03-10 14:58 贪吃蛇\opengltest\opengltest.vcxproj.filters
文件 165 2020-03-10 14:38 贪吃蛇\opengltest\opengltest.vcxproj.user
文件 1443 2020-03-10 14:38 贪吃蛇\opengltest.sln
目录 0 2020-03-22 00:14 贪吃蛇\.vs\opengltest\v15\ipch\AutoPCH\921065164ffb760e
目录 0 2020-03-22 00:14 贪吃蛇\.vs\opengltest\v15\ipch\AutoPCH\b5de8ebafe9ef7d6
目录 0 2020-03-22 00:14 贪吃蛇\.vs\opengltest\v15\ipch\AutoPCH
目录 0 2020-03-22 00:14 贪吃蛇\.vs\opengltest\v15\ipch
目录 0 2020-03-22 00:14 贪吃蛇\.vs\opengltest\v15
目录 0 2020-03-22 00:14 贪吃蛇\opengltest\Debug\opengltest.tlog
............此处省略9个文件信息
- 上一篇:VC++6.0中文破解版
- 下一篇:测绘水准网算例代码
相关资源
- VC++6.0中文破解版
- C++控制台版坦克大战源码.rar
- C++实现支持向量SVM机分类器.zip
- 用opengl和VC++实现的地球仪
- 网络台球游戏的源代码(vc++)
- 基于图的推荐算法 c,c++ 实现 代码
- VS2010 Addin插件学习小Demo C++版本
- Microsoft Visual C++ 14.02019
- FPGA并行编程(Xilinx官方翻译版本)
- C++/CLI in Action
- Borland C++ 3.1 支持DOS和WIN3.1
- 医药进销存管理系统 C++源码
- C++程序设计题解与上机指导谭浩强
- C++结合Qt库编写的背单词软件源代码
- 新版,积分也变少了C++语音识别接口
- VisualC++开发GIS系统-开发剖析
- C++11编写的socket通信程序
- 深度探索C++对象模型
- Effective C++中文版第三版 带目录.pdf
- 新标准C++程序设计教程
- 自考教材-C++程序设计
- C++程序设计(刘振安) 自考教材 4
- 虚拟机的设计与实现CC++(源代码和书
- C++ Primer第5版顶级清晰文字版
- vc++网络游戏建模与实现-cdrom源码
- c++课设 井字棋游戏
- 数据结构、算法与应用-C++描述超高清
- c++飞机大战 源代码+程序
- MFC计算机图形学-三维图形几何变换斜
- WebRTC学习之三:录音和播放
评论
共有 条评论