Меню сайта
Категории раздела
Создание игр [8]
Индустрия видеоигр [0]
Графика и гейм-дизайн [1]
Прочее [0]
Топ 5 участников


1
StarBerry
Репутация:131
Постов: 419


2
HyperMan
Репутация:22
Постов: 13


3
DOBRO
Репутация:20
Постов: 27


4
uCOZ_Призрак
Репутация:20
Постов: 0


5
Com-Lan
Репутация:12
Постов: 163
Наш опрос
Как вы попали на сайт?
Всего ответов: 26
Виртуальный дом
Нажмите на кнопку домика и перейдете в наш виртуальный дом!
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Создание игр

Урок 7. Сборник скриптов
Здравствуйте все! Сегодня я расскажу о скриптах.Часто в играх требуются скрипты для движений объектов, а не только в 8-ми направлениях. Здесь я вам предлагаю базовый набор скриптов для игр. [iскриптов. Создаём спрайт и объект. У спрайта отмечаем center. Добавляем событие Step. Пишем скрипт: 
image_angle=point_direction(x,y,mouse_x,mouse_y). Если вы хотите, чтобы объект летел за мышью, то введите другой скрипт: 
x=mouse_x 
y=mouse_y 
С этим объектом можно сделать такую игру: 
Объект летит к выходу через лабиринт(разумеется вы его ведёте).Если столкнётся со стеной то отскочит на стартовое место, а если доберётся до выхода, то перейдёт на следующий уровень.Дальше сами! 
Движение за объектом: 
x=название объекта за которым ты следуешь.x 
y=название объекта за которым ты следуешь.y 
Объект поворачивается за объектом: 
image_angle=point_direction(x,y,Player.x,Player.y) 
Событие Draw, смена цвета объекта на выбор игрока: 
image_blend=get_color(c_red) 
Объект постепенно летит за мышкой: 
direction=point_direction(x,y,mouse_x,mouse_y) 
speed=8 
Вот вам красочный эффект: 
effect_create_above(ef_cloud, random(room_width), random(room_height), irandom(2), choose(c_red, c_yellow, c_blue, c_orange, c_fuchsia)) 
Обводка текста: 
var _x, _y, _text, _color1, _color2, _alpha; 
_x = argument0; // х координата 
_y = argument1; // у координата 
_text = argument2; // Текст 
_color1 = argument3; // Цвет обводки 
_color2 = argument4; // Цвет текста 
_alpha = argument5; // Прозрачность обводки 

draw_set_color(_color1); 
draw_set_alpha(_alpha); 
draw_text(_x + 1, _y, _text); 
draw_text(_x - 1, _y, _text); 
draw_text(_x, _y + 1, _text); 
draw_text(_x, _y - 1, _text); 

draw_set_color(_color2); 
draw_set_alpha(1); 
draw_text(_x, _y, _text); 
Скрипт для выбора случайной переменной: 
mas_x[0]=1; 
mas_x[1]=2; 
mas_x[2]=3; 
mas_x[3]=4; 
mas_x[4]=5; 
mas_x[5]=6; 
mas_x[6]=7; 
mas_x[7]=8; 
mas_x[8]=9; 
mas_x[9]=10; 
mas_x[10]=11; 
mas_x[11]=0; //последний+1 элемент должен быть пустым 
//то есть содержать ненужное значение 
mas_l = 10; //количество элементов массива 
Далее скрипт, получающий случайный элемент из этого массива: 
var mas1,mas_n,buf; 

if mas_l=0 {return 0;} 
//если закончились элементы, возвращать что-нибудь 

mas_n=irandom(mas_l); //случайный индекс элемента. выбирается из имеющегося количества 
mas1=mas_x[mas_n]; //получили элемент 

for (j=mas_n; j<mas_l; j+=1) //переместить полученный элемент в конец массива 
{buf=mas_x[j+1]; 
mas_x[j+1]=mas_x[j]; 
mas_x[j]=buf;} 

mas_l-=1; //уменьшить количество элементов на 1 

return mas1; //получили элемент 
Замена символов в тексте на другие: 
var t, t1, t2; 
t=argument0; 
while !(string_pos(argument1,t)=0) 
len=string_pos(argument1,t); 
t1=string_copy(t,0,len-1); 
t2=string_copy(t,len+1,string_length(t)-len+1); 
t=string(t1)+string(argument2)+string(t2); 
return t; 
Сокращение текста до определённой длинны: 
text = argument0; 
short = argument1; 
if (string_length(text) > short) 
text = string_delete(text, short + 1, string_length(text) - short + 1) + '...'; 
return text; 
Рисование цветка: 
Sname=part_system_create(); 

particle1 = part_type_create(); 
part_type_shape(particle1,pt_shape_line); 
part_type_size(particle1,0.10,0.10,0,0); 
part_type_scale(particle1,1,1); 
part_type_color1(particle1,16711680); 
part_type_alpha1(particle1,1); 
part_type_speed(particle1,1,1,0,0); 
part_type_direction(particle1,0,359,0,0); 
part_type_gravity(particle1,0,270); 
part_type_orientation(particle1,0,0,0,0,1); 
part_type_blend(particle1,1); 
part_type_life(particle1,60,160); 

emitter1 = part_emitter_create(Sname); 
part_emitter_region(Sname,emitter1,x,x,y,y,0,0); 
part_emitter_stream(Sname,emitter1,particle1,5); 

attract1 = part_attractor_create(Sname); 
part_attractor_position(Sname,attract1,340,241.50); 
part_attractor_force(Sname,attract1,0.50,100,1,1); 
Прокачка без знания математики (в рпг): 
/*************************************************** 
Скрипт линейной интерполяции 

не перепутать пределы, последними идут мин-макс 
пределы того значения, которое надо вычислить! 
scr_linear_interpolation(x0,x1,x2,y1,y2) 
***************************************************/ 

var x0,x1,x2,y0,y1,y2; 
x0=argument0; //известная переменная x 
x1=argument1; //минимальный предел x1 
x2=argument2; //максимальный предел x2 
y1=argument3; //мин. y1 
y2=argument4; //макс. y2 

y0=((y2-y1)/(x2-x1))*(x0-x1)+y1; 
return y0; //неизвестная требуемая переменная 
Надеюсь это вам поможет! 
Внимание! 
Если вы увидели ошибки, то сообщите мне! И ещё: старайтесь не копировать скрипты (я вам не запрещаю копировать), а понимать их. Если все будут копировать, то толком ничего не усвоят и не поймут и в дальнейшем будут всё время спрашивать скрипты на форуме, а скрипты предоставляют для усвоения и для того, чтобы в дальнейшем вы сами смогли составить скрипт!
Категория: Создание игр | Добавил: StarBerry (27 Июня 2014)
Просмотров: 1206 | Теги: создание игр на game maker, уроки по game maekr, статьи по game maker, создание игр, разработка игр, скрипты для game maker, game maker 8 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вход на сайт
Поиск
Скачать Game Maker
Game Maker 8.0 - классическая программа. Идеальна для создания 2D.
Game Maker Studio - подходит для коммерческих и мультиплатформ. игр.
Мы вконтакте!