当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

J2ME中的底子碰撞检测算法浅析[Java编程]

赞助商链接



  本文“J2ME中的底子碰撞检测算法浅析[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在游戏中,常常需求举行碰撞检测的实现,比方判断前面能否有障碍以及判断子弹能否击中飞机,都是检测两个物体能否发生碰撞,然后按照检测的后果做出差别的处理. 举行碰撞检测的物体大概有些的形状和复杂,这些需求举行组合碰撞检测,就是将复杂的物体处理成一个一个的基本形状的组合,然后辨别举行差别的检测.

下面简单介绍一下两种最基本的形状举行碰撞的时刻举行的处理.

1、矩形和矩形举行碰撞

普通法则的物体碰撞都可以处理成矩形碰撞,实现的原理就是检测两个矩形能否重叠.我们假定矩形1的参数是:左上角的坐标是(x1,y1),宽度是w1,高度是h1;矩形2的参数是:左上角的坐标是(x2,y2),宽度是w2,高度是h2.

在检测时,数学上可以处理成对比中央点的坐标在x和y方向上的距离和宽度的关系.即两个矩形中央点在x方向的距离的绝对值小于等于矩形宽度和的二分之一,同时y方向的距离的绝对值小于等于矩形高度和的二分之一.下面是数学表达式:

x方向:| (x1 + w1 / 2) – (x2 + w2/2) | < |(w1 + w2) / 2|

y方向:| (y1 + h1 / 2) – (y2 + h2/2) | < |(h1 + h2) / 2|

在程序中,只需求将上面的条件转换成代码便可以实现了.

但是矩形碰撞只是一种对比粗糙的碰撞检测办法,因为很多实际的物体大概不是一个法则的矩形.

下面介绍一下圆形碰撞.

2、圆形和圆形的碰撞

圆形和圆形的碰撞应当说是一种最简单的碰撞,因为在数学上关于两个圆形能否发生重叠,有计算两个圆心之间的距离的公式.那么条件就变成:计算两个圆心之间的距离能否小于两个圆的半径和.

假定圆形1的左上角坐标是(x1,y1),半径是r1,圆形2的左上角的坐标是(x2,y2),半径是r2.

因为MIDP1.0中没有浮点数,并且浮点数的运算对比慢,所以我们将条件做一个简单的变更:关于条件的两边都举行平方,这样就去掉了开方的运算步骤.

下面是数学表达式:

(x1 – x2)2 + (y1 – y2)2 < (r1 + r2)2

在程序中,只需求将上面的条件转换成代码便可以了.

上面介绍的只是最基本的碰撞检测算法的实现,而实际的编程历程中碰到的碰撞检测问题要比这些复杂很多,还需求其他情势的检测,还需求举行越发深化的学习.


  以上是“J2ME中的底子碰撞检测算法浅析[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • j2me创意-Wap浏览器的源代码
  • J2ME中读取Unicode和UTF-8编码文件
  • J2ME中的底子碰撞检测算法浅析
  • <b>关于j2me game双缓冲实现根究</b>
  • J2ME游戏开辟学习之用setClip分割图片
  • 在J2ME/MIDP中实现图象旋转
  • 初学j2me必读 网友学习笔记
  • 操纵J2ME程序测试MIDlet的生命周期
  • J2ME中操纵缓存将屏幕内容存储为Image
  • 操纵J2ME技术开辟RPG游戏之按键处理机制
  • J2ME中setClip办法操纵详解
  • 在J2ME手机程序开辟中操纵颜色
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .