Среда, 25 Декабря 2024, 07:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
TBS
KrososДата: Среда, 19 Июня 2013, 19:47 | Сообщение # 1
постоянный участник
Сейчас нет на сайте


Добавлено (19.06.2013, 19:47)
---------------------------------------------
Теперь убрал все лишнее и осталось самое главное:
Скрипт отвечает за отображение сетки вокруг игрока и перемещение по ней
Создаем 2 объекта и 2 спрайта
1)Ячейка (64х64 с центром 32х32)
2)Игрок(64х64 с центром 32х32)

Игрок:

Create:
Код

global.cmbt_mpgrid= mp_grid_create(0,0,floor((room_width)/64),floor((room_height)/64),64,64);
      //Создаем сетку 64 на 64 по всей комнате
move= true      
//Разрешаем игроку двигаться


Glob Left Button:
Код
if move= true {if global.currenttile.show= true and distance_to_object(global.currenttile)>10    
//Если можно двигаться и если ячейка (Curenttile) отображена , а также мы не кликаем по самому игроку , то..  
{
          if mp_grid_path(global.cmbt_mpgrid,path_combat,x+0,y+0,global.currenttile.x,global.currenttile.y,false)= true
      //Не очень понимаю эту строку
          {
              path_start(path_combat,10,0,false)  //Начать путь
              move= false   //Двигаться нельзя(Во время пути)
              intention=1 //Переменная (Можно ввести другую)
              global.Moving=1 //Глобальная переменная (Она отвечает за отображение ячеек во время хода - они будут скрыты)
          }
}
}


End Patg:
Код
if  intention= 1 //Если наша переменная 1
{   intention= 0 //То эта переменная становится 0
          move= true //Можно опять двигаться
          global.Moving=0 //И снова показать все ячейки
}


Ячейка: (Любое имя)

Step:
Код
show= false
      //Все ячейки скрыты всегда
              if mp_grid_path(global.cmbt_mpgrid,path_combat_check,x,y,Player.x,Player.y,true)=true and path_get_length(path_combat_check)< 250{
//Не понимаю эту строку , но число 250 отвечает за дальность отображаемых клеток , можно свободно его изменять
show= true      
//Все ячейки на расстоянии 250 от игрока(Player) отображаются
              }

Draw:
Код
if global.Moving=1 {exit;}      
//Скрыть все ячейки(Не выполнять этот скрипт пока двигается игрок)
if point_distance(x,y,mouse_x,mouse_y)<32 and show= true       
      //При наведении на ячейку(Одну любую) , которая видна       
         {draw_sprite_ext(sprite_index,1,x,y,1,1,0,c_white,0.5) global.currenttile= id}
      //Переходит  на спрайт под номером 1  (Засвечивается)       
if point_distance(x,y,mouse_x,mouse_y)<32 and show= false      
      //При наведении на ячейку(Одну любую) , которая не видна
         {draw_sprite_ext(sprite_index,2,x,y,1,1,0,c_white,0.5) global.currenttile= id}
      //Переходит на спрайт под номером 2 (Показывает наличие ячейки)
if show= false  {exit;}
      //Если ячейка скрыта , то ничего не происходит
if point_distance(x,y,Player.x,Player.y)<32
      //Если игрок в ячейке
         {image_index= 1}else{image_index= 0}      
//Переходит на спрайт под номером 1(Засвечивается) иначе на нулевой (Обычная ячейка)
draw_sprite_ext(sprite_index,-1,x,y,1,1,0,c_white,image_alpha)
      //Отобразить спрайт       


Сетка получилась неточная - например у нас 2 шага , но мы можем сделать 3 если например пойти вправо , вверх и вверх.
Все неопознанные переменные равны 0 (Настройки GM)
Все ячейки должны быть расставлены по комнате вплотную друг к другу , а игрок размещен на любой ячейке.
Пример:heroescombat.gmk





Мой проект


Сообщение отредактировал Krosos - Четверг, 20 Июня 2013, 20:42
GenrivongДата: Среда, 19 Июня 2013, 20:01 | Сообщение # 2
частый гость
Сейчас нет на сайте
Сильно много букв!
А еслли серьёзно круто что кто то разобрался и выложил))) Плюс тебе)))
KrososДата: Четверг, 20 Июня 2013, 20:54 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Препятствия:
Они очень простые
Объект может иметь любой размер и находится там , где захотите и ячейки под собой удалять необязательно(хотя удалить их стоит , чтобы они не светились , когда на них наводите мышкой).

Create:
Код
mp_grid_add_instances(global.cmbt_mpgrid,id,1)   





Мой проект


Сообщение отредактировал Krosos - Четверг, 20 Июня 2013, 20:55
  • Страница 1 из 1
  • 1
Поиск:

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