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

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

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

Регистрация: Feb 2010
Сообщений: 95
По умолчанию Игра зависает после добавления переменной - баг?

Здраствуйте.
Есть игра.
Добавил в класс уровня поле:
Код AS3:
public var BulletClass:Class = Bullet;
Которое нигде не использую.
В момент, когда создается экземпляр класса:
Код AS3:
new Bullet(......)
Игра зависает.
BulletClass не используется вообще. Убираю его - все работает.
Баг?

UP: Даже так - создал класс оружия:
Код AS3:
	public class Weapon
	{
		public static var gameArray:Array;
		public var bulletClass:Class;
		public var reloadTime:Number;
 
		public function Weapon() 
		{
 
		}
 
		public function shoot(xi:Number, yi:Number):void
		{
			gameArray.push(new bulletClass(.....));
		}
	}
и по таймеру вызываю shoot. Игра зависает (фпс очень маленький). Ранее, в другой игре, такое работало.


Последний раз редактировалось vinch; 15.08.2010 в 13:33.
Старый 15.08.2010, 14:55
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 2  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Не баг, просто игра так классно написана

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Очевидно, что проблема в конструкторе Bulet.

Старый 15.08.2010, 15:47
vinch вне форума Посмотреть профиль Отправить личное сообщение для vinch Найти все сообщения от vinch
  № 4  
Ответить с цитированием
vinch

Регистрация: Feb 2010
Сообщений: 95
Так говорю, все работает, пули создаются и т.п. При чем тут конструктор?
А когда просто добавляю атрибут в класс и совсем, абсолютно, его не использую:
Код AS3:
public var BulletClass:Class = Bullet;
, то игра зависает (фпс падает).
Комментирую эту строчку (больше ничего не меняя, ибо она нигде не используется и ни на что, казалось бы, не влияет) - и все работает.
Т.е., без этой строчки, которая ни на что не влияет, конструктор Bullet работает идеально.


Последний раз редактировалось vinch; 15.08.2010 в 15:52.
Старый 15.08.2010, 17:00
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Оу, теперь понятно.
Попробуйте уменьшить код так, чтобы баг сохранился и выложите на форуме. Чем компилируете?

Старый 15.08.2010, 17:32
vinch вне форума Посмотреть профиль Отправить личное сообщение для vinch Найти все сообщения от vinch
  № 6  
Ответить с цитированием
vinch

Регистрация: Feb 2010
Сообщений: 95
Уменьшить код, к сожалению, трудно - для того же Bullet-а иерархия наследования достаточно большая, плюс он зависит от Box2D и т.п. Попробовал воспроизвести ситуацию с пустыми классом Bullet и его предками - естественно, все работает хорошо. Так что искать, что создает проблему, было бы трудновато.

Компилирую средствами Flex SDK 3.5 с помощью FD.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Попробуйте четвертый сдк.

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Можно посмотреть, нет ли где "недетерменированных" проходов по Dictionary или Object, от порядка которых может зависеть логика, ну типа:
Код AS3:
    for (var p:String in _elements)
    {
          // если здесь удалять и добавлять элементы в _elements
          // можно получить зависимость от фазы луны
     }
Этот порядок может меняться от любых изменений в любой части компилируемого кода - даже никаким боком не касающихся этого прохода

Эсли бага в этом - добиваемся независимости от порядка или используем структуры с гарантированным порядком обхода

P.S. Еще тормоза из неоткуда, которые нельзя локализовать появляются из-за засирания памяти - на всякий случай откройте Диспетчер задач и посмотрите сколько нажрала флешка, хотя что может случиться с памятью от этой строчки?
Цитата:
public var BulletClass:Class = Bullet;
но мало ли...


Последний раз редактировалось expl; 15.08.2010 в 21:21.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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