《游戏编程入门》学习笔记2——启程

        至此时为止,猪哥未曾做成过任何一款游戏程序,只是估计自己有了这个能力,但是还未经实践检验,即未来成败尚未可知。  
        这里选择边做边记录的方式,有以下两点原因:
        1,督促自己坚持下去,同时 给自己信心,先从一个个小的难题入手,再去翻越那些大山。
        2,也算是个开发日志,方便日后回顾。
        鉴于自己是个纯小白,这一系列文章自然不可能算是教程,所以取名为“学习笔记”。它必然会包含很多错误,语言风格也不会太友好,很多问题的表述也非简洁易懂,只有我自己能看明白。这里贴出来仅是供其他入门者参考一下罢了。
倘若如此还 能有同好共同交流,便幸甚之至,要是再能有高手指点一二,则猪哥不胜感激!

        好吧,现在开始!
目标:做出一个可以在windows操作系统下运行的类似街霸的简单格斗游戏。 
基础:
学过C和单片机,有几个小项目的实战经验。C++仅粗略了解过几天。

一些题外话:
 
1,关于是否要先学C++才能编游戏
       
        猪哥之前执着于要先学C++才能玩游戏编程,所以抱着从琦琦家顺来的《21天学通C++》啃了有一段光景,第一部分和C雷同飞快翻过,进入中间讲什么类啊对象啊的相关操作时,就越来越迷糊了,不知道作者在那自说自话些啥,搞不懂他想干什么。忍着迷惑又翻了几章,突然忆起一句老话——“不识庐山真面目,只缘身在此山中”。于是抬起头来,宏观思考了一下一些本质性的问题,就顿悟了。C++,说到底,就是多提供了称作类的数据结构,类有些相关的操作,相对C中的结构体来说,能够更方便的实现某些面向对象的编程。而至于所谓的面向对象,无非就是按此思维模式,相对面向过程来说,能更方便的解决很多实际编程需要罢了。至于后面的std标准库模版什么的,也都是些常用的工具而已。尽管理解不深,也可能有些谬误,但这样一想,一切就都有豁然开朗的感觉。我觉悟到,对C++教程一直这么迷茫的缘由,来自于以往的编程需求中没有遇到过复杂的应用,一般也就用用数组啊,再复杂点就在通讯时用用联合体啊结构体什么的,所以对类这种特殊数据结构的便捷性便无法感同身受。
        所以我目前的看法是,不必先要把C++搞得很熟,C++未诞生前不照样有一堆前辈用各种其他语言做出各种游戏作品?
 
2,关于《游戏编程入门》

        说下手里这本《游戏编程入门》,Jonathan S.Harbour著 陈征 傅鑫等译 机械工业出版社  定价55.00 薄薄一本纸很软。
        读过之后感觉第一部分是难点,大致是讲windows程序的一些基础知识和DirectX是个嘛玩意。 这是个很重要的一环,当年我在学校没弄出啥成果来,主要就是没人指点我一句:从C语言到我们常见的win32应用程序之间,缺的就是操作系统和API的这一块知识了。翻来覆去大致看明白后,我才发现,其实重要归重要,不过就算不懂也是可以绕过的,因为这只是一个通用的外壳,你完全可以照搬过来,真正需要自己动手做的还是游戏的主体。
        之后几章介绍绘制位图、键盘鼠标控制、游戏精灵、精灵变换、碰撞检测等,我觉得主要看下绘制位图、绘制精灵、鼠标键盘控制这三章就够用了,碰撞检测是个很简单的东西,一看就懂。至于打印文本、卷动背景、3D渲染基础什么的,暂时还用不到。播放音频当然是要的,不过可以放到最后需要时再看。 
        头三章反复翻了几遍才大致懂,后几章其实都是引用已有函数,所以翻得飞快。猪哥今天一下午就翻了四章。

接下来,要动真刀真枪了…

       
        我的初步想法,是做一个有进入界面,类似街霸,有两个小人互相格斗的游戏。为了增强游戏性,两个角色在血量、伤害力、移动速度上会体现出差异性,同时为了降低制作难度,动作可以单一的设置为一个踢腿。背景画面一定要有,为了增添效果,看还能不能做些落叶飘过之类的动画。最后,再加入音乐音效、拉风的片头等。
        预计会有些个难点,就是怎样判断踢中对方没有、怎样设计才能达到较好的动画效果而不会太生硬等。
        这些问题教科书是完全没有提供解决方案的,到时只能自己动脑筋解决。
 
        之前对自己的策划和创作能力不太自信,搜索了一些其他人的源码资料等,不过后来先自己尝试着做,做着做着发现纯原创也能走下去,所以那些资料先放一边,以后再作参考吧。

2013.8.11注:
        日后会发现《游戏编程入门》这本书的源码有诸多谬误。

你可能感兴趣的:(《游戏编程入门》学习笔记2——启程)