Интернет магазин китайских планшетных компьютеров



Компьютеры - Game Maker Language - Примеры скриптов

09 мая 2011


Оглавление:
1. Game Maker Language
2. Библиотеки
3. Функции
4. Примеры скриптов
5. Критика



Вот простой пример скрипта, который выводит легендарную фразу «Hello, World!»:

  show_message;

Еще один пример, который отображает тот же текст, но уже в окне программы. Заметьте, что по умолчанию Game Maker непрерывно перерисовывает окно, поэтому в обычном случае этот код нужно поместить в событие рисования.

  draw_text;

Вот кусок кода из игры на GML:

// это комментарий
/* Так комментарии пишутся в С++. */
 
/* определение временных переменных.
   Эти переменные будут удалены после окончания скрипта.
  Заметьте, что переменные не требуют никакого определения типа! */
 
var xx, yy, nn;
 
// Условие. Оно может быть сокращено до «if».
if  // "=" и "==" могут быть использованы
{  // Начало блока кода. Вы можете также писать «begin» как в Pascal.
 
   /* Устанавливаем переменную в ложь. То же самое можно написать и так: «can_shoot = 0;»
      Так как Game Maker не различает булевские и целочисленные значения. */
   can_shoot = false;
 
   /* Здесь устанавливаем нулевой таймер на пять шагов. 
     Переменная таймера будет опускаться до 0, а когда достигнет его,
      Событие нулевого счетчика будет вызвано. */
   alarm = 5;
 
   /* Здесь локальная переменная xx определена как целочисленная, 
      И использована функция lengthdir_x. */
   xx = x + lengthdir_x;
   yy = y + lengthdir_y;
 
   //Эта функция создает образец объекта obj_bullet и возвращает идентификатор нового объекта.
   nn = instance_create;
 
   /* Оператор with позволяет вам обращаться к переменным объекта напрямую */
   with 
   {
      speed = obj_tank.speed + 3;
      direction = obj_tank.direction;
   }
}

Стили кода можно смешивать. Например, предыдущий пример может быть записан так:

var xx, yy, nn;
if can_shoot = true then begin
   can_shoot := false
   alarm := 5
   xx := x + lengthdir_x
   yy := y + lengthdir_y
   nn := instance_create
   with nn begin
      speed := obj_tank.speed + 3
      direction := obj_tank.direction
   end
end

Вот пример обычного управления с клавиатуры. Функция motion_set принимает два параметра: направление и скорость. Вызов этой функции приведет к изменению встроенных локальных переменных speed и direction, которые использует Game Maker для перемещения объектов:

if )  motion_set;
if )    motion_set;
if ) motion_set;
if )  motion_set;
if ) motion_set;

А вот пример более сложного скрипта для платформенной игры. Используя его, игрок может ходить по выпуклой поверхности:

if !place_free
{
   if place_free
   {
      x-=4
      y-=4
   }
   else if place_free
   {
      x-=3
      y-=5
   }
   else if place_free
   {
      x-=2
      y-=6
   }
}
else
   x-=4


Просмотров: 5626


<<< Fortress
GPSS >>>