Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.05.2012, 10:50
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 1  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Question Работа в классе со своими же экземплярами

Вопрос, как в классе задать функцию которая заставляла бы объекты данного класса и всех подклассов избегать встречи друг с другом на сцене, например при сокращении дистанции друг с другом ближе чем на 30 пикселей 1 объект отдалялся бы от другого. (что бы враги друг в друге не стояли) Не представляю как обратится к самим себе во множественном виде.

Старый 17.05.2012, 11:09
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 2  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Единственный вариант, который приходит в голову, использовать статический вектор в который добавлять элементы при добавлении на stage и удалять при удалении со stage. Соответственно нужны статическая функция и статический таймер.

Но я рекомендовал бы пересмотреть архитектуру и повесить внешний контроллер, так как этот подход ужасен.

Старый 17.05.2012, 11:15
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 3  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Вообще не понятно, я походу дела далек от этого еще) Надеялся что есть вариант обратится ко всем внутренним экземплярам и дать команду через условие сближения.

Старый 17.05.2012, 11:31
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 4  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Исходники я свои к сожалению потерял, но скажу как бы делал сам:
1. Ищете в просторах сети демку где какой либо объект движется за курсором мыши, таких думаю полно демок и изучаете код
2. Добавляете все ваши объекты в массив и на сцену
3. Пробегаете по массиву и определяете дистанцию между каждыми 2 объектами(что то подобное должно быть в демке из пункта 1)
4. Если расстояние меньше 30 пикселей, то опять же обращаетесь к коду демки из пункта 1(и делаете удаление объектов друг от друга)

Старый 17.05.2012, 11:50
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 5  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
По началу я добавлял все эти объекты в массив давая им Instance Name, но когда я понял что если не давать им имена и просто вытаскивать на сцену то можно ими управлять не добавляя в массив.. этот вариант я оставил т.к. он меньше грузит комп. Вот почему я хочу узнать как обратится к своим экземплярам прямо в классе... у них нет имен, они просто стоят на сцене, так я не смогу добавить их в массив.

Старый 17.05.2012, 20:05
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 6  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Статичный массив делайте в классе, и уже в него добавляйте экземпляр
Если не прав пусть кто нибудь поправит! сам такого не делал


Последний раз редактировалось ЗлОй ПрОграММер; 18.05.2012 в 08:49.
Старый 17.05.2012, 20:36
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 7  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Статичный массив. Я бы разбил поле на квадраты равные примерно минимальному расстоянию между объектами, ну или что-то вроде того. Далее при перемещении или добавлении объекта сверялся с занятостью этих квадратов, а там уже можно и развести объекты по свободным к примеру соседним.

Старый 17.05.2012, 21:36
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 8  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
есть такой ответ.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.