游戏简谈

塔防游戏

塔防核心

塔防游戏中。一些功能核心无非是以下几点:

  1. 怪物如何按照一定的轨迹进行移动。
  2. 防御塔的实现。

怪物的属性:

  • 移动速度
  • 血量
  • 移动方向

怪物的状态:

  • 行走状态:移动
  • 死亡状态:销毁自己
  • 其他buff/debuff状态:执行对应的方法

怪物的行为:

  • 四个方向移动(按照一种速度)。
  • 销毁自己。
  • buff/debuff方法

游戏场景中会提供一些点。来告知怪物当前需要行走的方向。pic

怪物会根据场景告知的信息去切换自身的移动方向。

防御塔的一些相关代码:

防御塔的属性:

  • 攻击力
  • 攻击速度
  • 攻击范围
  • 瞄准对象
  • 一个数组用于记录进入攻击范围的敌人 防御塔的状态/方法 略。。。

防御塔的行为就是攻击进入自己攻击范围的最近的一个单位。

实例介绍:

eg1:防御塔如何检测周围的敌人?

这里介绍一个最简单的方法

  • 假设A防御塔位于地图的正中心(10,10)位置。
  • 假设它的攻击距离是3个单位,那么他的攻击范围就是以(10,10)坐标为中心,以3为半径的一个圆形范围。
  • 如果有敌人单位和这个圆产生了碰撞,那么就认为怪物进入到了攻击范围内。并把它们依次push到一个数组中。
  • 如果敌人不产生碰撞以后就把对应的对象从数组中拿出去。
  • 默认防御塔瞄准数组的第一个对象。

eg2:防御塔攻击敌人的行为背后发生了哪些事情?

  • 被攻击敌人会直接扣掉等同于防御塔攻击力的血量。
  • 场景中会创建一个子弹/其他什么贴图,从防御塔位置移动到被攻击敌人的位置。

跑酷游戏

跑酷游戏的地图

  1. 无论是障碍物也好,金币也好,其实都是按照一定的算法随机生成的。

pic

实际对于代码来说。只需要先写好几种对象,比如上图中的香蕉和汽车。

  • (good对象)对于香蕉对象,只要被玩家碰到了。首先自毁。然后告知计分器增加固定分值。
  • (bad对象)对于汽车对象,只要被玩家碰到,就结束游戏。

对象生成以后在屏幕最上面,然后向下移动,移出屏幕。 玩家会按照一定的速度向上移动。

游戏速度随着游戏时长的增加而按照一定的曲线增加。就这样无尽的进行下去,直到游戏结束,收获一个得分。

这就是跑酷游戏的基本设计思路。

然后基于这个模型,添加其他的可变因素。就形成了各种各具特色的跑酷。 比如:

  1. 主角变成小黄人,good对象变成香蕉,bad对象变成坏蛋,就可以拉一波小黄人的粉丝来玩。
  2. 主角变成吴邪,good对象换成文物的贴图,bad对象换成粽子(僵尸),就可以拉一波盗墓笔记的粉丝来玩。

ps.以上这种叫做典型的炒冷饭游戏,利用IP进行吸金的行为。

  1. 增加一些其他的道具或者装备,来提高主角的属性。比如天天酷跑中,玩家装备不同的坐骑会使得到金币的数量翻倍。或者增加一个神马防护罩。或者暂时增速或者减速。其实无非就是变着花样的控制主角的一个或者多个属性而已。从而实现一个具有固定特点的一款跑酷游戏。

ps.这种是市面上比较常见的跑酷游戏。

上篇gulp学习笔记
下篇游戏开发之状态机