![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2010
Сообщений: 95
|
Один раз я уже создавал тему, где писал, как после добавления импорта класса или чего-то в этом роде фпс ужасно падал. Сейчас ситуация похожая.
Пишу игры на своем "движке" с использованием бокс2д. Иерархия такая: GameObject <- DynamicGameObject <- SomeSpecialObject. У них есть атрибуты физического тела и изображения: В box2d есть функция SetUserData для физического тела (b2Body), которую я использую для проверки столкновений. Вот код этой функции: private var m_userData:*; ...................... public function SetUserData(data:*) : void { m_userData = data; } //конструктор SomeSpecialObject public function SomeSpecialObject() { body = ...; sprite = ...; body.SetUserData(this); //!!!!!!!!!!!!!!! super(....); } Сейчас понадобилось создавать тело в другом классе, и передавать его в конструктор. Примерно так: public function SomeSpecialObject(b:b2Body) { body = b; sprite = ...; body.SetUserData(this); super(....); } Пробовал по-другому, убрав body.SetUserData(this) из конструктора, но все равно тоже самое: var body:b2Body = ....; var object:SomeSpecialObject = new SomeSpecialObject(body); object.body.SetUserData(object); Надеюсь, написал не слишком сумбурно. ап: Когда пишу body.SetUserData("text"); - проблем нету ![]() ап: Передалал, чтобы тело создавалось в конструкторе - все равно с фпс завал. Так что или дело в боксе (не могу понять, как это возможно), или баг. файнал ап: все, исправил. Это чем-то похоже на то, что было сказано в моей предыдущей теме: http://www.flasher.ru/forum/showpost...90&postcount=8 Работаю на классом веревки - каждый ее сегмент есть игровым обьектом. До исправления был главный игровый массив с игровыми обьектами, и каждый кадр делался проход в цикле по массиву - обьекты обновлялись. Но звенья цепи были не в основном массиве, а в массиве обьекта-веревки. Таким образом, при обновлении веревки в основном цикле запускалось прохождение по обьектам звеньев в цикле веревки. Перенес "звенья" в главный игровой массив (т.е., все обьекты обновляются в одном цикле) - все заработало. Почему - не знаю ![]() Последний раз редактировалось vinch; 18.09.2010 в 00:04. |
![]() |
Часовой пояс GMT +4, время: 20:23. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|