Создание RTS игры - Game Maker - Конструкторы игр, системы разработки игр
Навигация по сайту
Сайт:

Дополнительно:

Файловый архив:

Каталог статей:

Форум:


Категории раздела
Game Maker [27]
Flash [3]
FPS Creator X9, X10 [1]
Scirra Construct [14]
Multimedia Fusion [0]
001 Game Maker, Map 001 [0]
3D RAD [16]
3D Game Studio [1]
Silent Walk FPS Creator [0]
Blender (Блендер) [1]
Game Editor [0]
Остальное [1]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Чему вы отдаете большее предпочтение?
Всего ответов: 465

Партнеры сайта
....

Создание RTS игры

19:53
Примечание: в связи с исправлениями, я сделал этот урок более понятным, в нём записаны все аргументы и подробное описание, подойдёт для новичков и любителей, вскоре выложу исходник.


Привет всем! Сейчас я расскажу вам как сделать простую ртс-ку (РТС - RTS - Real Time Strategy то есть стратегия в реальном времени) открываем гамак 8.1 (на 8.0 работоспособность не гарантируется) создаём объект objControl, то есть это будет наш главный объект создаём событие создания (Create) Добавить событие => Создание (Add event => Create) событие создание делается всего один раз - при создании, нажимаем на вкладку control в правом вертикальном меню и нажимаем ПКМ по Execute code (Выполнить код) и пишем код (лучше всего не копировать код, а писать его самому, так гораздо легче запомнить):
Code

startx=0; //Объявляем переменную начала точки по х
starty=0; //Объявляем переменную начала точки по у
draw_rect=false; //Не рисуем прямоугольник выбора

Переменная: часть памяти, которая содержат информацию. Они имеют своё имя, с помощью которого Вы можете обратиться к ним. Переменные в GML могут содержать реальное число или строку. К примеру, стол - это переменная, деревянный или стеклянный - значение
Теперь создаём событие шага (Step, Add Event = > Step) и выполняем операцию заново (нажимаем ПКМ по Execute code (Выполнить код)):
Code

if mouse_check_button_pressed(mb_left) //Если ЛКМ нажата
{   
     draw_rect=true; //Мы рисуем прямоугольник
     startx=mouse_x; //Стартовая х позиция = положение х мыши
     starty=mouse_y; //Стартовая у позиция = положение у мыши
     with all selected=false; //Это пока не объявленная переменная, что она будет делать мы узнаем позже
}

if mouse_check_button_released(mb_left) //Если ЛКМ отпущенна
{
   draw_rect=false; //Мы не рисуем прямоугольник
   for(i=0;i<=instance_number(par);i+=1) //Читайте про цикл for ниже
   {
   ii=instance_find(par,i); //Мы ищем пока не сделанный объект
   if(collision_rectangle(startx,starty,mouse_x,mouse_y,ii,true,false)) //Вот наш прямоугольник коллизии (соприкосновения)
   {
   ii.selected=true;
   }
   }
}

Код большой и сложный, пока мы узнаем про оператор условия if:
Код с if выполняется так:
Code

      if (условие)
      {
            действие
      }

также в нём может быть оператор else (иначе), пример:
Code

if (условие)
{
      действие
}
else
{
      действие 2
}


а for - это оператор цикла, он выполняется так:
Code

for (<переменная> ; <выражение> ;<действие переменной>)   
{
<действия>
}

оператор for очень мощная вещь, он очень помогает в трудных ситуациях

Оператор - встроенные в ЯП действия, например, самая распространённая это int, if, else, string, switch, for, case, break, exit, и т.д и т.п.

Теперь также создаём событие рисования (draw) и таким же путём пишем:
Code

if draw_rect=true
{
      alpha=.8;
      draw_rectangle_color(startx,starty,mouse_x,mouse_y,c_green,c_green,c_green,c_green,true);
}

Здесь всё легко, вот то же самое только по Русски:
если нам нужно рисовать прямоугольник, то мы выбираем прозрачность и рисуем прямоугольник
вот аргументы draw_rectangle_color(x1,y1,x2,y2,color 1, color 2, color 3, color 4, outline)
outline - будет ли рисоваться только грань (true) или залитый прямоугольник (false)
Мы нашли новое слово - константа, это заменённое словом числовое выражение или код, в гамаке есть встроенные константы:
true (правда) - 1
false (ложь) - 0
pi - 3.1415...

Ну вот, разобрались, теперь нам нужно создать новый объект - родительский объект, который будет подключаться к дочерним. Назовём его par (чтобы сменить имя нужно менять код в событие шага контрольного объекта), в событие создания пишем:
Code

selected=false; //Вот и наша переменная, выбран ли объект

Это всё. Теперь нам конечно же нужен объект, который может передвигаться, называем его objTest, в событие создания пишем код:
Code

gox=x; //Куда идти по х...
goy=y; //по у
selected=false; //Мы не выбраны =)
object_set_parent(self,par) //Вот и выбор родителя

Новое действие:
object_set_parent(ind,obj) - Устанавливает родительский объект для объекта с именем ind.
И новый оператор: self, он означает что действие будет переходить к себе
Не бойтесь, ещё немного осталось, в событие шага:
Code

if distance_to_point(gox,goy) > 20
{
      mp_potential_step(gox,goy,6,solid);
}
if(selected=true) && mouse_check_button_pressed(mb_right)
{
      gox=mouse_x;
      goy=mouse_y;
}

distance_to_point(х,у) - узнаёт расстояние до точки
mp_potential_step(х,у,speed,checkall), speed - скорость, checkall - обходить всех (true) или нет (false)
тут тоже всё просто. И последнее - рисование:
Code

draw_self() //рисуем себя, если не написать, рисоваться объест не будет! (в gm8.0 не работает!)
if selected=true
{
      draw_circle_color(x,y,16,c_green,c_green,1)
}

draw_circle_color(x,y,radius,color 1,color 2,outline) - рисуем круг с радиусом radius
Всё! Теперь создаём новую комнату и ставим несколько объектов теста (objTest), родительский объект (par) и контроллер (objControl)
Обозначения:
гамак: Game Maker
ЛКМ - Левая Кнопка Мыши
ПКМ - Правая Кнопка Мыши

За остальными уроками пишем:
Mail: grisha.ykpon4uk@gmail.com , gmod_man_grisha@mail.ru
Skype: grisha_super

А вот и исходник: http://rghost.ru/14256781

Категория: Game Maker | Просмотров: 10752 | Добавил: MrIncrof (08.10.2012) | Рейтинг: 0.0/0
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
Всего комментариев: 2
2 solon-press   (27.05.2016 21:38) [Материал]
...

1 solon-press   (27.05.2016 21:37) [Материал]
Круто

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по всему сайту:
Поиск по разделу:

Панель пользователя
Здравствуйте, Гость


Ник:
Пароль:
Запомнить :

Ваш IP: 3.145.56.150

Случайные конструкторы

Случайные движки

Случайные статьи

Статистика
Онлайн всего: 4
Гостей: 4
Пользователей: 0

На сайте были:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр