如何在gamesalad中直线移动球?

我有一个叫球的演员,我想把它移动到一个由演员球的X和Y坐标以及光标的X和Y坐标所创建的直线上。 我有moveal行为在gamesalad,但我没有确切的想法如何用两个笛卡尔坐标球和光标移动球。

以下是如何解决GameSalad中的问题:

  1. 创建2个游戏属性:TargetX和TargetY(都应该是真实的)
  2. 打开你的光标演员。
  3. 将两个Constrain属性行为添加到游标:1 – 将self.location.x限制为touch1.x; 2 – 将self.location.y约束为touch1.y)
  4. 将两个以上的Constrain属性行为添加到光标:1 – 将TargetX约束为self.location.x; 2 – 将TargetY约束到self.location.y
  5. 打开你的球员。
  6. 添加MoveTo行为。
  7. 设置MoveTo坐标以匹配自定义目标坐标(X = TargetX; Y = TargetY)

现在把你的舞会演员放到你的场景中去考试。

特别是我不太了解游戏,但是你解决这个问题的一般方法如下:

  • 将光标的屏幕坐标转换为您的世界坐标(因此与球的坐标系统相同)。 这是你的目标位置。
  • 通过从目标位置减去球的位置,从球得到vector到目标位置。 这是你的非标准化的方向vector。
  • 规范你的方向vector
  • 画出你的每帧移动量。 通常通过乘以您的单位/第二个期望的速度的帧时间。
  • 用你的标准化的方向vector乘以每帧的移动量。
  • 将每帧移动量添加到您的球的位置。