V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Game Engines
Unreal Engine
MyCryENGINE
xdedm

扔纸团游戏里面纸团的运行曲线是怎么实现的?

  •  
  •   xdedm · Dec 16, 2015 · 5553 views
    This topic created in 3792 days ago, the information mentioned may be changed or developed.

    想弄一个扔纸团类似的小游戏,不太清楚纸团飞出去曲线的设计方法,有谁知道指教一下。

    13 replies    2015-12-17 11:22:31 +08:00
    xupefei
        1
    xupefei  
       Dec 16, 2015 via Android
    这有什么指教的啊,受力分析把运动分为垂直和水平两个速度,垂直方向加速度是重力,水平方向速度恒定。如果考虑‘空气阻力的话另说。
    具体的公式请参考初高中物理课本…
    jwk345
        2
    jwk345  
       Dec 16, 2015 via iPhone
    高中物理,抛物线
    l6751902
        3
    l6751902  
       Dec 16, 2015
    ax^2+bx+c=y
    Daniel65536
        4
    Daniel65536  
       Dec 16, 2015 via iPhone
    高中物理基本知识……

    你需要两个变量 Vx Vy ,就是 x 方向速度与 y 方向速度,然后一个重力加速度 g 。
    每帧纸团横向运动 Vx 个像素,纵向移动 Vy 个像素,然后给 Vy 加上 g 以模拟重力加速度对 y 方向速度的影响。
    还可以进一步模拟空气阻力,高速情况下阻力与物体运动速度的平方成正比,低速情况下阻力与物体运动速度成正比,模拟同样是每帧计算阻力大小算出下一帧的新速度。
    xdedm
        5
    xdedm  
    OP
       Dec 16, 2015
    额 如果具体到 cocos2dx 引擎该是怎么样的呢? 横向匀速,纵向加速,横向直接 moveto ,纵向的匀加速的过程怎么模拟呢?
    ETiV
        6
    ETiV  
       Dec 16, 2015
    加个物理引擎吧, 不用你自己算.
    dqh3000
        7
    dqh3000  
       Dec 16, 2015
    建议使用一个物理引擎

    然后只要提供初始加速度就自己计算了

    自己弄也很麻烦啊
    linhua
        8
    linhua  
       Dec 16, 2015
    从原理来看:
    算出每一帧(一般 1 秒 24 帧)的坐标不就行了。不过如果考虑到程序的执行时间,可能需要延迟一下,以实现下一帧的时间点到了,再绘制这一帧的数据的功能。这就复杂了。
    lizhenda
        9
    lizhenda  
       Dec 16, 2015
    说白了就是直接 setPosition ,通过公式算每帧的位置然后 update 里面更新。
    其实最简单的使用 box2d , cocos2d-x 有 2 个支持的物理引擎,你可以自己选择。
    噢,对了, 3.x 默认整合物理引擎到 Physics 里面了( Scene::createWithPhysics())你可以自己百度
    czk1997
        10
    czk1997  
       Dec 17, 2015
    没有外力作用的情况下……
    这不就是斜抛运动么……
    当然你要考虑空气阻力,这个不是特别好算…………
    据形状不同,速度不同,空气阻力会变……
    但是变化不会特别大,所以可以考虑设置个定值或者微弱的递减……
    regeditms
        11
    regeditms  
       Dec 17, 2015
    用贝塞尔曲线 实现一个抛物线轨迹,然后让纸团运行吧,简单是这样处理。
    Comdex
        12
    Comdex  
       Dec 17, 2015
    搞安卓么?安卓里有个贝塞尔曲线的方法。。。。。
    xdedm
        13
    xdedm  
    OP
       Dec 17, 2015
    贝塞尔曲线的却可以描绘曲线,但是每次仍纸团的角度不一样(或者考虑风速不一样), 对应贝塞尔曲线需要选取的控制点也每次都不一样, 所以这里就有每次控制点选取的问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   800 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 20:01 · PVG 04:01 · LAX 13:01 · JFK 16:01
    ♥ Do have faith in what you're doing.