首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netwire中的跳跃机制

Netwire中的跳跃机制
EN

Stack Overflow用户
提问于 2013-04-10 23:25:33
回答 1查看 288关注 0票数 2

我想我需要一些激励来做这个,我在一般的平台游戏机制方面并不是很有经验……

无论如何,到目前为止,我的球员形象是这样的:

代码语言:javascript
复制
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时,player对象会慢慢下落,直到有东西可以站立。当然,下一步是在sin曲线中添加跳跃...使用netwire添加它的简单方法是什么?它还可以添加进一步的碰撞检测吗?

我只是不知道从哪里开始做这个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 02:59:33

首先请注意,积分适用于元组:

代码语言:javascript
复制
(x, y) <- integralLim_ f (x0, y0) -< ((dx, dy), w)

现在考虑重力是一个加速值。您可以轻松地将其添加到其他加速值中:

代码语言:javascript
复制
gravity = pure (0, -9.8)
jump    = pure (0, 1000) . holdFor 0.1 (keyPressed space) <|> pure (0, 0)

pos = integralLim_ collision p0 . integral_ v0 . (gravity ^+^ jump)

其中p0是初始位置,v0是初始速度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15930082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档