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

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

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

Регистрация: Jul 2009
Сообщений: 48
По умолчанию Сравнить типы переменных

Знаю как реализовать на Си. Подскажите как переписать на AS3 с наименьшими затратами ресурсов.

Код AS1/AS2:
if (typeOf(objA) != typeOf(objB))
{
   // do someth
}
Вот мой вариант

Код AS3:
if (objA is Bullet && objB is Bullet)
{
}
else if (objB is Enemy && objA is Enemy)
{
}
else
{
    //do
}
По коду можно догадаться о чем идет речь и предложить обходные пути, но интересует именно возможность сравнения типов.

Старый 23.05.2011, 17:25
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Проведите тест и узнаете. А потом нам расскажете.
__________________
тут я

Старый 23.05.2011, 18:22
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 3  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от nldr Посмотреть сообщение
Знаю как реализовать на Си.
Коллега, будет лучше, если вместо показа кода Вы сформулируете задачу, которую решаете. В ООП такие проверки -- самое крайнее средство, без которого почти всегда можно обойтись.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

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

Регистрация: Jul 2009
Сообщений: 48
Свою частную задачу я уже решил. Как обычно озарение приходит после написания поста сюда.

Решается задача коллизий.
Есть туча врагов и туча патронов. Они хаотично перемещаются по сцене. Есть хорошо написанная широкая фаза, которая выдает массив объектов попарно, которые надо сравнивать в узкой фазе. Как вот загвоздка в том, что враги могут пересекаться в врагами, а пули с пулями. То есть необходимо было переписать широкую фазу, чтобы она выдавала только пары пуля-враг или враг пуля (, но не враг-враг, пуля-пуля).

Старый 23.05.2011, 18:56
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 5  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Для это не требуется сравнивать типы. Это решается в рамках ООП правильным использованием интерфейсов.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 23.05.2011, 20:45
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
if (Object(objA).constructor != Object(objB).constructor)
{
	// do someth
}

Старый 23.05.2011, 20:56
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 7  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Спасибо, что показали, как конкретно не надо делать человеку, который уже нашел решение.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 23.05.2011, 21:00
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>но интересует именно возможность сравнения типов

Старый 23.05.2011, 21:01
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 9  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Если человек не знает хороших решений -- учить его плохому будет плохо вдвойне.

Как только у Bullet появятся потомки -- все накроется п... медным тазом.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 23.05.2011, 21:39
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
да не собирался я учить никого, ни плохому ни хорошему,
да автор вроде бы и не просил об этом

>>Как только у Bullet появятся потомки -- все накроется п... медным тазом.
ну 'все' это громко сказано: Object(obj).constructor покажет именно тип объекта, а не прородителя,
если ты ждешь чего-то иного, то тогда возможно и накроется, в умелых руках что угодно сломается

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

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

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


 


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


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