Управление с изменением спрайтов по 8 осям
|
|
Oletron | Дата: Понедельник, 28 Февраля 2022, 15:36 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Тихо!Тихо! Не надо ругаца, я уже начинаю переходить на gms, не кричай. кхм, надо сделать 2D управление по восьми осям , а спрайт изменялся по четырём осям. Спасибо...
сорри за тупой вопрос сам понял это сделать, завтра кину код
Старый Код (cringe)
Первый скрипт в step: if keyboard_check(ord("W")) && place_free(x,y-4) {y-=4} if keyboard_check(ord("S")) && place_free(x,y+4) {y+=4} if keyboard_check(ord("D")) && place_free(x+4,y) {x+=4} if keyboard_check(ord("A")) && place_free(x-4,y) {x-=4} Второй код тоже в step (СОЗДАЙ ЕЩЕ ОДИН СКРИПТ В STEP) if keyboard_check(ord("W")) sprite_index=(u)//спрайт вверх if keyboard_check(ord("S")) sprite_index=(d)//спрайт вниз if keyboard_check(ord("D")) sprite_index=(RIGHT)//спрайт вправо if keyboard_check(ord("A")) sprite_index=(l)//спрайт влево
Оптимизированный код oт Соre (epic) А вот оптимизированный код в одном скрите, скажем спасибо Corе за помощь)
Цитата Core ( ) if keyboard_check(ord("W")) {sprite_index=up; if place_free(x,y-4) then y-=4} if keyboard_check(ord("A")) {sprite_index=left; if place_free(x-4,y) then x-=4} if keyboard_check(ord("S")) {sprite_index=down; if place_free(x,y+4) then y+=4} if keyboard_check(ord("D")) {sprite_index=right; if place_free(x+4,y) then x+=4}
Сообщение отредактировал Oletron - Вторник, 01 Марта 2022, 23:48 |
|
| |
TLT | Дата: Понедельник, 28 Февраля 2022, 21:45 | Сообщение # 2 |
Сейчас нет на сайте
| Ну введи переменную, которая изменяется от нажатия той или иной комбинации кнопок и отвечает за анимацию спрайта в том или ином положении (либо флип спрайта).
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
Oletron | Дата: Вторник, 01 Марта 2022, 01:04 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Цитата TLT ( ) Ну введи переменную, которая изменяется от нажатия той или иной комбинации кнопок и отвечает за анимацию спрайта в том или ином положении (либо флип спрайта). слишком сложно, можно ещё проще)
Сообщение отредактировал Oletron - Вторник, 01 Марта 2022, 01:04 |
|
| |
MagicHero | Дата: Вторник, 01 Марта 2022, 03:01 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Oletron, куда проще то? Делаешь 8 обьектов кнопок или проще один но с различными зонами нажатия. И в зависимости на какую кнопку или область (если обьект-кнопка одна) нажали меняешь переменную которая отвечает за индекс спрайта.
|
|
| |
Oletron | Дата: Вторник, 01 Марта 2022, 13:58 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата MagicHero ( ) Oletron, куда проще то? Делаешь 8 обьектов кнопок или проще один но с различными зонами нажатия. И в зависимости на какую кнопку или область (если обьект-кнопка одна) нажали меняешь переменную которая отвечает за индекс спрайта. чееел читай что выше я написал
|
|
| |
Core | Дата: Вторник, 01 Марта 2022, 16:22 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Немного оптимизировал твой код. Так выглядит в два раза компактнее и второй скрипт создавать ненужно
Код if keyboard_check(ord("W")) {sprite_index=up; if place_free(x,y-4) then y-=4} if keyboard_check(ord("A")) {sprite_index=left; if place_free(x-4,y) then x-=4} if keyboard_check(ord("S")) {sprite_index=down; if place_free(x,y+4) then y+=4} if keyboard_check(ord("D")) {sprite_index=right; if place_free(x+4,y) then x+=4}
Сообщение отредактировал Core - Вторник, 01 Марта 2022, 16:27 |
|
| |
Oletron | Дата: Вторник, 01 Марта 2022, 23:41 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| Цитата Core ( ) Немного оптимизировал твой код. Так выглядит в два раза компактнее и второй скрипт создавать ненужно Спасиба) Таой код теперь висит сверху!
Сообщение отредактировал Oletron - Вторник, 01 Марта 2022, 23:47 |
|
| |