AD: jr (at) javaresearch.org
首页
|
动态
|
文章
|
FAQ
|
新闻
|
下载
|
代码
|
工作
|
调查
|
术语
|
站点
|
图书
|
论坛
|
帮助
|
全部
TOP
|
交流
|
软件
|
专栏
|
开源
|
译/著
|
源码
|
API
|
推荐
|
FTP
|
积分
|
统计
|
搜索
|
Blog
|
我们
首页
»
研究文集
»
J2ME综合
搜索标题相关文章
发表评论
开始监控
加入收藏夹
j2me游戏步长的简单算法
lu_-yi
原创 更新:2007-01-11 19:49:47 版本: 1.0
滑步只跟步长有关,就是一轮人物行走(或跑步)实际移动的像素。
当然国产游戏大多做的不好。大多数根本不去认真做人物行走的播放程序,简单一帧帧播放动画,并随意移动小人在地图上的位置了事。
防止滑步又可以随意改变人物移动速度的方法是这样的:
将走路的程序用步长和步速两个量来控制。步长必须定死,按做出来的图片中小人一组动画下来,移动的像素为准。
步速是任意的,可以用游戏每帧或每 1/100 秒,人物移动的像素数来表示(可以是小数,比如每帧刷新移动 1.2 个像素)。
简化讲解,我以横版水平移动走路举例:(斜视角可以类推)
假设步长为 step(pixel),步速为 speed(pixel/frame),人物行走动画帧数为 n(frame)。
注: 其中 step 和 speed 可以是小数; n 是整数。 以下运算全部是浮点运算,真实游戏酌情考虑用定点数。
现在要把人物从坐标 0 移动到 100。
我们可以算出,这个过程是需要 100/speed 帧来完成的。
那么第 i 帧画面,人物在的位置:
pos=i*100/speed
这个时候,需要画第几帧图象呢?
首先我们需要知道第 i 帧画面,也就是 pos 这个位置,人物已经走了t=|pos/step| 步 (t 取整了);
我们的小人正在走在第 t+1 步的 m=(pos-t*step) * 100% 时刻m 是一个 0~1 之间的数字。
f=|n*m| 就是我们在此时刻需要画的行走图片帧了。
加快行走速度,无非是加快了频率,不可能导致滑步的,因为一步迈出的距离根本不会变。
ps. 对于跑步、有腾空,轻微滑步是允许的,所以可以适当加大步长是允许的。
版权声明
给作者写信
本篇文章对您是否有帮助? 投票:
是
否
投票结果:
9
0
作者其它文章:
使用Java编写Palm OS程序的解决方案(二)
使用Java编写Palm OS程序的解决方案(一)
如何在Jini,RMI和Applet中实现代码签名
使用AWT可将Graphics对象转换为Image对象
用JFC/Swing将可访问性构建到您的Java应用程序中
作者全部文章
评论人:
lovefeng
发表时间: Fri Dec 14 14:47:10 CST 2007
我们就是调好帧数就完了,至于 滑步 也会 出现 ,再改一下 就 可以避免 了 ,你说 的 我们 倒没考 滤。
这个文章共有
1
条评论
上一篇文章
返回〔J2ME综合〕
下一篇文章
文字广告链接
自主、快速定制基于JAVA的B/S业务系统
重量级企业在线自定义WEB报表平台
Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多
资讯
和
博客精选文章
关于 JR
|
版权声明
|
联系我们
©2002-2006 JR 版权所有
沪ICP备05019622号