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

📄 gameobject.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;

import com.golden.gamedev.engine.BaseAudio;
import com.golden.gamedev.engine.BaseGraphics;
import com.golden.gamedev.engine.BaseIO;
import com.golden.gamedev.engine.BaseInput;
import com.golden.gamedev.engine.BaseLoader;
import com.golden.gamedev.engine.BaseTimer;
import com.golden.gamedev.object.Background;
import com.golden.gamedev.object.GameFont;
import com.golden.gamedev.object.GameFontManager;
import com.golden.gamedev.object.Sprite;
import com.golden.gamedev.util.ImageUtil;
import com.golden.gamedev.util.Utility;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

// Referenced classes of package com.golden.gamedev:
//            GameEngine

public abstract class GameObject
{

    public final GameEngine parent;
    public BaseGraphics bsGraphics;
    public BaseIO bsIO;
    public BaseLoader bsLoader;
    public BaseInput bsInput;
    public BaseTimer bsTimer;
    public BaseAudio bsMusic;
    public BaseAudio bsSound;
    public GameFontManager fontManager;
    private boolean j;
    private boolean k;

    public GameObject(GameEngine gameengine)
    {
        parent = gameengine;
        b();
    }

    private void b()
    {
        bsGraphics = parent.bsGraphics;
        bsIO = parent.bsIO;
        bsLoader = parent.bsLoader;
        bsInput = parent.bsInput;
        bsTimer = parent.bsTimer;
        bsMusic = parent.bsMusic;
        bsSound = parent.bsSound;
        fontManager = parent.fontManager;
    }

    public final void start()
    {
        b();
        GameFont gamefont = parent.fpsFont;
        if(!k)
        {
            initResources();
            k = true;
        }
        j = false;
        System.gc();
        System.runFinalization();
        bsInput.refresh();
        bsTimer.refresh();
        long l = 0L;
label0:
        do
        {
            update(l);
            parent.update(l);
            bsInput.update(l);
            do
            {
                if(j || !parent.isRunning())
                    break label0;
                Graphics2D graphics2d = bsGraphics.getBackBuffer();
                render(graphics2d);
                parent.render(graphics2d);
                if(!parent.isDistribute())
                {
                    if(graphics2d.getClip() != null)
                        graphics2d.setClip(null);
                    if(graphics2d.getComposite() != null && graphics2d.getComposite() != AlphaComposite.SrcOver)
                        graphics2d.setComposite(AlphaComposite.SrcOver);
                    gamefont.drawString(graphics2d, "FPS = " + getCurrentFPS() + "/" + getFPS(), 9, getHeight() - 21);
                    gamefont.drawString(graphics2d, "GTGE", getWidth() - 65, 9);
                }
            } while(!bsGraphics.flip());
            if((l = bsTimer.sleep()) > 100L)
                l = 100L;
        } while(true);
    }

    public void finish()
    {
        j = true;
    }

    public abstract void initResources();

    public abstract void update(long l);

    public abstract void render(Graphics2D graphics2d);

    public int getRandom(int i, int l)
    {
        return Utility.getRandom(i, l);
    }

    public int getWidth()
    {
        return bsGraphics.getSize().width;
    }

    public int getHeight()
    {
        return bsGraphics.getSize().height;
    }

    public BufferedImage takeScreenShot()
    {
        BufferedImage bufferedimage;
        Graphics2D graphics2d = (bufferedimage = ImageUtil.createImage(getWidth(), getHeight(), 1)).createGraphics();
        render(graphics2d);
        graphics2d.dispose();
        return bufferedimage;
    }

    public void takeScreenShot(File file)
    {
        ImageUtil.saveImage(takeScreenShot(), file);
    }

    public int playMusic(String s)
    {
        return bsMusic.play(s);
    }

    public int playSound(String s)
    {
        return bsSound.play(s);
    }

    public void setFPS(int i)
    {
        bsTimer.setFPS(i);
    }

    public int getCurrentFPS()
    {
        return bsTimer.getCurrentFPS();
    }

    public int getFPS()
    {
        return bsTimer.getFPS();
    }

    public void drawFPS(Graphics2D graphics2d, int i, int l)
    {
        fontManager.getFont("FPS Font").drawString(graphics2d, "FPS = " + getCurrentFPS() + "/" + getFPS(), i, l);
    }

    public int getMouseX()
    {
        return bsInput.getMouseX();
    }

    public int getMouseY()
    {
        return bsInput.getMouseY();
    }

    public boolean checkPosMouse(int i, int l, int i1, int j1)
    {
        return getMouseX() >= i && getMouseY() >= l && getMouseX() <= i1 && getMouseY() <= j1;
    }

    public boolean checkPosMouse(Sprite sprite, boolean flag)
    {
        double d;
        double d1;
        Background background = sprite.getBackground();
        if(getMouseX() < background.getClip().x || getMouseY() < background.getClip().y || getMouseX() > background.getClip().x + background.getClip().width || getMouseY() > background.getClip().y + background.getClip().height)
            return false;
        d = ((double)getMouseX() + background.getX()) - (double)background.getClip().x;
        d1 = ((double)getMouseY() + background.getY()) - (double)background.getClip().y;
        if(!flag)
            break MISSING_BLOCK_LABEL_161;
        if((sprite.getImage().getRGB((int)(d - sprite.getX()), (int)(d1 - sprite.getY())) & 0xff000000) != 0)
            return true;
        return false;
        JVM INSTR pop ;
        return false;
        return d >= sprite.getX() && d1 >= sprite.getY() && d <= sprite.getX() + (double)sprite.getWidth() && d1 <= sprite.getY() + (double)sprite.getHeight();
    }

    public boolean click()
    {
        return bsInput.isMousePressed(1);
    }

    public boolean rightClick()
    {
        return bsInput.isMousePressed(3);
    }

    public boolean keyDown(int i)
    {
        return bsInput.isKeyDown(i);
    }

    public boolean keyPressed(int i)
    {
        return bsInput.isKeyPressed(i);
    }

    public void hideCursor()
    {
        bsInput.setMouseVisible(false);
    }

    public void showCursor()
    {
        bsInput.setMouseVisible(true);
    }

    public void setMaskColor(Color color)
    {
        bsLoader.setMaskColor(color);
    }

    public BufferedImage getImage(String s, boolean flag)
    {
        return bsLoader.getImage(s, flag);
    }

    public BufferedImage getImage(String s)
    {
        return bsLoader.getImage(s);
    }

    public BufferedImage[] getImages(String s, int i, int l, boolean flag)
    {
        return bsLoader.getImages(s, i, l, flag);
    }

    public BufferedImage[] getImages(String s, int i, int l)
    {
        return bsLoader.getImages(s, i, l);
    }

    public BufferedImage[] getImages(String s, int i, int l, boolean flag, String s1, int i1)
    {
        String s2 = s + s1 + i1;
        BufferedImage abufferedimage[];
        if((abufferedimage = bsLoader.getStoredImages(s2)) == null)
        {
            BufferedImage abufferedimage1[] = getImages(s, i, l, flag);
            int j1;
            abufferedimage = new BufferedImage[j1 = s1.length() / i1];
            for(int k1 = 0; k1 < j1; k1++)
                abufferedimage[k1] = abufferedimage1[Integer.parseInt(s1.substring(k1 * i1, (k1 + 1) * i1))];

            bsLoader.storeImages(s2, abufferedimage);
        }
        return abufferedimage;
    }

    public BufferedImage[] getImages(String s, int i, int l, String s1, int i1)
    {
        return getImages(s, i, l, true, s1, i1);
    }

    public BufferedImage[] getImages(String s, int i, int l, boolean flag, int i1, int j1)
    {
        String s1 = i1 + s + j1;
        BufferedImage abufferedimage[];
        if((abufferedimage = bsLoader.getStoredImages(s1)) == null)
        {
            BufferedImage abufferedimage1[] = getImages(s, i, l, flag);
            int k1;
            abufferedimage = new BufferedImage[k1 = (j1 - i1) + 1];
            for(int l1 = 0; l1 < k1; l1++)
                abufferedimage[l1] = abufferedimage1[i1 + l1];

            bsLoader.storeImages(s1, abufferedimage);
        }
        return abufferedimage;
    }

    public BufferedImage[] getImages(String s, int i, int l, int i1, int j1)
    {
        return getImages(s, i, l, true, i1, j1);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -