Четверг, 02 Мая 2024, 04:36

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » MasterSambo [796]
Результаты поиска
MasterSamboДата: Среда, 24 Июля 2013, 10:59 | Сообщение # 701 | Тема: Полезные скрипты
заслуженный участник
Сейчас нет на сайте
Цитата (CreatingOver)
Не согласен. Если пихать в степ, то в начале игры этот объект на другом будет. Лучше уж так:
[code]move_towards_point(объект преследования.x,объект преследования.y,скорость)

Я это обязательно учту!
MasterSamboДата: Среда, 24 Июля 2013, 10:58 | Сообщение # 702 | Тема: Цикл уроков по созданию RPG.
заслуженный участник
Сейчас нет на сайте
Цитата (CreatingOver)
Да, будет про создание основного интерфейса (лайфбар, xp-бар, lvl-панель).

Буду ждать happy
MasterSamboДата: Среда, 24 Июля 2013, 10:53 | Сообщение # 703 | Тема: Создание Angry Birds
заслуженный участник
Сейчас нет на сайте
Добрый день! Я хочу рассказать как сделать игру типа angry birds. Я думаю, что все слышали о ней.

Для начала сделаем спрайты:
s_bird - птица
s_enemy - враг
s_block - блок
Создаём объекты с соответствующими спрайтами:
о_bird - птица
о_enemy - враг
о_block - блок
Переключаемся на работу с объектом птицы. Добавляем событие создание и пишем код:
gravity = 0.2;
gravity_direction = 270;
varDrag = false;

Добавляем столкновение с другой птицей и пишем код:
varDir = point_direction(x, y, other.x, other.y);
with (other) {
motion_add(other.varDir, other.speed/2);
}

move_bounce_all(true);
vspeed = vspeed / 2;
hspeed = hspeed * 0.50;

Теперь столкновение со стеной:
move_bounce_all(true);
vspeed = vspeed / 2;
hspeed = hspeed * 0.90;

Создаём событие левая кнопка мыши нажата и пишем супер-простой скрипт:
varDrag = true;

И наконец событие глобальная левая кнопка мыши. Добавим скрипт:
if (varDrag = true) {
varDist = distance_to_point(mouse_x, mouse_y) / 5;
motion_add(point_direction(x, y, mouse_x, mouse_y), varDist);
varDrag = false;
}

Переходим на работу со стеной:
Просто ставим галочку на твёрдый. Желательно создать ещё одну стену в виде горки и тоже отметить твёрдость. Так как птица с гравитацией, она прокатится по ней.
Ну и враг. Сделаем столкновение с птицей и создадим действие исчезновения (если хотите, добавьте функцию добавления очков) и событие уничтожение.
Готово! Запускаем игру и наслаждаемся!
MasterSamboДата: Среда, 24 Июля 2013, 10:52 | Сообщение # 704 | Тема: Полезные скрипты
заслуженный участник
Сейчас нет на сайте
Здравствуйте все! Сегодня я расскажу о скриптах.Часто в играх требуются скрипты для движений объектов, а не только в 8-ми направлениях. Здесь я вам предлагаю базовый набор скриптов для игр. [iскриптов. Создаём спрайт и объект. У спрайта отмечаем center. Добавляем событие Step. Пишем скрипт:
image_angle=point_direction(x,y,mouse_x,mouse_y). Если вы хотите, чтобы объект летел за мышью, то введите другой скрипт:
Код
x=mouse_x
y=mouse_y

С этим объектом можно сделать такую игру:
Объект летит к выходу через лабиринт(разумеется вы его ведёте).Если столкнётся со стеной то отскочит на стартовое место, а если доберётся до выхода, то перейдёт на следующий уровень.Дальше сами!
Движение за объектом:
move_towards_point(объект преследования.x,объект преследования.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))

Обводка текста:
Код
draw_set_color(argument3)
draw_text(argument0+1,argument1,argument4)
draw_text(argument0-1,argument1,argument4)
draw_text(argument0,argument1+1,argument4)
draw_text(argument0,argument1-1,argument4)

draw_set_color(argument2)
draw_text(argument0,argument1,argument4)

Скрипт для выбора случайной переменной:
Код
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; //неизвестная требуемая переменная

Надеюсь это вам поможет!
Внимание!
Если вы увидели ошибки, то сообщите мне! И ещё: старайтесь не копировать скрипты (я вам не запрещаю копировать), а понимать их. Если все будут копировать, то толком ничего не усвоят и не поймут и в дальнейшем будут всё время спрашивать скрипты на форуме, а скрипты предоставляют для усвоения и для того, чтобы в дальнейшем вы сами смогли составить скрипт!


Сообщение отредактировал arkady - Среда, 24 Июля 2013, 14:21
MasterSamboДата: Среда, 24 Июля 2013, 10:51 | Сообщение # 705 | Тема: Создание Платформера
заслуженный участник
Сейчас нет на сайте
Здраствуйте, посетители сайта! В этой статье я расскажу как сделать платформер за короткое время.
Платформер - это простой жанр игры, в котором есть игрок, который бегает и собирает что-то.
Приступим!
Открываем Game Maker. Создаём два спрайта:
player - наш игрок
wall - блок, стена.

Создаём такие же объекты. Работаем с игроком. Делаем событие создание и вписываем код:
if place_free(x,y+1) {gravity = 0.5}
else {gravity = 0}
gravity_direction = 270
if vspeed > 10 {vspeed = 10}
if keyboard_check(vk_right) && place_free(x+4,y) {x+=4}
if keyboard_check(vk_left) && place_free(x-4,y) {x-=4}
if keyboard_check_pressed(vk_up) && !place_free(x,y+1) {vspeed = -8}

То есть в первых строках идёт гравитация, а потом управление игроком. Далее в очереди событие столкновение с объектом wall. Вписываем простой скрипт:
if wall.solid = 1
{
vspeed = 0
}

Всё, игрок готов! Переходим на работу со стеной. Внимание: стену как обычно мы привыкли делать твёрдой не делаем (в нашей игре можно прыгать снизу блока, но нельзя сверху).
Делаем событие создание и пишем код:
solid = 1
Это значит, что твёрдость у стены равна одному. Теперь создаём событие степ (шаг) и вписываем скрипт:
with player
{
if vspeed > 0
{
if !place_meeting(x,y,wall)
{
with wall
{
solid = 1
}
}
}
}
with player
{
if vspeed < 0
{
if !place_meeting(x,y,wall)
{
with wall
{
solid = 0
}
}
}
}
Не будем говорить про этот скрипт, хотя он и важен (скажу только то, что он связан с прыжком: снизу можно, а сверху нет)
Всё! Расставляем объекты в комнате.

Запускаем игру.
Спасибо за внимание!
MasterSamboДата: Среда, 24 Июля 2013, 10:50 | Сообщение # 706 | Тема: Цикл уроков по созданию RPG.
заслуженный участник
Сейчас нет на сайте
CreatingOver, продолжение скоро?
MasterSamboДата: Вторник, 23 Июля 2013, 17:59 | Сообщение # 707 | Тема: Цикл уроков по созданию RPG.
заслуженный участник
Сейчас нет на сайте
Давно мечтал сделать нормальную РПГ biggrin Спасибо!
MasterSamboДата: Понедельник, 22 Июля 2013, 17:58 | Сообщение # 708 | Тема: Можете меня познакомить с сайтом
заслуженный участник
Сейчас нет на сайте
Я на сайте не давно, можете меня познакомить с его историей?
MasterSamboДата: Понедельник, 22 Июля 2013, 17:55 | Сообщение # 709 | Тема: Вопрос - Ответ (Game Maker)
заслуженный участник
Сейчас нет на сайте
Жаль, но я в GML не очень. Поэтому скриптов могу посоветовать мало.
MasterSamboДата: Понедельник, 22 Июля 2013, 16:56 | Сообщение # 710 | Тема: Прошу сменить мой логин
заслуженный участник
Сейчас нет на сайте
В ПУ, его можно изменить.
MasterSamboДата: Понедельник, 22 Июля 2013, 16:55 | Сообщение # 711 | Тема: Спам в личку (L1feMen)
заслуженный участник
Сейчас нет на сайте
Цитата (anton-gar)
Зачем постоянно создавать новые темы - сколько раз было сказано, что такие вопросы решаются лично с администратором/модератором - в лс.

Правда! Даже в других подобных темах об этом постоянно повторяют!
MasterSamboДата: Понедельник, 22 Июля 2013, 16:53 | Сообщение # 712 | Тема: Пример инвентаря
заслуженный участник
Сейчас нет на сайте
Цитата (Alastar)
Многатекста
PS Разве так трудно сделать инвентарь? Этож элементарно.

Лично я, не умел делать его!
MasterSamboДата: Понедельник, 22 Июля 2013, 16:51 | Сообщение # 713 | Тема: Вопрос - Ответ (Game Maker)
заслуженный участник
Сейчас нет на сайте
Сделай спрайты игрока влево и вправо. Потом в событии нажатия влево, замени на спрайт Игрок_Влево, а вправо, на спрайт Вправо.
MasterSamboДата: Понедельник, 22 Июля 2013, 16:48 | Сообщение # 714 | Тема: All battle
заслуженный участник
Сейчас нет на сайте
Хммм, скачаю.
MasterSamboДата: Суббота, 20 Июля 2013, 17:35 | Сообщение # 715 | Тема: Поиск предметов
заслуженный участник
Сейчас нет на сайте
Всё равно не получается... cry cry cry
MasterSamboДата: Суббота, 20 Июля 2013, 17:27 | Сообщение # 716 | Тема: Виды
заслуженный участник
Сейчас нет на сайте
Я сам разобрался!
MasterSamboДата: Суббота, 20 Июля 2013, 16:13 | Сообщение # 717 | Тема: Вопрос по Дабл акаунтам.
заслуженный участник
Сейчас нет на сайте
Так что-ли любой аккуант зарегистрированный через один компьютер я вляется дубль-акком?
MasterSamboДата: Суббота, 20 Июля 2013, 16:10 | Сообщение # 718 | Тема: Виды
заслуженный участник
Сейчас нет на сайте
Странное у меня событие произошло: поставил виды, а они не работают!
MasterSamboДата: Суббота, 20 Июля 2013, 16:07 | Сообщение # 719 | Тема: Вопрос - Ответ (Game Maker)
заслуженный участник
Сейчас нет на сайте
А чем отличаются Game Maker и Game Maker Studio?
MasterSamboДата: Суббота, 20 Июля 2013, 16:04 | Сообщение # 720 | Тема: Лектор [Платформер]
заслуженный участник
Сейчас нет на сайте
Цитата (Gammeza)
позор тебе нет скриншотов,

И снова здравствуйте эти слова!
Форум игроделов » Записи участника » MasterSambo [796]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг