下载 >  开发技术 >  C++ > 一个基于OpenGL的游戏代码

一个基于OpenGL的游戏代码 评分:

作者对游戏的说明: 首先,您应当以一种批判的眼光来看待本程序。这个游戏是我制作 的第一部RPG游戏,无任何经验可谈,完全按照自己对游戏的理解进 行设计的。当我参照了《圣剑英雄2》的源码之后,才体会到专业游 戏引擎的博大精深。 该程序的内核大约有2000余行,能够处理人物的行走、对话、战斗, 等等。由于该程序的结构并不适于这种规模的程序,故不推荐您详 细研究该程序。所附地图编辑器的源程序我已经添加了详细的注释, 其程序结构也比较合理,可以作为初学VC的例子。 该程序在VC的程序向导所生成的SDI框架的基础上修改而成。它没有 使用任何关于VC底层的东西。程序的绝大部分都是在CgameView类中 制作的,只有修改窗口特征的一段代码在CMainFrm类中。其他的 类 统统没有用到。另外添加的一个类是CEnemy类。 整个游戏的故事情节分成8段,分别由Para1.h ~ Para8.h八个文件 实现。由于程序仅仅能够被动的处理各种各样的消息,所以情节的 实现也只能根据系统的一些参数来判断当前应当做什么。在程序中 使用了冗长的if……else if……结构来实现这种判断。 当然,在我的记录本上,详细的记录了每个事件的判断条件。这种 笨拙的设计当然是不可取的。成都金点所作《圣剑英雄II》采用了 剧本解读的方式,这才是正统的做法。但这也需要更多的编程经验 和熟练的code功夫。 下面列举的是程序编制过程中总结出来的经验和教训。 第一,对话方式应该采用《圣剑英雄II》的剧本方式。 现在的方式把一个段落中所有的对话都混在一个文件中,然后给每 句话一个号码相对应。这样做虽然降低了引擎的难度,却导致剧情的 编写极其繁琐。 第二,运动和显示应当完全分开。 现在的程序中,运动和显示是完全同步的。即:在定时器中调用所有 敌人的运动函数,然后将主角的动画向前推一帧,接着绘制地图,调 用所有敌人的显示函数、重绘主角。这样的好处是不会掉帧,但带来 的问题是,如果要提高敌人的运动速度,那么帧数也跟着上去了。所 以当DEMO版反馈说速度太慢的时候,我修改起来非常困难。而这个问 题到最后也仅仅是将4步一格该成了2步一格。 第三,VC中数组存在上限。如果用“int aaa[1000000000]”定义一个 数组,编译器肯定不会给分配那么大的内存空间。而在这个程序中, 地图矩阵、NPC矩阵都超过了VC中数组的上限。但这一点知道的太晚了。 在1.0版本中已经发现地图最右端缺少了几行,但不知道是什么原因 造成的。(地图编辑器中未出现此问题,因为地图编辑器是用“序列 化”的方式存盘读盘的。)解决这个问题的方法是用“new”来分配 内存空间。 第四,由于不知道应该如何使用“new”和“delete”,几乎所有的DC 都使用了全局变量。这是完全没有必要的。程序运行期大约会耗用20 多M的内存空间,相当于一个大型游戏所使用的内存空间了。 另外,在游戏的剧情、美工方面也有许多问题,总之一个词“业余”。 我就不总结了。下一部作品,我将争取在程序上有一个质的飞跃。
...展开详情收缩
2009-02-13 上传大小:8.25MB
分享
收藏 (3) 举报

评论 共53条

boy20yy 代码可以运行,很不错的资源
2018-04-14
回复
qq_18864907 报错啦,点击EXE也没办法运行
2017-12-23
回复
qq_37702714 编译不能,有错误
2017-09-25
回复
qq_32594047 错误太多了,不值得用了
2017-06-07
回复
qq_26213671 错误 34 error C2440: “static_cast”: 无法从“LRESULT (__thiscall CGameView::* )(int)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” c:\users\administrator\desktop\临时文件\一个基于opengl的游戏代码\gameview.cpp 28 1 game 这是什么原因啊
2017-05-09
回复
mouse_2009 有一定的参考价值,感谢楼主。
2016-10-07
回复
vclover2009 这个代码写的有点复杂,学习
2016-05-16
回复
guan_feng1988 可以参考下
2015-12-15
回复
domga 好用 但不会用……
2015-11-30
回复
cx0cxo 还不错,在我的电脑上只运行到part1
2015-10-31
回复
运用OpenGL实现一个小游戏的设计
[OpenGL] 小游戏 - 太空对战
OpenGLGame 游戏编程

OpenGLGame 游戏编程 详细介绍了如何 使用 OpenGL 开发游戏的示例

立即下载
用 opengl 写一个小游戏 (1)
基于OpenGL的 Breakout游戏
利用openGL与c++复刻我的世界游戏
OpenGL游戏

《学OpenGL编3D游戏》 学程序编游戏之二 《学OpenGL编3D游戏》是编程系列丛书之一。是以一个完整的3D游戏编写过程,进行程序设计的知识、技术教学。本教程由书和光盘构成。 《学OpenGL编3D游戏》不同于传统的程序设计书籍,它重在游戏的实现方案。以一个完整的游戏为主线,用鱼骨方式讲解相关知识技术,力求可读性更好。 《学OpenGL编3D游戏》的教学辅助系统CAI由四大块组成: A、程序要点说明 B、程序编制演示 C、程序运行效果 D、源程序编辑 光盘目录结构 学OpenGL编3D游戏目录下内容说

立即下载
datax源码分析(一)
kubernetes/dashboard源码分析
opengl游戏编程徐明亮版(含源码)

opengl游戏编程徐明亮版

立即下载
OpenGL实现3D联网射击游戏(附源码)

这是在VS平台下实现的OpenGL射击游戏。里面还需要一些其他链接库如glfw,soil。由于麻烦所以只加了代码部分和可执行文件。可执行文件请看说明。 (这个服务器应该大部分时间都没人,你可以试着打开2次start.exe)

立即下载
OpenGL实现3D魔方游戏源代码
OpenGL游戏编程》徐明亮版

也是网上找的一本书,本来想不要积分的分享的,没想到,还是需要积分,如果没有积分,有需要的朋友可以发邮件给我karaysn@163.com

立即下载
基于opengl的游戏引擎
教你一步一步用OpenGL写游戏——前言
用OpenGL+C++写的一个小的3D游戏---3D贪吃蛇
用 opengl 写一个小游戏 (2)
OPENGL作品,仿CS游戏源码发布
[OpenGL - 游戏开发] 仿制《Minecraft/我的世界》 - 总结及演示程序

热点文章

下载码下载
做任务获取下载码
取消 提交下载码
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

一个基于OpenGL的游戏代码

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
46 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: