嗨!大家好,我是代码华。今天给大家分享当前在写的一款游戏 --- 星际争霸 也就是3d打飞机 的制作过程。
说是3D打飞机,其实还不是独立的。。。。。目前是帮dark哥一款游戏写的一个模块,dark哥说打飞机模块相对简单,所以交给本码男来弄了,嘿嘿。跟dark哥一样,主要介绍一些思路吧!
Dark哥说过,游戏就是数据运算后给客户做个动画展示,深表认同。以前也写过数据和代码写死的打飞机,当程序越来越大时,回头要修改却发现不知道该改哪里的数据了,有时为了测试一些效果,就会修改了一些数值,但一修改,就要重新编译整个程序,往往复复就会消耗很多的时间,间接延长了游戏的整体周期。基于数据库的开发使用了一段时间,发现采用数据库开发,对于一些值的修改,直接在数据库中完成就好了,不需要进行重新编译整个程序,
对于模型换皮来说有了数据库就更简单了,直接在数据库修改一条记录就好了
关于构架游戏的数据和逻辑架构,dark哥的cocos2dx 3D战斗类游戏制作系列教程中已经讲过了数据库,所以就不在这里多说了,大家可以去看看dark哥关于数据库的那两篇文章。
既然把数据库跳过了,那就来自己负责的部分的功能和逻辑吧。大佬太懒,不给开发计划,只大致说了下功能目标,然后就让我自行发挥,而且还要返回接口文档。。。所以只好自己好好总结总结了。。。。。
首先,游戏功能,准备实现 飞机的3D飞行、子弹轨迹处理、子弹碰撞、随机宇宙空间、AI的追踪等等。
要实现这些功能,将涉及到自己还不清楚的技术点有:
3d飞行:这个功能是整个游戏中比较核心的部分,其与2d层面的飞行是完全不能进行对比的,仿照现实中的飞机飞行。这一部份将在后面章节讲操控的时候详解。
子弹轨迹处理:子弹轨迹处理也是游戏的重点,子弹击中敌人的轨迹如果没有处理完美,会给玩家一种视觉上违和的效果。这一部份将在后面章节讲轨迹处理的时候详解。
AI的追踪:这个是游戏的一个亮点,一个高智能的敌人,会给玩家一种与他人对战的感觉,完全没有人机对战的无聊。该部分或许只会讲一些构建思路,不会深入解析。
Dark哥已经给出了一些类库,包含了很多功能,如 3d世界精确点击处理、子弹的弹道 运算、可不再做深入研究。
我将要重点解决的功能是 3d飞行与子弹轨迹处理。
3d飞行的解决思路是采用数学曲线函数,实现飞机的转向,数学在游戏开发中可是很有用的啊,请开发者们注意了。
弹道处理:预设会有5大类的炮弹,直线型子弹,直线型导弹,曲线型导弹,跟踪式导弹(个人比较爱好,会重点讲),发散式导弹(多级弹)。
因为dark哥已给出部分弹道处理工具类,所以这部分会简单解决。
游戏现在的运行效果如下:
本篇算开个头,主要是游戏的整体架构,接下来的教程就会是具体的实现了。
下篇会讲下宇宙场景的实现。