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

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

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

Регистрация: Feb 2012
Сообщений: 10
По умолчанию цикл тормозит игру

Начал писать игру со стрельбой, врагами, как водится... И заметил, что цикл, просчитывающий попадания сильно тормозит игру, так как врагов с таким скриптом генерируется много. Как можно решить эту проблему?

вот такой цикл:

Код AS1/AS2:
for (var n:Number = 0; n < 20; n++) {
if (_parent._parent.hitTest(_root["bullet" + n].inn))
		{
			_parent._parent.health--;
			_root["bullet" + n].gotoAndStop(2);
		}
Заранее спасибо )


Последний раз редактировалось mooncar; 16.03.2012 в 00:48.
Старый 16.03.2012, 00:48
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Код нужно выделять тегами, а не рамочкой. Это правило.
PS. Поправьте табуляции у кода. Да и вообще одна скобка потеряна.
__________________
Идите первым!


Последний раз редактировалось mooncar; 16.03.2012 в 01:04.
Старый 16.03.2012, 11:11
vivado вне форума Посмотреть профиль Отправить личное сообщение для vivado Найти все сообщения от vivado
  № 3  
Ответить с цитированием
vivado

Регистрация: Aug 2010
Сообщений: 282
Используй вместо цикла onEnterFrame

Старый 16.03.2012, 20:09
misha3000 вне форума Посмотреть профиль Отправить личное сообщение для misha3000 Найти все сообщения от misha3000
  № 4  
Ответить с цитированием
misha3000

Регистрация: Feb 2012
Сообщений: 10
э... ну а как тут onEnterFrame использовать для проверки столкновений объекта с другими объектами? ) просто я хочу узнать тормозит сам цикл вычисляющий или hitTest ...

Старый 16.03.2012, 20:21
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от misha3000 Посмотреть сообщение
я хочу узнать тормозит сам цикл вычисляющий
Что значит "тормозит сам цикл"?
Цикл сам по себе не может "тормозить". Это просто проверка условия цикла и принятие решения о выполнении некого алгоритма повторно. Еще могут быть высконагруженными операции, которые в нем производятся.
Но та же проверка на hitTest у вас выполняется всего 20 раз, если судить по приведенному вами неряшливому обрывку.
Другое дело, если запуск цикла производится с частотой fps, то есть 20 и выше раз в секунду, в том же обработчике onEnterFrame. Если вы проверяете, как летят, например, пули, то возможно, что это и имеет место.
Или же ежесекундно запускается множество таких циклов.

Но об этом тут ничего не известно. Если судить по этому коду, то можно сказать, что с ним все ок.
__________________
Идите первым!


Последний раз редактировалось mooncar; 16.03.2012 в 20:25.
Старый 17.03.2012, 00:14
misha3000 вне форума Посмотреть профиль Отправить личное сообщение для misha3000 Найти все сообщения от misha3000
  № 6  
Ответить с цитированием
misha3000

Регистрация: Feb 2012
Сообщений: 10
уфф... да, ежесекундно запускается множество таких циклов. Как бы Вы предложиди изменить эту ситуацию? )

Старый 17.03.2012, 00:21
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Наверное, я лично - никак, сам несколько раз использовал такой способ, но объектов было мало, так что альтернативы не алкал.

Но тема поднимается часто на форуме - попробуйте поискать, в т.ч. и в ветке AS3.
Основная идея одного из решений - не проверять hitTest, а попросту вычислять, будет перекрытие, или нет, основываясь на известности траекторий и очертаний. Это гораздо менее ресурсоемко.
__________________
Идите первым!

Старый 22.04.2012, 00:59
misha3000 вне форума Посмотреть профиль Отправить личное сообщение для misha3000 Найти все сообщения от misha3000
  № 8  
Ответить с цитированием
misha3000

Регистрация: Feb 2012
Сообщений: 10
Цитата:
Сообщение от mooncar Посмотреть сообщение
Наверное, я лично - никак, сам несколько раз использовал такой способ, но объектов было мало, так что альтернативы не алкал.

Но тема поднимается часто на форуме - попробуйте поискать, в т.ч. и в ветке AS3.
Основная идея одного из решений - не проверять hitTest, а попросту вычислять, будет перекрытие, или нет, основываясь на известности траекторий и очертаний. Это гораздо менее ресурсоемко.
получилась такая игра
https://sites.google.com/site/ekonom...tvoznanie/rrra

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

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

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


 


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


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