项目是一个网页游戏, 前端使用的是jquery, jqueryui...
目前的战斗是文字描述, 客户要求将战斗画面修改为动画方式的...就类似于回合制游戏那样的效果就ok..由于公司整体对flash不熟悉, 所以, 想通过javascript操作多帧图片的方式来实现动画的播放..请有经验的前辈分析下这个思路是否可行, 难点是什么, 需要注意的问题有哪些..非常感谢...
目前的战斗是文字描述, 客户要求将战斗画面修改为动画方式的...就类似于回合制游戏那样的效果就ok..由于公司整体对flash不熟悉, 所以, 想通过javascript操作多帧图片的方式来实现动画的播放..请有经验的前辈分析下这个思路是否可行, 难点是什么, 需要注意的问题有哪些..非常感谢...
绝对可以你再csdn上搜索哈 以前有个牛人 用js做了个网页的游戏的还非常复杂
用JS做动画
-----------------
可以是可以
但还是建议考虑周详再下决定吧
http://bbs.51js.com/viewthread.php?tid=18944&extra=page%3D1&page=1
http://pvz.lonelystar.org/
如果用js做,一般玩这个游戏的人机器资源占用率非常高。
开源的,参考吧。
"老吾老以及人之老"是什么意思? 这个一直没搞懂...我做了测试, 如16楼所说, 是setTimeout做的.
但是, js引擎貌似对时间不是非常非常敏感, 我测试时每帧间隔为20毫秒, chrome每两次会有1秒的时间差, firefox上下偏差最大会达到5秒左右, ie就更不用说了, 看数据貌似ie6的js引擎时间精度达不到毫秒...
由于上面的原因, 出来的动画会有严重的闪烁, 即便再chrome下, 平稳的1秒偏差肉眼看到的闪烁也是非常严重的.....
下面是测试产生数据(其实就是递归setTimeout, 实际执行时间与预期不一致)
首先是chrome的时间戳(毫秒/ms) 实际每帧间隔(毫秒/ms)
1297675020061 0
1297675020082 21
1297675020102 20
1297675020123 21
1297675020143 20
1297675020164 21
1297675020184 20
1297675020205 21
1297675020225 20
1297675020246 21
1297675020266 20
1297675020287 21
1297675020307 20
1297675020328 21
1297675020348 20
1297675020369 21
1297675020389 20
1297675020410 21
1297675020430 20下面是firefox的
时间戳(毫秒/ms) 实际每帧间隔(毫秒/ms)
1297675632019 0
1297675632035 16
1297675632051 16
1297675632067 16
1297675632085 18
1297675632104 19
1297675632123 19
1297675632144 21
1297675632167 23
1297675632189 22
1297675632212 23
1297675632233 21
1297675632253 20
1297675632273 20
1297675632294 21
1297675632315 21
1297675632336 21
1297675632356 20
1297675632376 20IE的, 帧间隔基本都是10ms倍数时间戳(毫秒/ms) 实际每帧间隔(毫秒/ms)
1297675663896 0
1297675663916 20
1297675663936 20
1297675663956 20
1297675663976 20
1297675663996 20
1297675664016 20
1297675664036 20
1297675664056 20
1297675664076 20
1297675664096 20
1297675664116 20
1297675664137 21
1297675664177 40
1297675664217 40
1297675664237 20
1297675664257 20
1297675664287 30
1297675664307 20
当然,图片由于用户不同的网络传输速度会导致加载的速度也不同,这就有个小技巧,利用图片的onload事件。
而setTimeout方法也还有一些可以优化的地方,比如可以利用图片预读取和CSS sprites等技术,减少切换图片时的读取所耗时间。不过,一秒十几帧的速度,用JS切换,性能总是差点,还是GIF,不仅代码省事,在这个问题上也省事不用去操心了。开始也说了,如果图像效果要求高(比如还可能会想要一些特效什么的——现在没个光影特效都不算真入流。公司产品和个人玩是两个级别要求),还是用FLASH比较好。所以从项目管理角度来说,应该首先建立界面演示,和用户达成一致意见再决定如何具体做。而这个演示和一致意见,当然是越低越好,以利于你们的开发实施(从个人角度我宁愿费点劲做个尽可能好的,不过从团队的角度来说,只能找个平衡点了),这个能达到什么效果,取决于沟通能力和其它很多因素了(很多,没法说)。从你开始的问题看,原来都是文字的,那么变成动画的似乎可以不必要求太高——拿剑,出剑,两幅图切换一下,一个动作就完事了(人需要扑上去吗,不用嘛,劈空波啊,唰唰唰,这就用到光影特效了,弄个透明GIF在倒霉鬼身上爆一爆就好了,他的状态再改成前躬或后仰式,场面就交待完了)。总之,能简化就简化,意思到位就好了。要拔高还是找FLASH。
所以, 公司目前开始研究flash了..动画的模型很早就在做了, 反正我不懂, 看着挺复杂挺炫的....5555其实, 我倒是想老, 可惜没那么多经验...
setInterval
修改了setInterval, 还是一样的效果.....
不过太占资源了。