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

📄 minimapviewer.java

📁 tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的
💻 JAVA
字号:
/* *  Tiled Map Editor, (c) 2004-2006 * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. *  *  Adam Turk <aturk@biggeruniverse.com> *  Bjorn Lindeijer <b.lindeijer@xs4all.nl> *  Rainer Deyke <rainerd@eldwood.com> */package tiled.mapeditor.widget;import java.awt.*;import java.awt.image.BufferedImage;import javax.swing.JPanel;import javax.swing.JScrollPane;import tiled.view.MapView;public class MiniMapViewer extends JPanel{    public static final int MAX_HEIGHT = 150;    private MapView myView;    private JScrollPane mainPanel;    private double scale = 0.0625;    private BufferedImage renderedMap;        public MiniMapViewer() {        setSize(MAX_HEIGHT, MAX_HEIGHT);    }    public MiniMapViewer(MapView view) {        this();        setView(view);    }    public void setView(MapView view) {        myView = view;        myView.setZoom(scale);        Dimension d = myView.getPreferredSize();        renderedMap = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_ARGB);        //scale = MAX_HEIGHT / (double)d.height;        Graphics2D g = renderedMap.createGraphics();        g.setClip(0, 0, d.width, d.height);        myView.paint(g);    }        public Dimension getPreferredSize() {        if(myView != null) {            return myView.getPreferredSize();        }        return new Dimension(0, 0);    }        public Dimension getPreferredScrollableViewportSize() {        return getPreferredSize();    }        public void setMainPanel(JScrollPane main) {        mainPanel = main;    }    public void refresh() {        if(renderedMap != null && myView != null) {            Dimension d = myView.getPreferredSize();	        Graphics2D g = renderedMap.createGraphics();	        g.setClip(0, 0, d.width, d.height);	        myView.paint(g);        }    }        public void paint(Graphics g) {        /*if (myView != null) {            myView.paint(g);        }*/        if(renderedMap != null) {            g.drawImage(renderedMap, 0, 0, null);        }                if (mainPanel != null) {            g.setColor(Color.yellow);            Rectangle viewArea = mainPanel.getViewport().getBounds();            //Rectangle viewArea = mainPanel.getViewportBorderBounds();            if (viewArea != null) {                //System.out.println(viewArea.x+","+viewArea.y);                g.drawRect(                        (int)((viewArea.x-1) * scale),                        (int)((viewArea.y-1) * scale),                        (int)((viewArea.width-1) * scale),                        (int)((viewArea.height-1) * scale));            }        }    }}

⌨️ 快捷键说明

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