📄 basiccollisiongroup.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
package com.golden.gamedev.object.collision;
import com.golden.gamedev.object.*;
// Referenced classes of package com.golden.gamedev.object.collision:
// CollisionRect, CollisionShape
public abstract class BasicCollisionGroup extends CollisionManager
{
protected final CollisionRect rect1 = new CollisionRect();
protected final CollisionRect rect2 = new CollisionRect();
public boolean pixelPerfectCollision;
public BasicCollisionGroup()
{
}
public CollisionShape getCollisionShape1(Sprite sprite)
{
rect1.setBounds(sprite.getX(), sprite.getY(), sprite.getWidth(), sprite.getHeight());
return rect1;
}
public CollisionShape getCollisionShape2(Sprite sprite)
{
rect2.setBounds(sprite.getX(), sprite.getY(), sprite.getWidth(), sprite.getHeight());
return rect2;
}
public void checkCollision()
{
SpriteGroup spritegroup = getGroup1();
SpriteGroup spritegroup1 = getGroup2();
if(spritegroup.isActive() && spritegroup1.isActive())
{
Sprite asprite[] = spritegroup.getSprites();
Sprite asprite1[] = spritegroup1.getSprites();
int i = spritegroup.getSize();
int j = spritegroup1.getSize();
for(int k = 0; k < i; k++)
{
Sprite sprite;
CollisionShape collisionshape;
if((sprite = asprite[k]).isActive() && (collisionshape = getCollisionShape1(sprite)) != null)
{
for(int l = 0; l < j; l++)
{
Sprite sprite1;
CollisionShape collisionshape1;
if(!(sprite1 = asprite1[l]).isActive() || sprite == sprite1 || (collisionshape1 = getCollisionShape2(sprite1)) == null || !isCollide(sprite, sprite1, collisionshape, collisionshape1))
continue;
collided(sprite, sprite1);
i = spritegroup.getSize();
j = spritegroup1.getSize();
if(!sprite.isActive() || (collisionshape = getCollisionShape1(sprite)) == null)
break;
}
}
}
}
}
public boolean isCollide(Sprite sprite, Sprite sprite1, CollisionShape collisionshape, CollisionShape collisionshape1)
{
if(!pixelPerfectCollision)
return collisionshape.intersects(collisionshape1);
if(collisionshape.intersects(collisionshape1))
return CollisionManager.isPixelCollide(sprite.getX(), sprite.getY(), sprite.getImage(), sprite1.getX(), sprite1.getY(), sprite1.getImage());
else
return false;
}
public abstract void collided(Sprite sprite, Sprite sprite1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -