Нужно загружать сохранение save.sav...
| |
миха | Дата: Пятница, 08 Июля 2011, 20:19 | Сообщение # 1 |
почти ветеран
Сейчас нет на сайте
| В общем при первом запуске сейва не будет, а значит вылетит ошибка (сейв создается при выключении игры). Мне надо сначала проверить, есть ли сейв, и если он есть, загрузить его. так же хотел бы узнать, как удалить сейв (кодом).
Сообщение отредактировал миха - Суббота, 09 Июля 2011, 09:53 |
|
| |
LunarPixel | Дата: Пятница, 08 Июля 2011, 20:26 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| if file_exists('save.sav') {загружаем игру}
file_delete('save.sav') - удаляет файл
|
|
| |
миха | Дата: Суббота, 09 Июля 2011, 08:12 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| LunarPixel, так можно удалить любой файл?
|
|
| | |
миха | Дата: Суббота, 09 Июля 2011, 08:28 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| Еще вопрос. Для создания ИИ в этот аз решил использовать "action_potential_step". Но есть одна проблема. Я создаю танчики, и в них можно двигаться только в направлениях 90, 180, 270, 360 градусов. А эта команда двигает объект в любом направлении - ей главное привести объект к точке. Надо сделать так, чтобы ИИ двигался в указанных выше направлениях, и при этом доходил до точки. ТУТ можно увидеть как двигаются (должны двигаться) ИИ.Добавлено (09.07.2011, 08:28) --------------------------------------------- NeZnayu,
|
|
| |
GameMix | Дата: Суббота, 09 Июля 2011, 08:42 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| миха, здесь (ссылка на пост LunarPixel) уже обсуждалось.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
миха | Дата: Суббота, 09 Июля 2011, 08:53 | Сообщение # 7 |
почти ветеран
Сейчас нет на сайте
| А если препятствий несколько? Добавлено (09.07.2011, 08:53) ---------------------------------------------
Quote Создай пустой путь Path0. Создай объект object0 и в событии CREATE напиши: Quote s=mp_grid_create(0,0,room_width/16,room_height/16,16,16) mp_grid_add_instances(s,obj_wall,0) Где obj_wall - препятствия. А у врага в событии STEP: Quote if mp_grid_path(object0.s,Path0,x,y,obj_hero.x,obj_hero.y,0) path_start(Path0,4,0,0) mp_grid_add_instances(s,obj_wall,0) - у меня много препятствий например obj_box и т. д.
|
|
| |
GameMix | Дата: Суббота, 09 Июля 2011, 08:57 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| миха, тогда делай ячейки сетки, находящиеся в координатах препятствий, запрещёнными. И создавай путь по свободным (не запрещённым клеткам). Добавлено (09.07.2011, 08:57) ---------------------------------------------
Quote (миха) у меня много препятствий например obj_box и т. д. Сделай всем объектам препятствий родителя, назови его, к примеру, obj_wall_papa. Потом пиши эту же строку, только с другим именем объекта: Code mp_grid_add_instances(s,obj_wall_papa,0);
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
миха | Дата: Суббота, 09 Июля 2011, 09:34 | Сообщение # 9 |
почти ветеран
Сейчас нет на сайте
| Уфф, все очень незнакомо для меня... попробую, если не получиться, выложу исходник. Ждите... Добавлено (09.07.2011, 09:34) --------------------------------------------- Вот, сделал все, но в отдельном примере. Единственны минус - "Враг" (голубенький квадратик) боком проходит сквозь препятствие - черный квадрат. Как исправить? Вот исх.
Еще вопрос - "враг" приходит на игрока, надо сделать ограничитель - если дистанция больше 96 и между объектами нет препятствий враг должен остановится. Можно ли при выполнении этих условий сделать переменную stop равной 1, и в степ врага написать так: Quote if stop=0 {if mp_grid_path(object0.s,Path0,x,y,obj_hero.x,obj_hero.y,0) path_start(Path0,4,0,0)}
|
|
| |
Лер_да_Рим | Дата: Суббота, 09 Июля 2011, 10:08 | Сообщение # 10 |
заслуженный участник
Сейчас нет на сайте
| кстати, направления в 360 градусов не существует. Ну то есть да, оно будет принято за нуль, но не проще ли и пользоваться нулём?
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
миха | Дата: Суббота, 09 Июля 2011, 10:42 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| Лер_да_Рим, проще, так и есть, я ошибся
|
|
| |
GameMix | Дата: Суббота, 09 Июля 2011, 11:08 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| миха,
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
миха | Дата: Суббота, 09 Июля 2011, 11:29 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| Что вы изменили?
|
|
| |
GameMix | Дата: Суббота, 09 Июля 2011, 11:33 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| миха, я просто убрал центрирование спрайта врага. Теперь же работает, как нужно?
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
миха | Дата: Суббота, 09 Июля 2011, 11:58 | Сообщение # 15 |
почти ветеран
Сейчас нет на сайте
| Да, хорошо. А второй вопрос Quote Еще вопрос - "враг" приходит на игрока, надо сделать ограничитель - если дистанция больше 96 и между объектами нет препятствий враг должен остановится. Можно ли при выполнении этих условий сделать переменную stop равной 1, и в степ врага написать так: Quote if stop=0 {if mp_grid_path(object0.s,Path0,x,y,obj_hero.x,obj_hero.y,0) path_start(Path0,4,0,0)}
|
|
| |
GameMix | Дата: Суббота, 09 Июля 2011, 12:02 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| миха, сделал, залить исходник забыл, сейчас...Скачать пример.
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал аТнОтХоАн - Суббота, 09 Июля 2011, 12:05 |
|
| |
миха | Дата: Суббота, 09 Июля 2011, 15:38 | Сообщение # 17 |
почти ветеран
Сейчас нет на сайте
| Quote и между объектами нет препятствий Добавлено (09.07.2011, 15:38) --------------------------------------------- Я немного изменил код врага... мне надо еще и проверять по линии столкновения препятствия. Но что - то не работает...
Quote if stop = 0 { if mp_grid_path(object5.s,path0,x,y,object1.x,object1.y,0) path_start(path0,4,0,0) } else path_end()
if distance_to_object(object1) <= 96 {if collision_line(x,y,object1.x,object1.x,object3.y,1,1)>0 {stop = 1}} else {stop = 0}
|
|
| |
GameMix | Дата: Суббота, 09 Июля 2011, 15:41 | Сообщение # 18 |
старожил
Сейчас нет на сайте
|
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Made_In_USSR | Дата: Суббота, 09 Июля 2011, 16:15 | Сообщение # 19 |
заслуженный участник
Сейчас нет на сайте
| Quote (миха) {if collision_line(x,y,object1.x,object1.x,object3.y,1,1)>0 Перебор аргументов? Линия проводится через две точки а не через две с половиной.
collision_line(x,y,object1.x,object1.y,object3,1,1)
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Суббота, 09 Июля 2011, 16:19 |
|
| |
|