Вторник, 19 Марта 2024, 13:14

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

Меню сайта
Категории каталога
Создание игр [354]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [144]
Статьи о программах для создания игр, уроки и описания.
Софт [39]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [160]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [128]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой вид используется в ваших играх?
Всего ответов: 10336
Главная » Статьи » Создание игр

Создание простейшей стратегии на GM для полных новичков
Привет всем! Сейчас я расскажу вам как сделать простую ртс-ку (РТС - 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);
}


Здесь всё легко, вот то же самое только по Русски:
если нам нужно рисовать прямоугольник, то мы выбираем прозрачность и рисуем прямоугольник
вот аргументы
Code
draw_rectangle_color(x1,y1,x2,y2,color 1, color 2, color 3, color 4, outline)

outline - будет ли рисоваться только грань (true) или залитый прямоугольник (false)
Мы нашли новое слово - константа, это заменённое словом числовое выражение или код, в гамаке есть встроенные константы:
Code
true (правда) - 1
false (ложь) - 0
pi - 3.1415...

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


Это всё. Теперь нам конечно же нужен объект, который может передвигаться, называем его objTest, в событие создания пишем код:
Code
gox=x; //Куда идти по х...
goy=y; //по у
selected=false; //Мы не выбраны =)
object_set_parent(self,par) //Вот и выбор родителя


Новое действие:
Code
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;
}

Code
distance_to_point(х,у)
- узнаёт расстояние до точки
Code
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)
}


Code
draw_circle_color(x,y,radius,color 1,color 2,outline)
- рисуем круг с радиусом radius
Всё! Теперь создаём новую комнату и ставим несколько объектов теста (objTest), родительский объект (par) и контроллер (objControl)
Вот то что у нас получилось:

Вот исходник: http://narod.ru/disk/23258019001/Strategy.gm81.html
Обозначения:
гамак: Game Maker
ЛКМ - Левая Кнопка Мыши
ПКМ - Правая Кнопка Мыши
Категория: Создание игр | Добавил: MrIncrof (15 Октября 2011)
Просмотров: 25404 | Комментарии: 1 | Рейтинг: 4.3/7 |
Теги: скрипты, gamemaker, GML, Game Maker, GM, для новичков, стратегия, GM8, Урок, кодинг
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создание простейшей стратегии на GM для полных новичков», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 1
+0-
1 Sttt912   (04 Июня 2013 00:07) [Материал]
Чтобы шло на GM8 делаем так:
Вместо етого:

Ставим:

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • NeoAxis Engine
  • Visionaire Studio
  • GLScene
  • Luxe Engine
  • 3DSTATE Engine
  • Flowlab
  • NetGore
  • Cafu
  • GameGuru MAX
  • PopCap Games Framework
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг