【问题标题】:How to move calculate a thrown objects path in an isometric environment?如何在等距环境中移动计算抛出的物体路径?
【发布时间】:2009-08-29 04:22:18
【问题描述】:

我正在 iPhone 上制作等距游戏,需要一些帮助。计算一个物体从一块瓷砖扔到另一块瓷砖时必须走的路径的最佳方法是什么?我一直在研究使用 NSBezierPaths,但不能完全弄清楚如何将它们用于对象路径?任何帮助将不胜感激!

【问题讨论】:

  • 你要走直路还是弯路?使用重力?
  • 对不起,应该解释得更好!我想要一条有重力的弯曲路径,基本上代表将物体扔给某人的真实世界动作。
  • 我看到这被标记为 iPhone。请注意,NSBezierPath 目前仅在 Mac 上。
  • 啊,谢谢提醒。任何人都知道如何在没有 NSBezierPath 的情况下做到这一点?

标签: iphone path isometric


【解决方案1】:

我建议不要使用矢量图形 (NSBezierPath) 来完成您需要完成的任务。

您可以使用 CGPoint 来表示每个游戏对象的位置(假设这是一个 2D 游戏)。 (将此结构放在 GameObject 类中)。

struct objectPhysics
{
   CGPoint position;
   CGPoint velocity;
}

使用速度和方向向量来计算物体的轨迹。假设以下是向量:

position = position * velocity * timeDifference;

当事件发生时(例如用户单击对象或检测到碰撞),将速度矢量设置为值 (1, 0.5) 或表示在 X 方向移动 +1 并在 Y 方向移动 0.5 的值每帧方向(或时间单位,如果你有“* timeDifference”)。

您应该查看this site 以获取有关开始游戏编程的提示以及一些您需要的vector math 以计算您需要加速的方向。

时间差衡量自上一帧以来已经过去了多少时间,用于确保对象移动正确的距离以与您的帧速率保持同步。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    相关资源
    最近更新 更多