很早以前的一个想法,今天终于实现了。此次做了2个版本:
1、第一个版本使用的很多Jlabel做的,数据都是写死的。并且失败了。
2、使用绘画做的,可以更改数据,成功实现。地图使用的二维数组存储,可以更改每行和每列的显示数量,但是我使用的图片是60x60的,不知道会不会自动缩放。目前没遇到BUG。
先上段效果图:
package com.maps;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
/**
* 绘画Java手游地图<br>
* 下方未对地图长度作判断,使用的数组下标都是[0]开始<br>
* 所以只要maps的长度大于[0][0]即可
*
* @author iu_chang
*
*/
public class Map extends JFrame {
private static final long serialVersionUID = 1L;
/**
* 20x20 地图:<br>
* 1为普通路段:灰色<br>
* 2为草地:浅绿<br>
* 3为桥:棕色<br>
* 4为河流:蓝色<br>
* 5为墙壁:白色<br>
* 6为树木:深绿<br>
* 1、2、3可通过,4、5、6不可通过
*
*/
private Integer[][] maps = { { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
{ 5, 2, 2, 2, 2, 2, 2, 5, 5, 4, 2, 2, 2, 2, 5, 2,