Создание 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]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Какова Ваша специальность?
Всего ответов: 947

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

Создание 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 | Просмотров: 6279 | Добавил: MrIncrof (08.10.2012) | Рейтинг: 0.0/0
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
Пишем модуль для работы с системным таймером (0)
С чего начать создание игры для начинающих? (13)
Создание Платформенной Игры Copyright 2001 by Mark Overmars (0)
Как рисовать спрайты в DXDraw DelphiX (0)
Создание многопользовательской(online) игры на Game Maker. (часть 4) (0)
Серия уроков по 3d Rad (0)
Создаем платформер. Scirra Construct (4)
Game Maker. Начало (3)
Несколько советов (ГМ) (0)
Установка Yogurt3D и Adobe Stage3D API на ваш компьютер. (0)
Создание рикошета пуль от стены (4)
Создание наземного врага в платформере (2)
Синтаксис GML в сравнении с Pascal (1)
Что такое ПХП и как он работает? (0)
Функции D3D в Game Maker (2)
Всего комментариев: 2
2 solon-press   (27.05.2016 21:38)
...

1 solon-press   (27.05.2016 21:37)
Круто

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

Поиск
Поиск по всему сайту:
Поиск по разделу:

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


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

Ваш IP: 23.20.147.6

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

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

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

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

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

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