咱们用Cocos做一个前段时间很火的《召唤神龙》式游戏(1)
(本文作者纸雀)
前言
之前咱们分享过很多Unity的教程。
今天咱们换个口味,做一个CocosCreator小游戏分享的迷你系列。分享的主题,就是前段时间一度引起话题的《召唤神龙》——虽然题材和具体规则有区别,但大体玩法是一致的。
需要说明的是,限于篇幅所限,本系列可能不会指导大家从零基础开始完整的制作,但是会从游戏设计到功能实现的角度,带您剖析一个上头的小游戏是如何组成的,并且从中选取一些有意思的小设计分享给大家。
1.为什么是Cocos Creator
先来简单聊下为什么做这个小项目使用Cocos。其实无它,最主要就是因为CocosCreator界面简洁 , 功能精简——非常适合做小游戏 . (o゚▽゚)o
CocosCreator通常使用TypeScript。TS是JavaScript的超集 , 和C#一样是强类型语言。如果你之前学了Unity,那上手CocosCreator简直是如鱼得水。 (~ ̄▽ ̄)~
2.成品图
废话不多说,先整点会动的实机效果让大伙儿看看:





3.从游戏设计到功能实现
从这里开始咱们就具体分析一下玩家是如何"爽"起来的(๑´ㅂ`๑)

玩家在躲避高级敌人的同时寻找低级或同级的敌人 , 打败他们后会吸纳到自己的队伍中 , 每三个同样的角色会合成升级成更高级的角色 , 当你成功合成高级角色之后就可以欺负回去曾经打不过的敌人啦。
所以玩家大概会经历"逃跑-寻找-击杀-升级-击杀曾经击杀不了的敌人"的循环。
(我要悄悄的变强 , 然后惊艳所有人!)当时欺负我的 , 我要以牙还牙 , 加倍奉还o(´^`)o
玩家需要的功能 :
处理操作输入----移动 , 玩家在地图内能朝任意方向移动。
自动攻击----最近的敌人 , 同时不能影响移动 , 玩家的上半身要面对敌人开火。
积累队友到升级----重新排布队伍 , 更改各类敌人数量 , 重新刷新敌人 , 更改视野移速攻血等属性。
敌人需要的功能 :
生成----敌人生成的位置在玩家视野外 , 并且按照表中配置好的数量生成。
移动----默认随机移动 , 撞墙之后转向 , 附近有玩家时有追击/逃离两种状态。
攻击----攻击最近的敌人或者玩家。
死亡----销毁自身的时候在合适的位置生成一个自己。
其他的小功能 :
道具
攻击范围
敌人位置提示
音效
到此为止小游戏的功能基本上整理的差不多了。
3.1咱们接下来就具体来看看移动时战斗和非战斗两种状态的转换
演示如下 :

新建一个3.4.0的项目 , 会看到如下界面 .

在上面切换成2D模式 , 然后把图片资源拖进左下角的资源管理器 , 就可以导入到工程里了 , 我这里拖入了一个步枪手小人的素材 .

接下来把资源拖到场景里会新建一个Canvas , 注意CocosCreator场景里的物体渲染顺序是从上到下的 , 也就是说下面的会覆盖上面的 , 经过一番调整层级之后咱们的小兵就成功导入了 !


接下来咱们给他写个基础的移动功能:

这段代码包括了接收玩家的触摸输入 , 控制移动 , 和摄像机的跟随:
来看看效果

关于开火和移动的姿势切换的实现,这个比较适合用动画系统做。我把动画相关的内容留到下期来讲解,这里先卖个关子。
接下来咱们做瞄准敌人的功能。
首先,我们要确保下半身永远面朝着咱们的移动方向。
然后咱们要判断敌人在不在玩家攻击范围内。如果在范围内 , 那上半身的角度就是:先算从玩家到敌人的向量 , 然后再与(0 , 1)向量比较转成弧度 , 再乘180 / Math.PI 转换成角度 , 又因为在CocosCreator里rotation顺时针为负数 , 逆时针为正数 , 和signAngle这个方法算出的结果(顺时针为正逆时针为负)方向相反 , 所以前面要加负号。
经过这么一通猛于虎的计算操作,咱们就算出了上半身面朝敌人的正确方向。

到此为止是第一期的全部内容 , 介绍了CocosCreator的一些基础操作 , 添加了行走和索敌的功能。
下期预告 :
CocosCreator中的预制体和动画系统;
玩家的三合一是怎么实现的。
敬请期待φ(>ω<*)

皮皮关与网易联合开发了完备的游戏开发线上课程,目前页面已经上线:
https://ke.study.163.com/course/detail/100103487
页面中有课程的介绍说明。同时,之后也会发一篇更详细的文章来专门介绍一下。
感兴趣的童鞋,可以通过企业号18969102874与网易小伙伴取得联系,有什么问题直接糊网易小伙伴一脸(战术后退