⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 collisionmanager.java

📁 一个java的免费游戏引擎,里面有文档,和例子
💻 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 + -