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