package ss;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* 1.继承窗体类为当前类的父类
* @author lizhicheng
*
*/
public class PushBox extends JFrame implements KeyListener{
/**
* 3.声明一个二维数组的地图
*/
int[][] maps=
{
{3,3,3,3,3,3,3,3},
{3,0,0,0,0,0,0,3},
{3,0,0,0,0,2,0,3},//3表示墙
{3,0,0,0,3,0,3,3},//2表示箱子
{3,0,0,1,0,0,0,3},//1表示人
{3,0,3,0,2,0,0,3},//0表示空地
{3,0,0,0,0,0,0,3},
{3,3,3,3,3,3,3,3},
};
/**
* 6.声明两个变量来保存图标的起始位置
*
*/
int top=10,left=25;
int posX=3,posY=4;//保存大力水手的位置
/**
* 2.构造方法添加固定的窗体设置
*/
public PushBox()
{
//设置标题
this.setTitle("http://ai.52learn.online");
//设置窗体大小
this.setSize(500, 350);
//设置窗体默认关闭操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体可见
this.setVisible(true);
//设置窗体居中显示
this.setLocationRelativeTo(null);
//进行监听
this.addKeyListener(this);
}
/**
* 4.窗体的绘制
* @param args
*/
@Override
public void paint(Graphics g) {
super.paint(g);
refresh();//7.调用刷新
}
/**
* 5.重绘所有当前窗体的组件
* @param args
*/
public void refresh()
{
//获取当前窗体的画笔
Graphics gs=this.getGraphics();
//将图片资源引入
ImageIcon wall = new ImageIcon("bian.png");
ImageIcon area = new ImageIcon("kongdi.png");
ImageIcon human = new ImageIcon("ren.png");
ImageIcon box = new ImageIcon("xiang.png");
//将资源绘制在窗体上
for(int i = 0 ; i < 网页链接 ; i++)
{
for(int j = 0 ; j < maps[i].length ; j++)
{
if(maps[i][j]==3)
{
//绘制墙
gs.drawImage(wall.getImage(),top+j*40,left+i*40,40,40, null);
}
else if(maps[i][j]==0)
{
//绘制空地
gs.drawImage(area.getImage(),top+j*40,left+i*40,40,40, null);
}
else if(maps[i][j]==1)
{
//绘制水手
gs.drawImage(human.getImage(),top+j*40,left+i*40,40,40, null);
}
else if(maps[i][j]==2)
{
//绘制箱子
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* 1.继承窗体类为当前类的父类
* @author lizhicheng
*
*/
public class PushBox extends JFrame implements KeyListener{
/**
* 3.声明一个二维数组的地图
*/
int[][] maps=
{
{3,3,3,3,3,3,3,3},
{3,0,0,0,0,0,0,3},
{3,0,0,0,0,2,0,3},//3表示墙
{3,0,0,0,3,0,3,3},//2表示箱子
{3,0,0,1,0,0,0,3},//1表示人
{3,0,3,0,2,0,0,3},//0表示空地
{3,0,0,0,0,0,0,3},
{3,3,3,3,3,3,3,3},
};
/**
* 6.声明两个变量来保存图标的起始位置
*
*/
int top=10,left=25;
int posX=3,posY=4;//保存大力水手的位置
/**
* 2.构造方法添加固定的窗体设置
*/
public PushBox()
{
//设置标题
this.setTitle("http://ai.52learn.online");
//设置窗体大小
this.setSize(500, 350);
//设置窗体默认关闭操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体可见
this.setVisible(true);
//设置窗体居中显示
this.setLocationRelativeTo(null);
//进行监听
this.addKeyListener(this);
}
/**
* 4.窗体的绘制
* @param args
*/
@Override
public void paint(Graphics g) {
super.paint(g);
refresh();//7.调用刷新
}
/**
* 5.重绘所有当前窗体的组件
* @param args
*/
public void refresh()
{
//获取当前窗体的画笔
Graphics gs=this.getGraphics();
//将图片资源引入
ImageIcon wall = new ImageIcon("bian.png");
ImageIcon area = new ImageIcon("kongdi.png");
ImageIcon human = new ImageIcon("ren.png");
ImageIcon box = new ImageIcon("xiang.png");
//将资源绘制在窗体上
for(int i = 0 ; i < 网页链接 ; i++)
{
for(int j = 0 ; j < maps[i].length ; j++)
{
if(maps[i][j]==3)
{
//绘制墙
gs.drawImage(wall.getImage(),top+j*40,left+i*40,40,40, null);
}
else if(maps[i][j]==0)
{
//绘制空地
gs.drawImage(area.getImage(),top+j*40,left+i*40,40,40, null);
}
else if(maps[i][j]==1)
{
//绘制水手
gs.drawImage(human.getImage(),top+j*40,left+i*40,40,40, null);
}
else if(maps[i][j]==2)
{
//绘制箱子