【问题标题】:Change spState when direction change in spRandom当 spRandom 中的方向改变时改变 spState
【发布时间】:2013-06-11 22:55:33
【问题描述】:

另一个游泳鱼问题;-)

有没有办法检测 spRandom 当前移动的方向?这样我就可以将精灵的 spState 从 1 更改为 2。

if direction=left spState(1) -> 鱼面朝左 if direction=right spState(2) -> 鱼朝右

希望你能理解我的问题。我还没有发布任何示例代码。希望任何人都可以给我一个通用的例子来说明如何做到这一点。

谢谢你,阿诺。

【问题讨论】:

  • 我已经用一个例子更新了答案。

标签: jquery spritely


【解决方案1】:

总能得到元素的位置:

   $('#bird').position().top // left, right, bottom.

然后你可以得到这个精灵与物体的距离并设置正确的spState。

类似:

  distance = Math.sqrt((
             Math.pow(
                  (object.position().left - spirte.position().left), 2) +
             Math.pow(
                  (object.position().top - spirte.position().left), 2) 
           ));

所以你可以检查这些东西需要改变多少距离。

检查this

for watch the sprite你需要this之类的东西,这是一个jQuery插件,它使用Mutations Events来观察元素,documentation

现在还有 Mutation ObserversMutations Events 的替换,所以你可以为你的 DOM 对象写一个观察者,more here

Here's an example我希望它可以帮助你提出一个想法。

更新

您需要做的就是获取父级的中心,然后检查当前位置 你的精灵,看看它是否比中心多或少。

Left or Rigth

更新 2

它似乎在 jsfiddle 之外工作。 Test it here. (jsbin)

【讨论】:

  • 哇,感谢您的出色回答。手表插件正是我所需要的。你的数学是基于与另一个物体的碰撞。你也能计算出精灵的方向吗?再次感谢。阿诺。
  • 这是行不通的,因为当鸟离开中心时它仍然可以飞到右边,反之亦然。我做了这样的事情:jsfiddle.net/eagleeyes007/dNKax/5 但这也不起作用。
  • 是的。它工作了一瞬间,然后看起来 spritely 只是将其重置为 spState 1
  • 这很愚蠢,但正是我认为你说你需要的...... :)
  • 哇太棒了!这正是我所需要的。非常感谢你的帮助。如果我有在线完成的网站,我会在此处发布链接,以便您查看您对我的帮助。我对您的请求的回答也将在代码中;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多