пятница, 5 февраля 2010 г.

Как написать свой конструктор игр?

Как всегда новички увидев очередной конструктор игр, говорят что он им не нравится, и они бы сделали лучше (на самом деле им не нравится расположение какой то кнопки).
Сейчас я не буду говорить что написание конструктора для новичка сложно, а просто расскажу как это можно сделать.

Писать компилятор можете на любом языке, или даже на конструкторе игр.Весь смысл в том, что мы создадим две программы.На первой пользователь будет делать свою игру и сохранять параметры в .ini файл, а на второй он будет ее запускать.

Ок.Принцип мы поняли (я надеюсь), осталось только подумать конструктор каких игр мы хотим сделать.Решив не изобретать велосипед я выбрал Конструктор TDS игр (вы можете выбрать любой другой тип конструктора).

  • Откройте Game Maker 7 Pro. 
  • Создайте новую комнату.
  • Создайте обьект player и откройте для него какой то спрайт. (я использовал спрайт Fyelo)
  • Добавьте обьект wall и нарисуйте для него спрайт стены
  • Создайте обьект konstruktor и добавьте в событие step этот скрипт

if mouse_check_button_pressed(mb_left)
{
  if !collision_circle(mouse_x,mouse_y,13,all,0,1)
  {
  instance_create(mouse_x,mouse_y,player)
  }
  }
   
  if mouse_check_button_pressed(mb_right)
{
  if !collision_circle(mouse_x,mouse_y,13,all,0,1)
  {
  instance_create(mouse_x,mouse_y,wall)
  }
  }

  • Поставьте в вашу комнату обьект konstruktor.

Отлично.У нас готов наш "редактор карт".

Реперь напишем компилирующую часть.

  • Создайте пустой текстовой файл, а потом переименуйте его в DA0DA.jpg
  • Создайте новый Game Maker файл с именем "game.gmk" и скомпилируйте его, как game.exe.
  • Переименуйте Game.exe в 7С4АCD.jpg.
  • Создайте обьект kompilator и в событии нажатия кнопки "K" напишите этот код.

file_copy('DA0DA.jpg','game_values.ini')

file_copy('7С4АCD.jpg','game.exe')

ini_open('game_values.ini'); 
ini_write_real('player','x',player.x);
ini_write_real('player','y',player.y);
ini_close();

  • Теперь наш компилятор компилирует .ini файл. (там пока что нет стен, но итак сойдет)
  • Войдите в "game.gmk" и создайте там комнату
  • Создайте обьект player 
  • Создайте событие step и напишите в нем этот скрипт

direction = point_direction(x,y,mouse_x,mouse_y);
image_angle = direction;

if keyboard_check(vk_up)
|| keyboard_check(ord("W"))
{
  repeat(3){y-=place_free(x,y-1)}
}

if keyboard_check(vk_down)
|| keyboard_check(ord("S"))
{
  repeat(3){y+=place_free(x,y+1)}
}

if keyboard_check(vk_right)
|| keyboard_check(ord("D"))
{
  repeat(3){x+=place_free(x+1,y)}
}

if keyboard_check(vk_left)
|| keyboard_check(ord("A"))
{
  repeat(3){x-=place_free(x-1,y)}
}

if mouse_check_button_pressed(mb_left)
{
  b = instance_create(x+lengthdir_x(13,direction),y+lengthdir_y(13,direction),bullet)
  b.direction = direction
  }


  • создайте обект bullet и в событии Create напишите этот код

speed = 20

  • Создайте обьект Control 
  • Создайте событие Game Start и напишите туда этот код

var xx,yy
ini_open('game_values.ini');
xx=ini_read_real('player','x',0);
yy=ini_read_real('player','y',0);
ini_close();
instance_create(xx,yy,player)

Вот и ВСЕ

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

А вот мой конструктор с пулями и врагами - Скачать



Комментариев нет:

Отправить комментарий