Использование существования объекта в операторе if в Haxe

Общий вопрос: можете ли вы использовать существование объекта как условие оператора if в Haxe? Если так, то как?

Конкретный вопрос: я изучаю разработку игр Haxe и использую библиотеку / фреймворк / движок игры HaxePunk. Существует не так много учебников по его использованию, но следовать учебникам по FlashPunk (библиотека, движок / фреймворк ActionScript, на котором он основан) было достаточно легко. Тем не менее, способ обнаружения столкновений работает в HaxePunk: если происходит столкновение, метод collide возвращает объект, с которым столкнулся.

var b : Bullet = collide("bullet", x, y);
if (b) {
  b.destroy();
}

Я пытался протестировать его с типом Null, но, похоже, это не сработало.

1 ответ

Решение

Как упоминается в комментариях кириллоид, попробуйте проверить, b не является нулевым:

var b : Bullet = collide("bullet", x, y);
if (b != null) {
  b.destroy();
}

Для Хэйкс было решено не иметь if(b) синтаксис по ряду причин. Вы можете найти обсуждение по теме в Google Groups: Test, если существует.

Другие вопросы по тегам