Воскресенье, 22.12.2024, 07:04
Главная Регистрация 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

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

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



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

Оружие в ToMars

Нет. Каждая пушка это не отдельный объект. Будет много описания, но я думаю, ты поймёшь основную мысль.

Каждое оружие - это у меня отдельный скрипт. Вернее два скрипта.
1-ый скрипт будет у меня инициализировать переменные, которые будут отвечать за характеристики оружия.
2-ой скрипт будет выполнять весь код оружия.
Это достаточно удобно, так как выбор того или иного оружия осуществляется всего одним скриптом.

Допустим, нам нужно добавить пистолет Макарова в игру.
Я создаю 1-ый скрип с названием "PM_scr", в котором прописываю характеристики этого оружния:

Код
w_name = "Пистолет Макарова"//Название оружия
w_spr="спрайт оружия"
w_snd="звук выстрела"
w_snd_reolad="Звук перезарядки оружия"
w_at_reolad=60//Время перезарядки оружия
w_dmg = 12 //урон от выстрела
w_spd = 10// скорость пули
w_at=12//Время между выстрелами (минимальное время между двумя выстрелами)
w_a=0//Счётчик времени между выстрелами
//Список может быть неограничен, например отадача, угол разброса и многое другое
 

Скрипт "PM_scr" вызывается у игрока только в тот момент, когда он выбирает оружие Пистолет Макарова, тем самым инициализируются переменные, которые понадобятся нам в следующем скрипте:

Второй скрипт будет вызываться в объекте "Игрок" каждый шаг, то есть непрерывно. Назовём его "weapon_scr". Примерный код:

Код
w_angle=point_direction(x,y,mouse_x,mouse_y)//Направляем оружие в сторону курсора

Если нажата ПКМ
Если w_a<=0
Если патроны>0{
sound_play(w_snd)
o=instance_create(x,y,Bullet1_obj)//Создаётся объект пули
o.dmg=w_dmg//Для объекта "пуля" присваивается урон, который будет наносить врагу
o.t=t//Объекту пуля задаётся номер команды (допустим 1 - игрок, 2 - враги) Это чтобы пуля не наносила урон игроку
o.spd=w_spd//Задаётся скорость пули
o.direction=w_angle
w_a=w_at//Задаём счётчику время
}

if w_a>0
w_a-=1//Минусуем счётчик


if Патроны в магазине <=0{
Тут можно запилить код перезарядки оружия}
 


В объекте "Игрок" в коде create

Код
t=1//Номер команды, к которой принадлежит игрок

slot_n=2//Номер слота, который сейчас выбран
//Допустим нужно сделать 5 слотов для оружия. В каждом слоте хранится имя скрипта, соответсвующее тому-или иному оружию
slot[1]="Knife_scr"//В 1-ом слоте нож
slot[2]="PM_scr"//Во втором слоте Пистолет Макарова
slot[3]="AK47_scr"//Без коментариев
slot[4]=""//Пустой слот
slot[5]=""//Пустой слот

execute_string(slot[slot_n]+"()")//Вызывается 1-ый скрипт. Тем самым игрок //выбирает оружие из слота с номером slot_n
//+"()" нужно писать, потому что все скрипты вызываются со "()" на конце
 
w_angle=0//Угол прицеливания

p_dir=1//Направление игрока
//Если 1 - то смотрит вправо, если -1 то влево



В коде Step

Код
weapon_scr()//Вызывается 2-ой скрипт, который будет вызываться всегда



если колёсик вверх{
if slot_n>1
    slot_n-=1
execute_string(slot[slot_n]+"()")//Выбирается оружие
}
если колёсик вниз{
if slot_n<5
    slot_n+=1
if slot[slot_n]=""//Если выбрался пустой слот, то выбираем 1-ый слот
    slot_n=1

execute_string(slot[slot_n]+"()")//Выбирается оружие
}

 



В коде Draw

Код
"Тут код отрисовки игрока без руки"

draw_sprite_ext(w_spr,0,x,y,1,p_dir,w_angle,image_blend,image_alpha)//Рисуем руку с оружием

 








В коде пуля в Create

Код
t=0
dmg=0
spd=0


В столкновении с человеком

Код
if other.t<>t{
other.hp-=dmg
instance_destroy()
}


В step

Код
x+=lengthdir_x(spd,direction)
y+=lengthdir_y(spd,direction)

 

Вот, как-то так)

 

 

 

Категория: Разработка игр | Добавил: sasha (17.04.2016)
Просмотров: 2669 | Комментарии: 3 | Теги: гунс, пушки, СЛОЖНААА, Ганс, Weapon, to, Mars, оружие, guns | Рейтинг: 5.0/4
Всего комментариев: 3
2 Кракозябр   (17.08.2016 12:22) [Материал]
Кракозябр Отличная реализация оружия. Я об этом даже как-то не подумал

1 звезда   (27.07.2016 14:24) [Материал]
звезда ...И тут я понял, что я - говно-кодер.  mellow

3 PixelDuck   (02.10.2016 11:23) [Материал]
PixelDuck Я думал что я говно кодер... но оказалось что я супер говно кодер!

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