minepecraft | Дата: Понедельник, 08 Июня 2015, 14:33 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Привет,хелперы!Помогите мне пожалуйста,решил сделать рывок в 2D платформере,как его можно реализовать?Я думаю так: В объявить игроку переменную dash=false и dashmax=50. В step: if keyboard_check_pressed(ord('D')) &&keyboard_check_pressed(любая другая клавиша) && !dash { dash=true }
if dash { x+=1 }
if dash=dashmax { dash=false }
Я конечно уверен,что здесь много ошибок,но..в общем надеюсь на Вашу помощь!Спасибо заранее!!!!!!
|
|
| |
EfimovMax | Дата: Понедельник, 08 Июня 2015, 14:35 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Должно работать. Не забудь обнулить длину:
Код if dash=dashmax { dash=false dash=0 }
Текущий проект: The Experiment ☭
Выпущенные проекты Steam: Princess.Loot.Pixel.Again Princess.Loot.Pixel.Again x2 Dungetris
|
|
| |
minepecraft | Дата: Понедельник, 08 Июня 2015, 15:44 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Да,спасибо!А еще я щас в шоку сижу!Запустил свою игру в game maker и тут бац:Системе не удается найти указанный путь C:/ ********** Кто знает может?
Добавлено (08 июня 2015, 14:44) --------------------------------------------- Ошибка исчезла,но снова проблема,не разберусь,снова напишу в эту тему!Не закрывайте ее пока,если можно!Спасибо.
Добавлено (08 июня 2015, 14:45) --------------------------------------------- И я разобрался,тему можно закрыть!Спасибо ,EfimovMax,плюсик поставил!
Добавлено (08 июня 2015, 15:27) --------------------------------------------- Короче,я решил сделать даш при нажатии на лшифт и на кнопку либо D либо A,с движением влево у меня все получилось,а вот вправо.В общем такая фигня:я уже что только не перепробовал,но сделал так: Объявил герою переменные: dash1=false dash2=false dashmax=100 dashs=0 При нажатии на шифт: if keyboard_check(ord('D')) && global.skill2=true (Это как-бы скилл героя,если он есть,то можно это дело провернуть)&& !place_free(x,y+1) { dash1=true global.skill2=false(отключаем этот скилл) alarm[1]=90 (Перезарядка скилла 3 с) }
if keyboard_check(ord('A')) && global.skill2=true (Это как-бы скилл героя,если он есть,то можно это дело провернуть)&& !place_free(x,y+1) { dash2=true global.skill2=false(отключаем этот скилл) alarm[1]=90 (Перезарядка скилла 3 с) }
Теперь в степ: if dash1=true { x+=5 dashs+=5 }
if dash2=true { x-=5 dashs+=5 }
if dash1=dashmax or dash2=dashmax { dash1=false dash2=false }
Помогите решить проблему,почему-то вправо герой просто долго едет без остановки,а влево делает быстрый даш и останавливается.Добавлено (08 июня 2015, 15:44) --------------------------------------------- Проблема решена,можно снова закрывать тему,я сделал так,если dashs>dashsmax-1 { dash1=false dash2=false dashs=0 } Не знаю почему,но я опять слишком долго сижу в компе и мозги уже не думают,а ошибки очевидны!
Сообщение отредактировал minepecraft - Понедельник, 08 Июня 2015, 15:31 |
|
| |
Gc-SupeR | Дата: Вторник, 09 Июня 2015, 10:55 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| if keyboard_check_pressed(ord('D')) &&keyboard_check_pressed(любая другая клавиша) && !dash { dash=true }
if dash { x+=1 }
if dash=dashmax { dash=false правильно }
*Ни шагу назад*
|
|
| |