Суббота, 21 Декабря 2024, 11:12

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Мои вопросы
михаДата: Понедельник, 22 Августа 2011, 09:16 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
1) В общем представим что у нас комната и в ней много экземпляров объекта obj_enemy. Представим что мы создаем союзника который будет помогать убивать obj_enemy. Чтобы убивать нужно выбрать кого убивать. Потому то я и здесь. Допустим так:
мне нужно выбрать одного врага который подходит под такие условия:
- между союзником и obj_enemy нету obj_block.
- расстояние до obj_enemy не больше 450
Останутся несколько надо выбрать из них ближайшего и дать ему "второе имя". Имя конкретно этого экземпляра.

Чтобы когда я писал
Quote
if instance_exists(obj_enemy)
and vizhu_enemy=1
image_angle=point_direction(x,y,obj_enemy.x,obj_enemy.y)

Я мог ввести вместо красных букв это имя и союзник смотрел именно на нужного врага.
2) Мне нужно кодом сохранить файл из игры (спрайт, объект, комнату, звук, путь, таймлайн и т. д. ) во внешнее хранилище т. е. в папку my_files находящуюся в той же директории где находиться *.exe. Потом этот ресурс надо загрузить снова во внутреннее (копировать). Пример: я сохранил комнату в папке my_files и теперь мне нужно ту комнату загрузить в игру под именем classic_room.


Сообщение отредактировал миха - Понедельник, 22 Августа 2011, 17:59
LunarPixelДата: Понедельник, 22 Августа 2011, 09:36 | Сообщение # 2
старожил
Сейчас нет на сайте
1) в Step у союзника напиши:

Code
obj=instance_nearest(x,y,obj_enemy)

if distance_to_object(obj)<450
if !collision_line(x,y,obj.x,obj.y,obj_wall,0,0)
{
image_angle=point_direction(x,y,obj.x,obj.y)
}


2) всё подряд просто так сохранять нельзя. Ту же комнату придется сохранять через текстовый файл, т.е. записывать туда кординаты всех объектов, название комнаты, название фона и т.д. А потом из этого файла строить комнату. Читай про это всё в справке. smile


михаДата: Понедельник, 22 Августа 2011, 10:05 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Еще вопрос: надо проверить: виден ли объект obj_hero на экране (view[0]).
LunarPixelДата: Понедельник, 22 Августа 2011, 17:12 | Сообщение # 4
старожил
Сейчас нет на сайте
if obj_hero.x>view_xview[0] and obj_hero.x<view_xview[0]+ширина вида
if obj_hero.y>view_yview[0] and obj_hero.y<view_yview[0]+высота вида
{show_message('герой виден')}

Как то так smile


GameMixДата: Понедельник, 22 Августа 2011, 17:17 | Сообщение # 5
старожил
Сейчас нет на сайте
LunarPixel, можно проще. В объекте героя такой код:
Code
if view_current = 0 {show_message('герой виден')} // если героя видно в виде под номером 0, тогда выводим сообщение.


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал аТнОтХоАн - Понедельник, 22 Августа 2011, 17:21
LunarPixelДата: Понедельник, 22 Августа 2011, 17:25 | Сообщение # 6
старожил
Сейчас нет на сайте
аТнОтХоАн, а каким образом это определит виден герой или нет!? smile Или я туплю biggrin
view_current определяет вид, который используется в данный момент. Если герой к этому виду не привязан и выйдет за его приделы, то ничего не изменится.


GameMixДата: Понедельник, 22 Августа 2011, 17:32 | Сообщение # 7
старожил
Сейчас нет на сайте
LunarPixel, сорри. Использовал только при рисовании этот способ, поэтому не знал. Можно ещё collision_rectangle() использовать.

Steel Standoff - 2D аркада.
Мои статьи
LunarPixelДата: Понедельник, 22 Августа 2011, 17:36 | Сообщение # 8
старожил
Сейчас нет на сайте
аТнОтХоАн, не, я то вообще это не использовал, так что не знаю biggrin
Просто, если это работает, то я чего то не понимаю biggrin


михаДата: Понедельник, 22 Августа 2011, 17:38 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
LunarPixel, спасибо. А нельзя ли сделать так:
Quote
if obj_hero.x>view_xview[0] and obj_hero.x<view_xview[0]+view_hview[0]
if obj_hero.y>view_yview[0] and obj_hero.y<view_yview[0]+view_wview[0]

Добавлено (22.08.2011, 17:38)
---------------------------------------------
LunarPixel, biggrin

Лер_да_РимДата: Понедельник, 22 Августа 2011, 19:38 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Quote (миха)
LunarPixel, спасибо. А нельзя ли сделать так:
if obj_hero.x>view_xview[0] and obj_hero.x<view_xview[0]+view_hview[0]
if obj_hero.y>view_yview[0] and obj_hero.y<view_yview[0]+view_wview[0]

Ну, сделать-то можно, только код неверен. Ты путаешь height и width wink


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

михаДата: Понедельник, 22 Августа 2011, 19:54 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
Так и знал. У меня с английским никак.
  • Страница 1 из 1
  • 1
Поиск:

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