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

📄 abstracttilebackground.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.background.abstraction;

import com.golden.gamedev.object.Background;
import java.awt.*;

public abstract class AbstractTileBackground extends Background
{

    private int a;
    private int b;
    private int c;
    private int d;
    private int e;
    private int f;
    private int g;
    private int h;
    private Point i;

    public AbstractTileBackground(int j, int k, int l, int i1)
    {
        super(j * l, k * i1);
        i = new Point();
        a = l;
        b = i1;
        g = j;
        h = k;
        c = d = 0;
        e = f = 0;
    }

    public void render(Graphics2D graphics2d, int j, int k, int l, int i1, int j1, int k1)
    {
        int j2 = l + j1;
        int k2 = i1 + k1;
        int i3 = d;
        for(int i2 = i1 - f; i2 < k2; i2 += b)
        {
            int l2 = c;
            for(int l1 = l - e; l1 < j2; l1 += a)
            {
                renderTile(graphics2d, l2, i3, l1, i2);
                l2++;
            }

            i3++;
        }

    }

    public abstract void renderTile(Graphics2D graphics2d, int j, int k, int l, int i1);

    public void setLocation(double d1, double d2)
    {
        int j = (int)getX();
        int k = (int)getY();
        super.setLocation(d1, d2);
        int l = (int)getX();
        int i1 = (int)getY();
        if(l != j || i1 != k)
        {
            c = l / a;
            d = i1 / b;
            e = l % a;
            f = i1 % b;
        }
    }

    public void setTileLocation(int j, int k)
    {
        setLocation(j * a, k * b);
    }

    public int getTileX()
    {
        return c;
    }

    public int getTileY()
    {
        return d;
    }

    public Point getTileAt(double d1, double d2)
    {
        if(d1 < (double)getClip().x || d1 > (double)(getClip().x + getClip().width) || d2 < (double)getClip().y || d2 > (double)(getClip().y + getClip().height))
        {
            return null;
        } else
        {
            i.x = (int)((getX() + d1) - (double)getClip().x) / a;
            i.y = (int)((getY() + d2) - (double)getClip().y) / b;
            return i;
        }
    }

    public int getOffsetX()
    {
        return e;
    }

    public int getOffsetY()
    {
        return f;
    }

    public int getTileWidth()
    {
        return a;
    }

    public int getTileHeight()
    {
        return b;
    }

    protected void setTileSize(int j, int k)
    {
        a = j;
        b = k;
        super.setSize(g * getTileWidth(), h * getTileHeight());
    }

    public int getTotalHorizontalTiles()
    {
        return g;
    }

    public int getTotalVerticalTiles()
    {
        return h;
    }

    public void setSize(int j, int k)
    {
        g = j;
        h = k;
        super.setSize(j * getTileWidth(), k * getTileHeight());
    }
}

⌨️ 快捷键说明

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