Материал из Скретч Вики
Есть несколько способов сделать так, чтобы спрайт прыгал, в зависимости от того, как вы хотите чтобы спрайт прыгал и насколько реалистично это выглядело. Данная статья содержит несколько способов, сортированные от самых не реалистичных до самых реалистичных. Клавиша ↑ обычно используется для прыжка в играх, но иногда Пробел, Z, X, W, или даже мышь используется для прыжка.
Простой прыжок
Данный скрипт используется в анимациях и приходит к тому, что спрайт телепортируется наверх и вниз.
когда щёлкнут по зелёному флагу повторять всегда если <клавиша (стрелка вверх v) нажата?>, то // обычная клавиша для прыжка изменить y на (50) ждать (0.5) секунд изменить y на (-50)
Скрипт ниже приведёт к тому, что спрайт будет двигаться вверх при зажатии стрелки вверх.
когда щёлкнут по зелёному флагу повторять всегда если <клавиша (стрелка вверх v) нажата?>, то // обычная клавиша для прыжка изменить y на (5)
Он был использован в проекте «Scrolling Demo» от SampleProjectsTeam.
Ещё один способ который работет довольно эффективно и реалистично:
когда щёлкнут по зелёному флагу повторять всегда если <клавиша (стрелка вверх v) нажата?>, то // обычная клавиша для прыжка повторить (10) раз изменить y на (20) end повторить (10) раз изменить y на (-20) end
Он довольно быстрый, но ты можешь отрегулировать скорость, добавив блок «ждать» до блока «изменить y».
Падение
Данный скрипт «телепортирует» спрайт вверх и затем делает его падать на определённой скорости, пока спрайт не коснётся земли.
когда щёлкнут по зелёному флагу повторять всегда если <клавиша (стрелка вверх v) нажата?>, то // обычная клавиша для прыжка изменить y на (50) повторять пока не <касается цвета (#000)?> // цвет земли изменить y на (-5)
Следующий скрипт же сделает так, чтобы спрайт двигался вверх с определённой скоростью и падать с определённой скоростью.
когда щёлкнут по зелёному флагу повторять всегда если <клавиша (стрелка вверх v) нажата?>, то // обычная клавиша для прыжка повторить (10) раз изменить y на (5) end повторять пока не <касается цвета (#000)?> // цвет земли изменить y на (-5)
Ограниченные прыжки
В большинстве видеоигр нельзя прыгать более чем фиксированное кол-во раз и нельзя прыгать в воздухе. Это можно сделать на Скретч.
Под розовыми блоками под названием «прыгать» подразумевается скрипт для прыжка.
Чтобы сделать так, чтобы можно было прыгать только с земли, используйте данный скрипт:
когда щёлкнут по зелёному флагу повторять всегда если <<клавиша (стрелка вверх v) нажата?> или <касается цвета (#000)?>>, то // обычная клавиша для прыжка, цвет земли изменить y на (5) прыгать:: custom
Двойной прыжок — распространенный элемент в видеоиграх. Хотя это невозможно в реальной жизни, эти скрипты могут заставить спрайт подпрыгнуть до двух раз.
когда щёлкнут по зелёному флагу повторять всегда если <касается цвета (#000)?>, то // цвет земли задать [прыжки v] значение (0) end end когда щёлкнут по зелёному флагу повторять всегда если <<клавиша (стрелка вверх v) нажата?> или <касается цвета (#000)?>>, то // обычная клавиша для прыжка, цвет земли изменить y на (5) изменить [прыжки v] на (1) прыгать:: custom иначе если <<клавиша (стрелка вверх v) нажата?> и <(прыжки) < [2]>>, то // это не даст вам прыгать больше двух раз изменить [прыжки v] на (1) прыгать:: custom end end
Чтобы спрайт прыгал до n раз, замените 2 на n.
Реалистичные прыжки
Чтобы сделать простую игру-прыгалкку (не путать с платформером), используйте этот скрипт:
когда щёлкнут по зелёному флагу перейти в x: [*значение*] y: [*значение*] задать [скорость y v] значение (0)
Затем введите этот фрагмент кода:
когда клавиша [пробел v] нажата задать [скорость y v] значение [*значение*] повторить (((скорость y) * (2)) + (1)) раз изменить y на (скорость y) изменить [скорость y v] на (-1) end
Физически точные прыжки
С обнаружением земли
Более реалистичный эффект для прыжков, обычно используемый в играх, выглядит следующим образом, используя переменную для управления вертикальной скоростью спрайта (имитируя гравитацию):
когда щёлкнут по зелёному флагу задать [скорость y v] значение (0) повторять всегда изменить y на (скорость y) end когда щёлкнут по зелёному флагу повторять всегда ... // проверить, находится ли игрок на земле если <касается цвета (#000)?>, то // цвет платформы задать [скорость y v] значение (0) ... // проверить, хочет ли игрок прыгать если <клавиша (стрелка вверх v) нажата?>, то ... // прыжок задать [скорость y v] значение (9.9) end end изменить [скорость y v] на (-0.5) // гравитация end
Без обнаружения земли
Если вам не нужно обнаруживать землю, а просто нужен реалистичный гравитационный прыжок, который закончится в начальной точке, используйте этот скрипт:
когда щёлкнут по зелёному флагу повторять всегда если <клавиша (стрелка вверх v) нажата?>, то задать [скорость y v] значение (10) повторить (21) раз изменить y на (скорость y) изменить [скорость y v] на (-1) // имитация гравитации end end