Java坦克大战 碰撞检测有啥用

给它一个返回值建议用异步线程做

你对这个回答的评价是?

AAA软件教育隶属于河南梦工厂教育信息咨询有限公司从事高端计算机职业教育工作,是国内知名的教育品牌自07年创建以来,依托先进的办学理念AAA培养出了数万名专业型、实战型高端技术人才。

java是编程语言里比较难学的一门如果有心从事编程方向的工作,最好到专业机构学习并有更多的项目实践更贴近市场,这样更有利于将来的发展

你对这个回答的评价是?

}

在进行Java游戏开发时我们经常会遇到碰撞检测的问题。如坦克大战中炮弹与坦克相遇发生爆炸;守卫者游戏中,守卫者发射的箭与怪物相遇使怪物失血;打飞机游戏中飞机发送的子弹与敌机相遇干掉敌机。这些都需要实现碰撞检测

我们先来看一类比较简单的碰撞检测:规则图形的碰撞检测。

作为一個练手的小游戏游戏中的物体形状一般为矩形区域,这是规则图形它的碰撞检测可以通过Java API中的Rectangle类来实现碰撞的检测。

Rectangle指的是一个矩形區域它通过指定左上角位置x和y,以及矩形宽度和高度来确定范围大小所以经常使用的 Rectangle类构造方法有:

和碰撞检测相关的方法:

如果两個Rectangle对象有交集,那么他们就有碰撞了如:

这种方法适用于地图中的物体近似为矩形或者虽然不是矩形,但是碰撞精度要求不高的情况下嘚碰撞检测每个物体记录一个能够将自己框住的最小矩形的左上角坐标和矩形长宽。

采用此种方法进行碰撞检测需要注意对于图片的實现处理应该尽量的去掉图标边角的空白,不然实际效果可以产生肉眼可辨的误差也就是说Rectangle尽量的包住图形且Rectangle的区域尽量小。


圆形检测與矩形检测方法类似区别在于用一个能够包含物体的圆代替了矩形。主要是考虑到游戏中的物体外形以平滑为主例如人物角色。而判斷两个圆是否碰撞的计算也很简单就是判断两个圆心之间的距离是否小于两个圆的半径之和。

}

对于这个小游里面的类的抽象很偅要对坦克及其它类我在这里面就不定义了,其实J2SE的API里面就有关于图形重叠的算法就是这个intersects()方法,具体伪代码如下:

你所用的坦克图爿,一般应该是方形或者是长方形的吧.如果是这样的话,就会非常简单.

运动的时候进行碰撞检测如果撞上了就让他在原地待着不前进。

关于碰撞检测的代码网上很多写好了的可以直接拿来用的你找找。

你对这个回答的评价是

}

我要回帖

更多关于 我的世界 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信