‘救助’devlog(3)

因此,今天我正在尝试解决在圆形区域“束缚”用户的问题,而不会显得沮丧或笨拙。 我相信我有一些可行的方法。

我现有的模型有些消极,并且是从我从未玩过的PUBG中窃取的。 基本上有一个安全的“区域”,它外面的所有东西。 随着时间的流逝,您会在“红色”区域受到损害。 希望这旨在鼓励玩家留在游戏区域而不会增加硬障碍。 另外,“太空”中的硬障碍会是什么样?

基本上,我想避免“牢固”的碰撞行为。 这有点丑陋,与游戏流程不符-您在飞行并突然停下来,可能会尴尬地撞到这个障碍。 好玩

因此,我有一个新的解决方案,部分是我认为是从Luftrausers那里偷来的-一旦玩家走了一定距离,它就会变成一种灵活的“反弹”或“重定向”机制。 我在这里有一个示例,尽管控件比游戏进行中的版本更简单:

单击“结果”,然后单击以开始向一个方向移动

它的核心是新的“ BoundDistance”行为,该行为检查对象(在这种情况下为播放器)是否距某个点一定距离。 如果是,它将使对象朝向该点旋转(朝向角度和速度)。

  var theta = angle(this.entity.x,this.entity.y,this.target.x,this.target.y); 
this.entity.angle = lerp_angle(this.entity.angle,theta,5 * dt);
this.entity.velocity = {x:Math.cos(this.entity.angle)* 80,y:Math.sin(this.entity.angle)* 80};

这很简单,但是在视觉上进行一些改进可以传达出在有限空间内被“困住”的感觉,而不会造成笨拙的文字停顿点。 不过我不知道。