Я думаю, мне нужно немного стимулов о том, как сделать это, я не очень опытный в игровой механике вообще платформера ...Прыжки механика в Netwire
Во всяком случае, мой игрок фигура имеет это до сих пор:
movePlayer = proc p -> do
let gravity = 100
sx <- keySpeed GLFW.LEFT GLFW.RIGHT 500 -<()
dy <- integralLim_ collision 0 -< (gravity, p)
dx <- integralLim_ collision 0 -< (sx, p)
returnA -< (sx, sy)
where
keySpeed k1 k2 s = onKey k1 (-s) <|> onKey k2 s <|> pure 0
collision = undefined -- collision with the world
С gravity
объект игрока медленно падает, пока не появится что-то стоящее. Конечно, следующий шаг - добавить прыжки в кривой sin
... что такое простой способ добавить ее, используя netwire
? Можно также добавить к нему дополнительное обнаружение столкновения?
Я просто не знаю, с чего начать с этого.
Не может заставить 'pos' работать ... что это в правильной обозначении стрелки? – Lanbo
@LambdaDusk: Извините, моя неудача. Я забыл начальную позицию/скорость. Ответ отредактирован. – ertes
Это работает, если я удерживаю клавишу пробела нажатой. Если я просто коснусь его, ничего не произойдет, и удерживание его будет заставлять спрайт летать. – Lanbo