代码 未分类

我是如何用十天从零开始制作一个简单的RPG引擎的(上)

前言

今年读大一,在下学期段时c++有一个实训项目,由于我在高中时曾有过制作一个RPG的想法(虽然很幼稚而且剧本未成形。。),我便想着“要不做一个RPG游戏吧?”,便跃跃欲试地把自己的想法写进了开题报告,但是我还是无法决定是否要使用现成的游戏引擎,这样无疑会大大缩短制作周期,但是后来我想到还是试着自己做一个比较有趣,而且这样无论想做什么,我都可以随心所欲地在我的代码里面实现,虽然做起来有点困难,但我还是尝试着开始了。

嗯,开始了,于是,一顿摸鱼,我摸到了8月14号。。下文我将会记录下(回忆)我每一天或详或略的制作心路历程。

8月14日前

其实8月14号前我也不是什么都没干,我也纠结了很多事情,不过大体上都不是技术层面上的事情,都是剧本细节这些鸡毛蒜皮的小事。。。毕竟我的初心是奔着制作游戏去的,而不是奔着带动游戏的游戏引擎。我这个人也是这样,想的时候想的天花乱坠,到最后一样都没成型。。(捂脸)我甚至还动起了笔设计起了人物角色,由于过于瞎眼我就不在这里发了,让读者心脏骤停什么的还是使不得。

至于小部分技术层面上的事,就是我回到学校之后(11号后),一直在想到底要不要用游戏引擎,到底是用MFC,还是Qt,以及我到底什么时候能开工(事实证明,ddl是第一生产力)...

8月14日晚——8月15日凌晨

婆妈了几天后,在我最终还是开工了...

制作过程我用视频录下来了,这是视频截图之一

我做的第一件事,就是打开我那老土的vs2010(别问我为啥不是更新的版本,我懒= =),然后选择新建MFC应用程序,然后按照网上的教程一步一步设置...

 

人生第一个(并不)MFC窗体

把参数调了调,我游戏的第一个(也是唯一一个)窗体便出现了。叹了口气,这才第一步,什么时候是个头。。

然后我在项目的目录下建好了文件(就是存放地图文件或者其他别的什么),写上了读取地图文件和渲染地图的代码,一个RPG的雏形的0.1%出现了。

其实这里横纵渲染反了(捂脸)

GDI不知道是说方便还是麻烦好。。反正熟悉了就觉得挺好写,不熟悉就觉得有些地方挺扯淡(SelectObject啥的,我GetDC居然还要写个ReleaseDC啥的...)

写完就想睡觉。我问自己,能不能再给力点啊?

嗯。那我再写一下下,把角色也给放上去...

随着键盘输入龟速蠕动着的角色,而且不会改变方向

趴。

往直播(拍制作过程给几个朋友看)群里说了句明天做角色的碰撞检测,

没人理我。睡了。

8月15日

这天没拍视频,我也忘了自己那天干了啥...只知道那天大概是去了图书馆,但干了什么不得而知。。。

好像是在网上找了些素材啥的,改正了地图显示纵横反过来了的错误,然后把游戏做成了角色固定在中心的形式(就是动的是地图而不是角色),下意识觉得这样弄应该比较科学。嗯...

再来好像就是,因为键盘会有一个输入延迟(就是你按下键之后屏幕会打出一个字,然后隔一段时间才会连续输出好几个字),所以我不能把角色移动写在keydown里面。

解决方法是在程序一开始时创建一个计时器(SetTimer),然后在触发计时器事件写检测(GetKeyState('W') < 0),这样就不会有延迟。

(然而角色还是不会变方向,也并没写碰撞检测...)

有残影是因为我还没开始写双缓冲

 

b-a
我还没有学会写个人说明!
查看“b-a”的所有文章 →

Leave a Reply

Your email address will not be published. Required fields are marked *

相关推荐