我有很多对象“块”的实例,我需要添加一个碰撞检测来查看我的精灵是否碰到了一个块。但是不得不复制粘贴和编辑每个代码会花费很多时间,因为我将在每个级别上有大约200个块......在这里它是碰撞检测,是否有任何可能的方式进行循环以便所有块得到例如第一个将是'block.bottomry',然后是'block2.bottomry',第二个和第三个'block3.bottomry'等等,直到所有的块都是不见了。下面是部分代码:我可以为对象的每个实例创建一个循环吗?
public void iscollided() {
// bottom right touching block?
if (sprite.bottomrx < block.bottomrx && sprite.bottomrx > block.bottomlx && sprite.bottomry < block.bottommy && sprite.bottomry > block.topry){
Log.d(TAG, "Collided!!!!!!!!!!!!1");
}
// bottom left touching block?
if (sprite.bottomlx < block.bottomrx && sprite.bottomlx > block.bottomlx && sprite.bottomly < block.bottommy && sprite.bottomly > block.topry){
Log.d(TAG, "Collided!!!!!!!!!!!!1");
}
// top right touching block?
if (sprite.toprx < block.bottomrx && sprite.toprx > block.bottomlx && sprite.topry < block.bottommy && sprite.topry > block.topry){
Log.d(TAG, "Collided!!!!!!!!!!!!1");
}
//top left touching block?
if (sprite.toprx < block.bottomrx && sprite.toprx > block.bottomlx && sprite.topry < block.bottommy && sprite.topry > block.topry){
Log.d(TAG, "Collided!!!!!!!!!!!!1");
}
它看起来像你应该考虑存储在[收藏](http://docs.oracle您块的.com/JavaSE的/教程/集合/前奏/ index.html的) – Richante 2012-04-09 13:01:54