//Скорость spm[0]=-12 //максимальная скорость при задней передаче равна -12 spm[1]=0 spm[2]=12 //максимальная скорость при первой передаче равна 12 spm[3]=20 spm[4]=26 spm[5]=32
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:
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:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Создание автомобиля с механической кпп (Game Maker)», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]