Воскресенье, 24 Ноября 2024, 01:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите с работой в Game Maker
DeadDayДата: Пятница, 06 Марта 2015, 23:00 | Сообщение # 1
New game Studio
Сейчас нет на сайте
Всем привет.
Делая игру я столкнулся с не которыми трудностями, а именно:
1. Как сделать вот что, как проверить сколько объектов находиться в данном радиусе? Получается проверить только во всей комнате, а мне нужно только в определённом радиусе.
2. У меня есть пример смены время суток. В 2д режиме, он работает отлично. Но вот как только я этот пример переношу в игру (А ОНА В 3Д РЕЖИМЕ) он не работает. Т.е. ни чего не происходит вообще.
Подскажите, как всё таки настроить этот пример уже в 3д?!
3. Возможно ли объекту назначить несколько родительских объектов? Если да, то подскажите как это сделать?

Заранее спасибо всем за помощь.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
Fill_FreemanДата: Пятница, 06 Марта 2015, 23:09 | Сообщение # 2
почетный гость
Сейчас нет на сайте
По поводу первого отвечаю с ходу, не проверяя. Мне кажется тебе придется делать что-то вроде этого:
Код
cnt = 0;
with (instance_find(all)) {
    if (point_distance(x_c, y_c, x, y) < radius) {
      cnt++;
}
}


x_c, y_c, radius - координаты и радиус круга.

вместо all можно написать определенный объект, который тебе нужен.
Например insance_find(obj_enemy) - проверит все объекты врагов.

Кто нибудь проверьте мой говнокод (=

По поводу второго ничего сказать, к сожалению, не могу.

Цитата
3. Возможно ли объекту назначить несколько родительских объектов? Если да, то подскажите как это сделать?

Здесь, по моему, можно только сделать наследование родителей от других родителей. Таким образов получив несколько родителей.




Сообщение отредактировал Fill_Freeman - Пятница, 06 Марта 2015, 23:12
DeadDayДата: Пятница, 06 Марта 2015, 23:20 | Сообщение # 3
New game Studio
Сейчас нет на сайте
Fill_Freeman, сейчас тоже к сожалению не могу проверить твой код...если в данный момент может проверить , отпишитесь.
Подскажите еще по остальным вопросам.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
Fill_FreemanДата: Пятница, 06 Марта 2015, 23:51 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Я у себя делаю что-то подобное вот-таким кодом:
но у меня есть список объектов (objs), которые если попадают в уровень досягаемости повышают счетчик.

Код
counter = 0;
for (v = 0; v < ds_list_get_length(objs); v++)                    // прохожу по списку
{
          var temp_obj = objs[| v];                    // вычленяю отдельный объект
          var dist = point_distance(player.x, player.y, temp_obj.x, temp_obj.y); // определяю дистанцию до него
          if (dist < radius) counter++;           // если дистанция меньше заданного радиуса, то повышаю счетчик
      }


По поводу предложеного выше варианта -
вот вариант который работает (в старом были глупые ошибки):

Код
var cnt = 0;
with (parent_object)         // проверяю все дочерние объекты этого родителя
{
      if (point_distance(circle.x, circle.y, x, y) <  radius) cnt++;    // если расстояние до цента круга меньше радиуса, то повышаю счетчик
}




Сообщение отредактировал Fill_Freeman - Пятница, 06 Марта 2015, 23:52
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг