![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【C/C++】游戏开发
文章平均质量分 80
七十一雾央
怀揣着游戏开发梦想的少年期待着有一天可以做出伟大的游戏
展开
-
《MFC游戏开发》笔记五 定时器和简单动画
本系列文章由七十一雾央编写,转载请注明出处。http://blog.csdn.net/u011371356/article/details/9313239作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 上一节笔记中,我们讲解了键盘响应和鼠标响原创 2013-07-15 15:10:18 · 16374 阅读 · 35 评论 -
《C++游戏开发》十七 游戏中的寻路算法(三):A*算法原理
A*算法路径的评价公式为F=G+H 其中H为某个已达格子到目的地的估算距离,估算的方法有很多种,比如: 1、曼哈顿距离:即两点水平距离加上竖直距离。比如(x1,y1)到(x2,y2)的曼哈顿距离就是|x2-x1|+|y2-y1|。 2、欧式距离:即两点之间的真实距离。(x1,y1)到(x2,y2)的欧式距离就是 sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))。 3、切比雪夫距离:水平方向和竖直方向上的距离最大原创 2013-08-28 00:06:39 · 15164 阅读 · 11 评论 -
《C++游戏开发》十六 游戏中的寻路算法(二):迷宫&A*算法基础
在以前的游戏中,由于硬件性能的原因导致不能负担起丰富的画面,同时也为了减轻美术人员的工作量,如何利用少数的资源创造出不同的游戏是一个很值得探讨的问题,前辈游戏程序员们给出的答案就是迷宫。使用迷宫,一方面可以利用几面墙就可以采用算法随机生成无穷无尽的地图,使玩家得到不同的体验,另一方面,也可以大大延长游戏的时长,毕竟,大家不希望自己画几十块钱买来的游戏一会就通关了吧。 对于迷宫,涉及到的一个问题就是随机生成算法。大家可以首先将迷宫看成一个个方格,比如下图原创 2013-08-25 01:08:50 · 9884 阅读 · 4 评论 -
《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
本系列文章由七十一雾央编写,转载请注明出处。 http://blog.csdn.net/u011371356/article/details/9299121作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 在前几节的笔记里,大家肯定会为一个问原创 2013-07-15 17:06:59 · 18561 阅读 · 66 评论 -
《MFC游戏开发》笔记二 建立工程、调整窗口
本系列文章由七十一雾央编写,转载请注明出处。 http://blog.csdn.net/u011371356/article/details/9299121作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 要开发游戏,我们得首先原创 2013-07-11 14:42:35 · 29499 阅读 · 106 评论 -
《C++游戏开发》笔记十五 专栏说明&游戏中的寻路算法(一):概论
大多数游戏中都是需要寻路算法的,因为游戏中人物、怪物、NPC都需要移动,人物可以由玩家操纵运动,但是怪物和NPC就必须有寻路算法来决定他们的移动了。即使像冒险岛那样的横版游戏,其实也是有的,在怪物视野内没有人物的时候,我们看到怪物在四处瞎晃悠,这也算是随机寻路算法,在场景中漫无目的的走来走去,当玩家进入怪物的视野范围内时,怪物就会向接近玩家的方向运动,比较简单的跟踪算法就如同雾央在笔记九中写的那样,直来直去的,按照最短路径靠近。但是笔记九中的跟踪算法几乎是没有什么作用的,因为场景中不可能都是平地,游戏中是必原创 2013-08-06 19:21:39 · 8226 阅读 · 21 评论 -
《C++游戏开发》笔记十二 战争迷雾:初步实现
战争迷雾(Fogof War),在传统意义上是指战争中由于对敌人情报不清楚而无法确认除友军所在以外的大部分地区,敌人的分布及活动情况。而目前在游戏范围内,尤其是即时战略类游戏中,这个词语出现的频率更高一些也更被多数人所熟悉。 从最初的即时战略《沙丘2》开始,战争迷雾的概念开始被引入和正式提出。在沙丘中每一次新开始游戏时,玩家只能观察到自己基地及单位周围极小的范围,而绝大多数地图区域均被黑色遮盖。当他命令单位向黑暗区移动后,经过的区域会被自动打开,地图变得可见,包括该区域的地形/敌人活动情况等等。这原创 2013-07-26 00:49:59 · 25505 阅读 · 62 评论 -
《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法
在上一节中,雾央讲解了一种战争迷雾的实现方法,思想很简单,实现出来的效果里锯齿感也很强,当然如果网格能比较小,看起来也还算凑合,不过用在游戏中就显得不是很合适了。今天雾央将讲解一种新的算法,可以用来实现平滑过渡的战争迷雾,由于内容比较多,所以雾央会分几节笔记来讲解,今天先讲解原理。 相信大家都是玩过魔兽争霸的,虽然它最火的年代已经过去了,不过基于魔兽的地图Dota如今也还算是风头正劲,雾央也是一名忠实的Dota爱好者,不过水平比较菜,哈哈,大家对游戏开发比较感兴趣,肯定不会错过这款经典的游戏吧。原创 2013-07-29 08:51:37 · 18915 阅读 · 36 评论 -
《MFC游戏开发》笔记三 游戏贴图与透明特效的实现
本系列文章由七十一雾央编写,转载请注明出处。 http://blog.csdn.net/u011371356/article/details/9299121作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 对于一个游戏来说,画面的华丽程度在原创 2013-07-12 17:25:11 · 31134 阅读 · 134 评论 -
《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了
用鼠标点击一下,散开一片迷雾,大家可以看到上面标示的数字,左上角是4,右上角是8,左下角是1,右下角是2在右边再点一下,我们可以看到两片迷雾叠加起来了,过渡的很自然。大家注意一下数字,两片迷雾中间的数字变成了12=4+8,3=2+1继续点,同理看了上面的图,大家应该清楚了吧。我们每次点击游戏窗口的时候,驱散一个圆形的迷雾,这个圆形就只需要1+2+4+8号图元拼接起来就可以了,当同一个Tile内有多个图元时,将它们的数字相加,用新数字的图元替换掉即可。二、实现步骤 我们知道,把上面的鼠标换成原创 2013-08-02 09:16:05 · 19149 阅读 · 40 评论 -
《MFC游戏开发》笔记八 游戏特效的实现(二):粒子系统
本系列文章由七十一雾央编写,转载请注明出处。http://blog.csdn.net/u011371356/article/details/9360993作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 在游戏之中,大家经常看到火焰、爆原创 2013-07-17 22:30:46 · 12397 阅读 · 40 评论 -
《C++游戏开发》笔记十一 平滑动画:不再颤抖的小雪花
在之前雾央讲解了背景滚动,不知道大家发现了没有,在人物移动的时候,画面是一卡一卡的,原因是由于大家按下方向键移动后,人物突然移动一段距离,而背景也跟随着移动一段距离,突然变化的画面给大家带来的就是一种卡的感觉。在之后的粒子系统中有同学提到颤抖的小雪花同样是这样,在每次绘制的时候,都让雪花增加了一段确定的位移,但是由于计算机状态的不断变化,每两帧之间的时间差不同,所以雪花的移动也就不规律。有颤抖的感觉。 由上面的讨论,大家应该能知道,在游戏中,通过增加确定的位移来改变某个事物的位置往往是不准确的原创 2013-07-24 01:16:36 · 15089 阅读 · 45 评论 -
《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
本系列文章由七十一雾央编写,转载请注明出处。http://blog.csdn.net/u011371356/article/details/9344721作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 大家现在玩游戏的时候原创 2013-07-16 17:08:34 · 17327 阅读 · 48 评论 -
《MFC游戏开发》笔记一 系列简介
本系列文章由七十一雾央编写,转载请注明出处。 一、我的游戏开发学习之路 很多人走上计算机道路最初的原因就是怀揣着游戏开发的梦想,至少我是这样的。最初学习的日子是极度痛苦的,对于游戏开发充满着热情,但是却只能每天在控制台黑乎乎的窗口下写程序,不知道怎么样才能写出图形界面的游戏程序,我记得我当时在网上四处搜索资料得到的结果大都是说要去学习一门图形库,比如Direc原创 2013-07-11 12:05:29 · 32052 阅读 · 123 评论 -
《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定
在玩游戏的时候,有些河流断崖等地方是不能通过的,高处跳跃落下的时候是不会穿过地平线的,石头挡着的地方是绝对不能路过的…………这些检测都属于地图障碍物判定的范围。大家在开发游戏的时候,地图的结构类型不同,采用的障碍物判定一般也就不同,地图类型和障碍物检测联系密切,因此雾央会介绍一下不同地图类型可以采取的方法。原创 2013-07-21 00:14:15 · 14654 阅读 · 45 评论 -
《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
在游戏之中,碰撞判定是必不可少的一块,在许多地方都需要用到。比如说在即时战斗游戏中,当人物碰到怪物的时候,人物是会扣血的;在回合制中,碰到怪物是要进入战斗场景的;游戏之中也还有一些荆棘之类的东西,还有非鼠标控制拾取物体等等,这些都涉及到了碰撞判定。 游戏之中,还有一块很重要的部分:障碍物判定,即玩家在运动的时候,需要判定哪些地方可以通过,哪些地方可以到原创 2013-07-19 00:29:49 · 15999 阅读 · 59 评论 -
《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
本系列文章由七十一雾央编写,转载请注明出处。http://blog.csdn.net/u011371356/article/details/9313239作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 在上一节笔记里,我们讲解了贴图的透明效原创 2013-07-14 23:31:07 · 21961 阅读 · 62 评论 -
《C++游戏开发》十八 角色在障碍物中智能行走的实现
最近一直在忙着写一个游戏,其中融入了RPG元素,有人物的行走与障碍物判定。 一般而言,当人物行走时碰到障碍物时应该停止不动,就像下面这样 这样的实现非常简单,每次移动前判断人物的矩形是否和障碍物相交即可,如果只以向右的方向为例,代码大概可以写成这样if(行走){ switch(方向) { case 右:如果当前位置的右原创 2013-09-13 00:15:49 · 18053 阅读 · 24 评论