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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.07.2011, 00:20
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 21  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
хм, так у вас сейчас, судя по коду только точки пересечения без самих объектов.

Код AS3:
var nearPoint:Point;
var minDist:Number = Number.MAX_VALUE;
for() //ваш цикл
{
    ...
    var distance:Number = Math.sqrt(pow1 + pow2);
    if(distance<minDist)
    {
        minDist = distance;
        nearPoint = sadV;
    }
}
Добавлено через 6 минут
Ну и стандартные советы для ускорения работы

1) длину массива в переменную
2) точку new Point(stage.x, stage.y) создать вне цикла, да и смущает меня что-то вообще
3) bodyconm.x и y тоже можно в переменные вынести перед циклом.

не совет, просто для справки
4) есть статический метод Point.distance, вроде точки кушает. Не знаю быстрее ли расчетов.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 14.07.2011, 02:28
Scorp2008 вне форума Посмотреть профиль Отправить личное сообщение для Scorp2008 Найти все сообщения от Scorp2008
  № 22  
Ответить с цитированием
Scorp2008
[+1 13.07.11]
[++1 13.07.11]

Регистрация: Dec 2009
Сообщений: 42
спасибо, утром разбираться буду в вашем коде, опробую А про массив, так массив sad - это массив не точек, а именно массив элементов которые пересекаются с линией, а сам массив точек он выше и я не стал тот код сюда копировать.

Добавлено через 1 минуту
А советы для ускорения работы, реально ли созданием точки new Point(stage.x, stage.y) вне цикла что-то ускорить? )) Просто мне кажется это очень незначительная вещь, а оптимизация делается несклько поглобальнее, хотя и такие мелочи постараюсь учесть.

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

Регистрация: Jul 2010
Сообщений: 110
не самый эффективный способ обращения за помощью, с наездами на всех кто пытается вникнуть в задачу. есть предположение, что по законам геометрии (что это!?) линия может пересекать квадрат в одной точке или в двух, как вообще понять из этого массива что где пересекается? может быть берется только одна точка для каждого квадрата?


Последний раз редактировалось hartman; 14.07.2011 в 11:17.
Старый 14.07.2011, 11:30
willis83 вне форума Посмотреть профиль Отправить личное сообщение для willis83 Найти все сообщения от willis83
  № 24  
Ответить с цитированием
willis83
 
Аватар для willis83

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
а можно поинтересоваться, какой вид игры? Если вид сверху, и цели могут приближаться со всех сторон, то посложнее, т.к. расстояние надо искать по геометрическим формулам, а если что-то подобное старой доброй контре, даже учитывая то что враги могут подступать с обеих сторон, то есть смысл просто вычислять модуль разницы по координате х между стрелком и целью


Последний раз редактировалось willis83; 14.07.2011 в 11:34.
Старый 14.07.2011, 12:51
Scorp2008 вне форума Посмотреть профиль Отправить личное сообщение для Scorp2008 Найти все сообщения от Scorp2008
  № 25  
Ответить с цитированием
Scorp2008
[+1 13.07.11]
[++1 13.07.11]

Регистрация: Dec 2009
Сообщений: 42
willis83 - да, вид сверху, писал где-то постом выше, что игроки могут подойти с любой стороны, поэтому решение с одной координатой не годится. Сейчас начну делать по коду GBee, посмотрим получится ли. Но уже плохо то что со 100 врагами (создаю одновременно) - игра начинает тормозить, правда тормозит она даже когда просто 100 врагов идут на тебя (т.е. не из-за рассчётов стрельбы), но это я уже отдельную тему создам с вопросом об оптимизации.

Старый 14.07.2011, 13:52
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 26  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Корень вычислять смысла нет, для сравнения подойдет и квадрат дистанции.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 14.07.2011, 16:12
Scorp2008 вне форума Посмотреть профиль Отправить личное сообщение для Scorp2008 Найти все сообщения от Scorp2008
  № 27  
Ответить с цитированием
Scorp2008
[+1 13.07.11]
[++1 13.07.11]

Регистрация: Dec 2009
Сообщений: 42
Цитата:
Сообщение от alatar Посмотреть сообщение
Корень вычислять смысла нет, для сравнения подойдет и квадрат дистанции.
Да, оптимизацией нужно заняться, но это попозже. Просто я так в уме не знаю этих функций, если бы вы написали как оно вычисляется хотяб просто чистой функцией геометрии - переделал бы, а так позже, поищу-переделаю.

А так - всем спасибо, то что нужно было по теме - реализовал.

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

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

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


 


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


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