📄 advancecollisiongroup.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.Sprite;
import com.golden.gamedev.object.SpriteGroup;
import com.golden.gamedev.util.Utility;
import java.util.*;
// Referenced classes of package com.golden.gamedev.object.collision:
// PreciseCollisionGroup
public abstract class AdvanceCollisionGroup extends PreciseCollisionGroup
implements Comparator
{
private final Map b = new HashMap();
private Sprite c;
static Class a;
public AdvanceCollisionGroup()
{
}
public void checkCollision()
{
b.clear();
SpriteGroup spritegroup = getGroup1();
SpriteGroup spritegroup1 = getGroup2();
Sprite asprite4[];
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))
{
Sprite asprite2[];
asprite4 = (Sprite[])Utility.expand((Sprite[])b.get(sprite), 1, true, a != null ? a : (a = a("com.golden.gamedev.object.Sprite")));
asprite2 = asprite4;
asprite4[asprite4.length - 1] = sprite1;
b.put(sprite, asprite2);
}
}
}
}
for(Iterator iterator = b.keySet().iterator(); iterator.hasNext();)
{
Sprite sprite2 = (Sprite)iterator.next();
Sprite asprite3[];
if((asprite3 = (Sprite[])b.get(sprite2)).length == 1)
{
collided(sprite2, asprite3[0]);
} else
{
c = sprite2;
if(sort(c))
Arrays.sort(asprite3, this);
for(int i1 = 0; i1 < asprite3.length; i1++)
{
if(!sprite2.isActive())
break;
if(asprite3[i1].isActive() && isCollide(sprite2, asprite3[i1], getCollisionShape1(sprite2), getCollisionShape2(asprite3[i1])))
collided(sprite2, asprite3[i1]);
}
}
}
}
}
protected boolean sort(Sprite sprite)
{
return true;
}
public int compare(Object obj, Object obj1)
{
Sprite sprite = (Sprite)obj;
Sprite sprite1 = (Sprite)obj1;
if(c.getHorizontalSpeed() != 0.0D && sprite.getX() != sprite1.getX())
if(c.getHorizontalSpeed() >= 0.0D)
return (int)Math.floor(sprite.getX() - sprite1.getX());
else
return (int)Math.floor(sprite1.getX() - sprite.getX());
if(c.getVerticalSpeed() >= 0.0D)
return (int)Math.floor(sprite.getY() - sprite1.getY());
else
return (int)Math.floor(sprite1.getY() - sprite.getY());
}
protected Sprite getSourceSprite()
{
return c;
}
public Map getStorage()
{
return b;
}
static Class a(String s)
{
return Class.forName(s);
ClassNotFoundException classnotfoundexception;
classnotfoundexception;
throw new NoClassDefFoundError(classnotfoundexception.getMessage());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -