动态创建对象并单击其中一个对象

时间:2012-03-28 19:11:28

标签: javascript html5 canvas

我今天早些时候在gamedev.SE网站上问了这个问题的另一个版本,但我觉得我可以在这里找到更好的答案。还重新提出了一些问题。我希望这没关系,在FAQ

中找不到任何禁止它的东西

我正在玩益智游戏,在遇到第一个问题之前没有那么做。

问题a)基本上,我想创建一定数量的相同对象/功能(一个球)。但是对象将动态创建(因为球的数量范围可以从3到25),最好是使用for循环将不同的球推送到阵列。

但是我没有足够的经验来找到一个很好的方法来做到这一点。

此外,一旦我在画布上放置了一系列球,我希望能够选择其中一个球。

问题b)如何知道/确定点击阵列中的哪个球? 是一个简单的for循环并使用[i]?

访问对象

我用1个球制作了jsFiddle我想要的例子(你需要点击橙色球来选择,然后你可以通过点击画布上的任何地方来移动它)。

这是我想要做的,但是有更多的球,并且没有指定球的数量(决定我被覆盖的数量部分)。我怎么能以一种简单的方式解决这个问题呢?

帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

使用for循环可以生成对象。

至于检测何时单击画布中的对象,this tutorial可能有所帮助。看来没有用于跟踪画布中对象的内置功能 - 您只需根据鼠标和对象下的常见像素进行手动命中检测

希望有所帮助

答案 1 :(得分:0)

Paper.js具有出色的DOM模型,并具有点击和选择项目的开箱即用功能

http://paperjs.org/tutorials/project-items/transforming-items/

点击测试:

http://paperjs.org/examples/hit-testing/