2012-03-28 90 views
1

我在gamedev.SE网站上今天早些时候问了另一个版本的这个问题,但我想我可以在这里得到更好的答案。还重新提出了一些问题。我希望这是好的没有找到任何禁止它在常见问题解答中找不到任何东西动态创建对象并单击其中一个对象

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

问题a)基本上,我想创建一定数量的相同的对象/函数(一个球)。但物体会动态创建(因为球的数量可能在3到25之间),最好使用for循环将不同的球推向阵列。

但是我没有足够的经验来找出一个很好的方法来做到这一点。另外,一旦我在画布上放置了我的数组球,我希望能够选择其中一个球。

问题b)如何知道/确定数组中的哪个球被点击? 是一个简单的循环足够和访问与[我]的对象?

我做了一个jsFiddle例子,我想要一个球(你需要点击橙色的球来选择,然后你可以通过点击画布上的任意位置来移动它)。

这是我想要做的,但有更多的球,并没有指定球的数量(决定我得到的数额部分)。我怎样才能以简单的方式解决这个问题?

帮助赞赏。

回答

2

使用for循环是好的为您的对象生成。

至于检测当您单击画布中的对象时,this tutorial可能会有所帮助。看来有没有内置的功能在你的画布上跟踪物体 - 你只是做手工命中检测根据你的鼠标下的共同像素和对象

希望帮助

+0

该教程看起来很棒。肯定会读它。 – justanotherhobbyist 2012-03-29 13:25:19

0

Paper.js具有很大的DOM模型,以及开箱即用的能力,然后选择项目

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

命中测试:

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

+0

我不想使用外部图书馆,这不教我什么。点击部分我被覆盖了。我需要知道如何更大规模地做到这一点。 – justanotherhobbyist 2012-03-28 19:20:08

+0

一个库不是黑匣子,你仍然可以阅读源代码。 – mpm 2012-03-29 00:00:09

+0

是的,但大多数时候它有几千行代码。如果不放下一个月的生活,就很难获得所需的部分。逆向工程不是我的强项。 – justanotherhobbyist 2012-03-29 15:32:34