扔纸团游戏里面纸团的运行曲线是怎么实现的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
xdedm
V2EX    游戏开发

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

  •  
  •   xdedm 2015-12-16 19:28:52 +08:00 5164 次点击
    这是一个创建于 3586 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    自己弄也很麻烦啊
    linhua
        8
    linhua  
       2015-12-16 20:13:05 +08:00
    从原理来看:
    算出每一帧(一般 1 秒 24 帧)的坐标不就行了。不过如果考虑到程序的执行时间,可能需要延迟一下,以实现下一帧的时间点到了,再绘制这一帧的数据的功能。这就复杂了。
    lizhenda
        9
    lizhenda  
       2015-12-16 20:23:11 +08:00
    说白了就是直接 setPosition ,通过公式算每帧的位置然后 update 里面更新。
    其实最简单的使用 box2d , cocos2d-x 有 2 个支持的物理引擎,你可以自己选择。
    噢,对了, 3.x 默认整合物理引擎到 Physics 里面了( Scene::createWithPhysics())你可以自己百度
    czk1997
        10
    czk1997  
       2015-12-17 07:27:36 +08:00
    没有外力作用的情况下……
    这不就是斜抛运动么……
    当然你要考虑空气阻力,这个不是特别好算…………
    据形状不同,速度不同,空气阻力会变……
    但是变化不会特别大,所以可以考虑设置个定值或者微弱的递减……
    regeditms
        11
    regeditms  
       2015-12-17 09:18:37 +08:00
    用贝塞尔曲线 实现一个抛物线轨迹,然后让纸团运行吧,简单是这样处理。
    Comdex
        12
    Comdex  
       2015-12-17 09:50:04 +08:00
    搞安卓么?安卓里有个贝塞尔曲线的方法。。。。。
    xdedm
        13
    xdedm  
    OP
       2015-12-17 11:22:31 +08:00
    贝塞尔曲线的却可以描绘曲线,但是每次仍纸团的角度不一样(或者考虑风速不一样), 对应贝塞尔曲线需要选取的控制点也每次都不一样, 所以这里就有每次控制点选取的问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3834 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 05:11 PVG 13:11 LAX 22:11 JFK 01:11
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86