作者kencool107 (脸都歪了)
看板Flash
标题[问题] 持续移动的球 不使用enter_frame
时间Thu Mar 15 14:15:39 2012
场景上有颗持续移动的球 撞到墙会反弹
小弟我目前的做法是用ENTER_FRAME
让球每次的x,y坐标移动
可是有个问题
使用ENTER_FRAME当我今天把FPS调或调低的时候
球的速度就不一样了
请问有没有不使用ENTER_FRAME的解法
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.251.55.25
1F:→ kencool107:补充一下 ,也不想使用TIMER 03/15 14:27
2F:推 jeaby:Tweener 03/15 14:36
3F:→ jeaby:但是碰撞判断还是得用ENTER_FRAME 03/15 14:38
4F:→ ufoufoufo:Tweener不错,不过一般来说FPS应该很少在动态调整吧 03/15 17:21
5F:→ ufoufoufo:建议尽可能先考虑好用的FPS就别改了 20~40都还蛮合理的 03/15 17:21
6F:→ kencool107:可是如果放上IE的话 FPS还是会跟设定的一样吗@@? 03/15 17:34
7F:→ kencool107:不是听说IE会锁flash的资源还什麽的? 03/15 17:35
8F:→ ufoufoufo:基本上在浏览器内执行的一定会比直接在FlashPlayer跑慢 03/15 18:57
9F:→ ufoufoufo:但并不会差太多,如果变的很慢,那就是你程式的问题了 03/15 19:00
10F:→ ufoufoufo:要修正的可能就是程式的效能,而不是调高FPS可以解决的 03/15 19:01
11F:推 jeaby:浏览器在背景的话 flash会有sleep mode的问题 FTP会降 03/15 22:42
12F:推 cjcat2266:还是可以用enter frame来更新位置,只不过方法要从 03/16 06:13
13F:→ cjcat2266:frame-based movement改成time-based movement 03/16 06:13
14F:→ cjcat2266:也就是说用getTimer()计算两个frames之间的时间差 03/16 06:13
15F:→ cjcat2266:然後计算正确的位移量,这跟是不是用enter frame或timer 03/16 06:13
16F:→ cjcat2266:没有任何关系 03/16 06:13
17F:→ cjcat2266:基本上就是利用 x += v * dt 这条式子 03/16 06:14
18F:→ kencool107:楼上精辟 感谢 03/16 09:18