📄 collisionmanager.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;
import com.golden.gamedev.object.collision.CollisionRect;
import java.awt.image.BufferedImage;
// Referenced classes of package com.golden.gamedev.object:
// SpriteGroup
public abstract class CollisionManager
{
private SpriteGroup a;
private SpriteGroup b;
private boolean c;
private static final CollisionRect d = new CollisionRect();
public CollisionManager()
{
c = true;
}
public void setCollisionGroup(SpriteGroup spritegroup, SpriteGroup spritegroup1)
{
a = spritegroup;
b = spritegroup1;
}
public SpriteGroup getGroup1()
{
return a;
}
public SpriteGroup getGroup2()
{
return b;
}
public abstract void checkCollision();
public boolean isActive()
{
return c;
}
public void setActive(boolean flag)
{
c = flag;
}
public static boolean isPixelCollide(double d1, double d2, BufferedImage bufferedimage, double d3, double d4, BufferedImage bufferedimage1)
{
int i;
int j;
int l;
int i1;
int j1;
double d5 = (d1 + (double)bufferedimage.getWidth()) - 1.0D;
double d6 = (d2 + (double)bufferedimage.getHeight()) - 1.0D;
double d7 = (d3 + (double)bufferedimage1.getWidth()) - 1.0D;
double d8 = (d4 + (double)bufferedimage1.getHeight()) - 1.0D;
i = (int)Math.max(d1, d3);
j = (int)Math.max(d2, d4);
int k = (int)Math.min(d5, d7);
l = Math.abs((int)Math.min(d6, d8) - j);
i1 = Math.abs(k - i);
j1 = 1;
goto _L1
_L6:
int k1;
int l1;
int i2;
k1 = Math.abs(j - (int)d2) + j1;
l1 = Math.abs(j - (int)d4) + j1;
i2 = 1;
goto _L2
_L4:
int j2;
int k2;
j2 = Math.abs(i - (int)d1) + i2;
k2 = Math.abs(i - (int)d3) + i2;
if((bufferedimage.getRGB(j2, k1) & 0xff000000) != 0 && (bufferedimage1.getRGB(k2, l1) & 0xff000000) != 0)
return true;
continue; /* Loop/switch isn't completed */
JVM INSTR pop ;
i2++;
_L2:
if(i2 < i1 - 1) goto _L4; else goto _L3
_L3:
j1++;
_L1:
if(j1 < l - 1) goto _L6; else goto _L5
_L5:
return false;
}
public static CollisionRect getIntersectionRect(double d1, double d2, int i, int j, double d3,
double d4, int k, int l)
{
double d5 = d1 + (double)i;
double d6 = d2 + (double)j;
double d7 = d3 + (double)k;
double d8 = d4 + (double)l;
if(d1 < d3)
d1 = d3;
if(d2 < d4)
d2 = d4;
if(d5 > d7)
d5 = d7;
if(d6 > d8)
d6 = d8;
d5 -= d1;
d6 -= d2;
d.setBounds(d1, d2, (int)d5, (int)d6);
return d;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -