Суббота, 26.05.2012, 18:38


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

Меню сайта
Категории каталога
Создание игр [170]
Статьи об общих понятиях связанных с созданием игр
Движки и Гейммейкеры [85]
Статьи о программах для создания игр
Игры [39]
Статьи об играх, в том числе и сделанных на гейммейкерах
Софт [25]
Различные программы, в том числе в помощь игроделам
Разное [61]
Статьи, которые не вошли в определённые разделы
Наш опрос
Игры какого жанра вы предпочитаете делать?
Всего ответов: 9831
Главная » Статьи » Создание игр

Создание автомобиля с механической кпп (Game Maker)
Создание автомобиля с механической коробки передач

1)Создаём объект o_car, объект здания (или забор), и объект АЗС. В событии Create записываем следующий код:

Code

     globalvar ntr; //количество закиси азота
     ntr=100;
     globalvar spd; //скорость в км/ч
     globalvar tah; //обороты двигателя
     tah=0;
     globalvar kpp; //номер передачи
     kpp=0;
     globalvar prb; //пробег
     globalvar bnz; //топливо
     bnz=10
     globalvar money; //деньги
     money=1250;
      
     //Скорость
     spm[0]=-12 //максимальная скорость при задней передаче равна -12
     spm[1]=0
     spm[2]=12 //максимальная скорость при первой передаче равна 12
     spm[3]=20
     spm[4]=26
     spm[5]=32
      
     //Ускорение
     acc[0]=-0.2
     acc[1]=0
     acc[2]=0.2
     acc[3]=0.15
     acc[4]=0.13
     acc[5]=0.1
      
     //Коэффициент оборотов
     tahk[0]=-7.08
     tahk[1]=0
     tahk[2]=7.08
     tahk[3]=4.25
     tahk[4]=3.27
     tahk[5]=2.65

Это будет некоторая быза данных.
В событии Step:
Code

     image_angle=direction; //поворот спрайта
     friction=0.05; //трение
     spd=speed*5;
     if !kpp=0 tah=speed*tahk[kpp+1]//обороты двигателя
     if kpp=0 and tah>0 tah-=1;
      
     if speed>0 prb+=speed/20250 else prb-=speed/20250; //высчитываем пробег
     if ntr<100 ntr+=0.05; //восстановление нитро со временем
     if keyboard_check(vk_up) and bnz>0 {
         if speed>0 bnz-=speed/202500 else bnz-=speed/202500; //расход топлива
     }

Далее в событии нажатия клавиш:
<Up>
Code

if bnz>0 /*если есть топливо*/{
     if kpp>0/*если передача больше 0*/{
     if speed<spm[kpp+1] speed+=acc[kpp+1]}//разгоняемся
     if kpp=-1/*если включена задняя передача*/{
     if speed>spm[kpp+1] speed+=acc[kpp+1]}
     instance_create(x,y,o_smoke);//из трубы идёт дым
     if kpp=0 and tah<80 tah+=5//если включена нейтральная передача, то увеличиваются обороты двигателя  
}

<Down>
Code

     if speed>0 speed-=0.5; //тормозим
     if speed<0 speed+=0.5; //тормозим
     if not speed=0 instance_create(x,y,o_sledy) //если автомобиль движется, то оставляем следы

<Left>
Code

if spd>-20 and spd<20 direction+=spd/5 else direction+=4; //поворачиваем влево
speed*=0.9925; //скорость уменьшается
if spd>60 instance_create(x,y,o_sledy); //оставляем следы

<Right>
Code

if spd>-20 and spd<20 direction-=spd/5 else direction-=4; //поворачиваем вправо
speed*=0.9925; //скорость уменьшается
if spd>60 instance_create(x,y,o_sledy); //оставляем следы

<Space>
Code

     if keyboard_check(vk_up) and ntr>0  and kpp>0 /*если нажата клавша  <Up>, есть нитро и передача выше 0*/{
     speed+=0.2;//увеличивается скорость
     ntr-=1; //нитро уменьшается
     instance_create(x,y,o_nitro) //из трубы выходит сине-жёлтый дым
     }

press <Shift>
Code

if kpp<4 kpp+=1; //переключаемся на повышенную передачу

press <Ctrl>
Code

if kpp<4 kpp+=1; //переключаемся на повышенную передачу

В событии столкновения с заправкой:
Code

if speed=0 and bnz<50 and money>0 /*если машина стоит, бак не полный и есть деньги*/
{
     bnz+=0.1
     money-=2.5}; //заправляемся

И в событии столкновения со зданием или другим твёрдым объектом:
Code

//столкновение с твёрдым объектом
x=xprevious
y=yprevious
speed=-(speed/2)

Машина у нас готова =)

2)Создаём объекты o_sledy, o_smoke, o_nitro (следы, дым, дым от нитро)
В o_sledy:
В событии Create:

Code

image_angle=o_car.direction //направление спрайта следов
timer=0

В событии Step:
Code

timer+=1
if timer=100 {instance_destroy()} //время жизни следов

В o_smoke и o_nitro:
В Create:
Code

image_angle=o_car.direction
direction=o_car.direction
speed=spd/5-1; //скорость дыма
tmr=0

В Step
Code

direction=o_car.direction
tmr+=1
if tmr>25 instance_destroy() //время жизни дыма

3)Создаём объекты: o_hud, o_arrows, o_kpp. В событии Draw пишем:
В o_hud:

Code

draw_sprite(s_speedometr,-1,view_xview+800,view_yview+600); //рисуем спидометр
draw_text_color(view_xview+670,view_yview+530,prb,c_white,c_white,c_white,c_white,1); //пробег
draw_text_color(view_xview+10,view_yview+10,money,c_white,c_white,c_white,c_white,1); //деньги
draw_text_color(view_xview+60,view_yview+10,'RUB',c_white,c_white,c_white,c_white,1);    
draw_rectangle_color(view_xview+10,view_yview+590,view_xview+40,view_yview+590-ntr,c_blue,c_aqua,c_blue,c_navy,false); //нитро

В o_arrows:
Code

if spd>0 draw_sprite_ext(s_arrow,-1,view_xview+680,view_yview+560,1,1,13-spd*1.3,c_red,1)
else draw_sprite_ext(s_arrow,-1,view_xview+680,view_yview+560,1,1,13+spd*1.3,c_red,1);//стрелка спидометра
draw_sprite_ext(s_arrow,-1,view_xview+560,view_yview+560,1,1,13-tah*1.3,c_red,1); //тахометра
draw_sprite_ext(s_arrow,-1,view_xview+380,view_yview+584,0.3,1,-bnz*3.6,c_red,1); //и уровня топлива
if bnz<5 draw_sprite(s_lamp,-1,view_xview+408,view_yview+552); //если топлива меньше 5 литров, светится лампочка

В o_kpp:
Code

draw_sprite(s_kpp,kpp+1,view_xview+720,view_yview+550); //рисуем номер передачи

Чтобы это код работал, у вас должен быть спрайт s_kpp:

Вот и всё!

Пример

Категория: Создание игр | Добавил: PahanoK_T (02.11.2010)
Просмотров: 2475 | Рейтинг: 4.7/9
Теги: Урок, Пример, коробка передач, Создание автомобиля, механическая коробка, Авто, КПП, скорость, программирование, Управление авто
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создание автомобиля с механической кпп (Game Maker)», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемой ниже кнопкой:
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки по теме
Поиск
10 случайных движков
STUG Builder
Vicious Engine
Ren'Py
M.U.G.E.N
Raycasting Game Maker
Eternity Engine
001 Game Creator
Vavoom
Unity
Unigine
Друзья сайта
Игровой форум GFAQ.ru Перевод консольных игр Разработка игр в СНГ Loadka.ru – загрузка файлов Игорный бизнес в России Реклама и заработок
Все права сохранены. GcUp.ru © 2008-2012 Рейтинг