Динамическое создание объектов и нажатие на один из объектов - PullRequest
1 голос
/ 28 марта 2012

Я задал другую версию этого вопроса на сайте gamedev.SE ранее сегодня, но решил, что смогу получить лучшие ответы здесь. Также переформулировали вопрос некоторые. Я надеюсь, что все в порядке, не смог найти ничего, что бы запрещало это в FAQ

Я играю в пазлы, мало что сделал, прежде чем столкнулся с первой проблемой.

Вопрос а) По сути, я хочу создать определенное количество одного и того же объекта / функции (шара). Но объекты будут создаваться динамически (так как количество шариков может варьироваться от 3 до 25), предпочтительно с циклом for, выдвигающим разные шарики в массив.

Однако я не достаточно опытен, чтобы найти хороший способ сделать это.

Кроме того, после того, как у меня на холсте будет множество моих шариков, я хочу выбрать один из шариков.

Вопрос б) Как узнать / определить, по какому мячу в массиве щелкнули? Достаточно ли простого цикла for для доступа к объектам с помощью [i]?

Я сделал jsFiddle пример того, что я хочу с 1 шаром (вам нужно нажать на оранжевый шар, чтобы выбрать, затем вы можете перемещать его, щелкая в любом месте на холсте).

Это то, что я хочу сделать, но с большим количеством шаров, и количество шаров не указано (решая, какую часть суммы я покрыл). Как я мог решить это простым способом?

Помощь оценена.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Использование цикла for прекрасно подходит для генерации вашего объекта.

Что касается обнаружения при щелчке объекта на холсте, этот учебник может помочь.Похоже, что нет встроенной функции для отслеживания объектов на холсте - вы просто определяете попадание вручную на основе общих пикселей под мышью и объектом

Надеюсь, что это поможет

0 голосов
/ 28 марта 2012

Paper.js имеет отличную модель DOM, и из коробки можно щелкать и выбирать элементы

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

проверка удара:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...