Четверг, 28.03.2024, 21:07
Главная Регистрация RSS
Приветствую Вас, Гость
Поиск по сайту
Авторизация

Меню сайта
Game Maker
Если вы только-только начали изучать игрострой и еще даже не успели скачать сам Game Maker, предлагаем вам на выбор следующие версии программы:

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Топ 5 игр
Агент Green 4.2 / 5.0
FeDo 4.2 / 5.0
To Mars: Sec... 4.2 / 5.0
To Mars+MapE... 3.9 / 5.0
Paintball 3.8 / 5.0

Топ игр составлен путем пользовательского голосования.

Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
Статистика



На сайте: 2
Гостей: 2
Пользователей: 0
Главная » Статьи » Разработка игр

Скрипты

Здравствуйте все! Сегодня я расскажу о скриптах.Часто в играх требуются скрипты для движений объектов, а не только в 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; //неизвестная требуемая переменная
Надеюсь это вам поможет!
Внимание!
Если вы увидели ошибки, то сообщите мне! И ещё: старайтесь не копировать скрипты (я вам не запрещаю копировать), а понимать их. Если все будут копировать, то толком ничего не усвоят и не поймут и в дальнейшем будут всё время спрашивать скрипты на форуме, а скрипты предоставляют для усвоения и для того, чтобы в дальнейшем вы сами смогли составить скрипт!
Категория: Разработка игр | Добавил: MasterSambo (11.11.2012)
Просмотров: 7161 | Комментарии: 15 | Рейтинг: 4.7/6
Всего комментариев: 151 2 »
14 123456   (26.09.2013 22:01) [Материал]
анимированая игра

13 123456   (26.09.2013 22:00) [Материал]
люди как написать код для отпуска кнопки
чтоб чувак остановился

15 paliychukvlad   (04.05.2015 11:57) [Материал]
paliychukvlad даже код не нужен

12 Славян   (27.06.2013 16:29) [Материал]
Славян Ой, я вообще со скриптами не дружу.

11 Цезарь   (27.06.2013 16:17) [Материал]
[b]Аgent,[b\] не за что!

10 Agent   (09.06.2013 12:48) [Материал]
Agent Спасибо, помог!

9 MasterSambo   (07.05.2013 11:18) [Материал]
MasterSambo Ну, как вам изменения?

7 Jenese   (12.01.2013 21:29) [Материал]
Jenese вместо direction=point_direction(x,y,mouse_x,mouse_y)
speed=8
можно написать move_towards_point(mouse_x,mouse_y,5) , где 5 - скорость, просто чуть чуть меньше писанины.
Может кто знает, как сделать движение объекта как в стратежках (выделение, указание точки, передвижение)???

8 Gracio001   (15.04.2013 17:41) [Материал]
Gracio001 Знаю, скажи когда выйдешь - попробую тебе объяснить в ЛС

6 РедкийЧел   (25.11.2012 19:38) [Материал]
РедкийЧел Да, намного лучше! Только попробуй каждый скрипт отделять от обычного текста курсивом, также разделять двойным абзацем и распределять по пунктам! biggrin

5 BRESS   (12.11.2012 16:07) [Материал]
BRESS Нет... Это не статья... Честно... sad

2 MasterSambo   (11.11.2012 14:20) [Материал]
MasterSambo Конечно! Изменю название и скриптов напишу!

3 koaran   (11.11.2012 14:22) [Материал]
koaran Ждем happy

4 koaran   (11.11.2012 14:39) [Материал]
koaran Ок. Активирую.

1-10 11-11
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]