JR 精品文章 - j2me游戏步长的简单算法
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. 对于跑步、有腾空,轻微滑步是允许的,所以可以适当加大步长是允许的。


版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     10       0
作者其它文章: 作者全部文章
评论人:lovefeng 发表时间: Fri Dec 14 14:47:10 CST 2007
我们就是调好帧数就完了,至于 滑步 也会 出现 ,再改一下 就 可以避免 了  ,你说 的 我们 倒没考 滤。

这个文章共有 1 条评论
主题: 详细介绍声音处理 上一篇文章
返回文章列表 返回〔J2ME综合〕
下一篇文章 主题: 利用java做一个简单的计算器


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号