|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学习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
在程序中,只必要将下面的前提转换成代码就能够了。
下面先容的只是最基础的碰撞检测算法的完成,而实践的编程过程当中碰到的碰撞检测成绩要比这些庞大良多,还必要其他情势的检测,还必要举行加倍深切的进修。
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。 |
|