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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.08.2010, 17:05
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 11  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
2Tails, давали уже.
http://noregret.org/tutor/n/collision/

Старый 23.08.2010, 17:06
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 12  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
Цитата:
Сообщение от shaman4d Посмотреть сообщение
И какие недостатки? Можете рассказать?
видимо было много объектов в зоне видимости
__________________
low +

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от shaman4d Посмотреть сообщение
И какие недостатки? Можете рассказать?
Если делать клипами, то банально, чтобы даже узнать находиться ли обьект в "зоне видимости" придёться сравнивать его x y, юзать циклы - а это затраты ресурсов системы.
Можно конечно всё запихать в один контенер, и сравнивать с ним персонажа хит тестом maxX maxY, но такой вариант тож не очень (почемуто так хит тест реагирует с небольшой задержкой).

В случае с сеткой размер левала ничем неограничен и никаких циклов.

Цитата:
Сообщение от Jewelz Посмотреть сообщение
видимо было много объектов в зоне видимости
Что значит "зона видимости" ? окошко видимости зоны из флеш плеера (550х400) ? Открою вам секрет, если объект находиться за этой зоной видимости, где нить за экраном, флеш плеер автоматически его не прорисовывает. Тоесть независимо от того какой у обьекта будет _visible, за экраном флеш его небудет рисовать и следовательно тратить ЦП. Игры с большими уровнями виснут из-за циклов - постоянно пробегающих по этим обьектам.
__________________
Дети не должны знать о своих родителях


Последний раз редактировалось Tails; 24.08.2010 в 00:36.
Старый 24.08.2010, 00:36
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 14  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Tails, такая проблемка есть... Используя сетку проходят все те же самые сравнения точно так же, как будто бы её не было - только количество объектов там резко сокращается...

Старый 24.08.2010, 00:53
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 15  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Открою вам секрет, если объект находиться за этой зоной видимости, где нить за экраном, флеш плеер автоматически его не прорисовывает. Тоесть независимо от того какой у обьекта будет _visible, за экраном флеш его небудет рисовать и следовательно тратить ЦП
Ну, вообще-то не совсем так.
До тех пор, пока объект находится в дисплей-листе, он проверяется на вхождение в видимую область, проверяется на visible и только потом рендерится.
То есть, если у Вас много объектов вне дисплей-листа - это ничего, а вот если много объектов но с visible = false или вне зоны видимости - это все-равно нагрузка на проц.
Так что наиболее оптимальный путь - это делать addChild и removeChild, снижая таким образом число проверок и нагрузку на CPU.

Кстати, если интересно - вот пара ссылок
1) некоторые тонкости
2) некоторые оптимизации
__________________
...вселенская грусть

Старый 24.08.2010, 00:56
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 16  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Psycho Tiger
Я имею ввиду нечто вроде:

massData[][] - 2х масив (сетка)
Player[x][y] - положение в ячейки масива
Столкновение сравниваем типо:
Player.hitTest(massData[Player[x+1][y]])

Это образно
Вообще саму ячейку можно разбить ещё на несколько более мелких ячеек, или внести максимально возможное количество обьектов в ячейке. Теоритически, такой вариант позволит делать неограниченные по размерам зоны.

gloomyBrain
спасибо
__________________
Дети не должны знать о своих родителях


Последний раз редактировалось Tails; 24.08.2010 в 01:01.
Старый 24.08.2010, 01:03
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 17  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
И так на 8 смежных клеток - уже цикл на 8 итераций.
Только хиттестом сравнивать - это только для прямоугольников. В ячейке могут быть объекты разной формы. Поэтому сетка просто "обрезает" зону поисков на препятствия.

Старый 24.08.2010, 01:06
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 18  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Psycho Tiger
Угу всё так. Совсем без сетки придёться сравнивать вообще всё что есть на сцене.
__________________
Дети не должны знать о своих родителях

Старый 24.08.2010, 01:12
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 19  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Необязательно. Можно например хранить список объектов, расстояние до которых меньше определенного значения и обновлять этот список когда игрок переместится на какое-нибудь расстояние от текущей точки.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Можно например хранить список объектов, расстояние до которых меньше определенного значения и обновлять этот список когда игрок переместится на какое-нибудь расстояние от текущей точки.
И как ты планируешь его обновлять?
__________________
...вселенская грусть

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

Теги
AS3 , flash , Игры на flash , оптимизация

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

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


 


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


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