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

📄 camera.java

📁 Sony Ericsson手机上的Facebook客户端全套代码
💻 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) 
// Source File Name:   Camera.java

package se.southend.drops.scene;


// Referenced classes of package se.southend.drops.scene:
//            Node

public class Camera
{

    public Camera()
    {
        setTargetSpeed(64);
        setCameraSpeed(4);
        setCenter(Node.SCREEN_WIDTH >> 1, Node.SCREEN_HEIGHT >> 1);
        resetBounds();
    }

    public final int getX()
    {
        return xCam >> 8;
    }

    public final int getY()
    {
        return yCam >> 8;
    }

    public final int getWorldX()
    {
        return xCam;
    }

    public final int getWorldY()
    {
        return yCam;
    }

    public final int getLeft()
    {
        return (xCam >> 8) - (Node.SCREEN_WIDTH >> 1);
    }

    public final int getRight()
    {
        return (xCam >> 8) + (Node.SCREEN_WIDTH >> 1);
    }

    public final int getTop()
    {
        return (yCam >> 8) - (Node.SCREEN_HEIGHT >> 1);
    }

    public final int getBottom()
    {
        return (yCam >> 8) + (Node.SCREEN_HEIGHT >> 1);
    }

    public final int getScreenX(int xWorld)
    {
        return (xWorld - xCam >> 8) + xCenter;
    }

    public final int getScreenY(int yWorld)
    {
        return (yWorld - yCam >> 8) + yCenter;
    }

    public final void resetBounds()
    {
        xMin = 0x80000000;
        yMin = 0x80000000;
        xMax = 0x7fffffff;
        yMax = 0x7fffffff;
    }

    public final void setBounds(int left, int top, int right, int bottom)
    {
        xMin = left;
        yMin = top;
        xMax = right < left ? left : right;
        yMax = bottom < top ? top : bottom;
    }

    public final void setCenter(int x, int y)
    {
        xCenter = x;
        yCenter = y;
    }

    public final void setCameraSpeed(int speed)
    {
        speedCam = speed;
    }

    public final void setTargetSpeed(int speed)
    {
        speedTgt = speed;
    }

    public final boolean onTarget()
    {
        return distanceFromTarget() < 256;
    }

    public final int distanceFromTarget()
    {
        int xDist = xCam - xTgt;
        int yDist = yCam - yTgt;
        if(xDist < 0)
            xDist = -xDist;
        if(yDist < 0)
            yDist = -yDist;
        return xDist <= yDist ? yDist : xDist;
    }

    public final void setWorldPosition(int x, int y)
    {
        xTgt = xWay = xCam = x;
        yTgt = yWay = yCam = y;
    }

    public final void setTargetPosition(int x, int y)
    {
        xTgt = x;
        yTgt = y;
    }

    public void process()
    {
        xWay += (xTgt - xWay) * speedTgt >> 6;
        yWay += (yTgt - yWay) * speedTgt >> 6;
        if(xWay < xMin)
        {
            xWay = xMin;
            xTgt = xMin;
        } else
        if(xWay > xMax)
        {
            xWay = xMax;
            xTgt = xMax;
        }
        if(yWay < yMin)
        {
            yWay = yMin;
            yTgt = yMin;
        } else
        if(yWay > yMax)
        {
            yWay = yMax;
            yTgt = yMax;
        }
        xCam += (xWay - xCam) * speedCam >> 6;
        yCam += (yWay - yCam) * speedCam >> 6;
    }

    public static final int INSTANT = 64;
    private int xCam;
    private int yCam;
    private int xWay;
    private int yWay;
    private int xTgt;
    private int yTgt;
    private int speedCam;
    private int speedTgt;
    private int xCenter;
    private int yCenter;
    private int xMin;
    private int yMin;
    private int xMax;
    private int yMax;
}

⌨️ 快捷键说明

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