С чего начать? · Главная · Новости · Скачать · Форум · Мини-Чат · FAQ
Навигация по сайту
Сайт:
Новости:
Скачать:
Дополнительно:
Форум:

Категории раздела
Игры пользователей [61]
Программирование [10]
Литература по созданию игр [18]

Лучшие пользователи
20-ка лучших пользователей:

1 Scorpio
2 PaintKiller
3 MrWolf_
4 DraggonFantasy
5 _JOKER_
6 kiber01
7 TASKET
8 Hagrael
9 Zombi12345
10 Деструктор
11 naruto08
12 Double_Nine
13 Gründer
14 dyatel
15 KpoJIuk
16 g2_
17 TonyStark
18 Stark
19 MrIncrof
20 r_bit

Ссылкообмен
ZiPGames&MGroup
Школа создания онлайн игр
Кольмаристые игры :3
Создание игр, разработка игр, игровые движки, конструкторы игр

 Главная » Скачать » Остальное » Программирование » Создание стратегии

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

Привет всем! Сейчас я расскажу вам как сделать простую ртс-ку (РТС - 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
вторая ссылка : http://load.gdop.ru/24652123
Категория: Программирование | Добавил: MrIncrof
Просмотров: 945 | Загрузок: 0 | Рейтинг: 5.0/2 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по сайту:

Поиск по модулю:

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


E-mail:
Пароль:

Ваш IP: 38.107.179.243


Сейчас на сайте
Онлайн всего: 11
Гостей: 10
Пользователей: 1
Сегодня новых: 1
Конструктор

На сайте были
Конструктор , Hagrael , DraggonFantasy , demon_net , АБВ[ZiP] , Filinshein , Кольмар , Темно-Ледяной_Феникс , toxic , blood , Стрелок8369 , Borgius

Помощь
Помощь пользователю Filinshein:

Copyright Make-Games.ru © 2004 - 2012 Создать сайт бесплатно
Рейтинг@Mail.ru Game's TOP-100 Counter Топ100 - Игры