day01是对界面的布置
1.Config 中是游戏中主要属性的定义
2.GamePanel 中是各个组件(如:墙,人等的重绘)图片的加载,动作
3.MainFrame中是写窗口的性质的(注意:因为要将GamePanel的重绘动作加载进来,
所以需要private GamePanel game=new GamePanel();)
4.对于图片:
a.定义:private BufferedImage wall;
private BufferedImage left[]=new BufferedImage[4];
b. 连入: wall=ImageIO.read(this.getClass().getResource("/com/res/wall.jpg"));
for(int i=1;i<=4;i++)
{
left[i-1]=ImageIO.read(this.getClass().getResource("/com/res/2_"+i+".jpg"));
}
c.对游戏界面的重绘是对于程序的,“迷宫是对数组的重绘“
//是在下面单独右键-source-ove'....-JCompent-paint()
public void paint(Graphics g) {
super.paint(g);
for(int i=0;i<Config.map.length;i++)
{
for(int j=0;j<Config.map[i].length;j++)
{
if(Config.map[i][j]==Config.WALL)
{
g.drawImage(wall, Config.WIDTH*j, Config.WIDTH*i, null);
}
}
}
以下为程序:
Config.java
package com.cisst;
public class Config {
public static int SWIDTH=660;
public static int SHEIGHT=660;
public static int WIDTH=66;
public static int LEFT=1;
public static int RIGHT=2;
public static int UP=3;
public static int DOWN=4;
public static int RODE=0;
public static int WALL=1;
public static int ENTER=2;
public static int EXIT=3;
public static int [][] map=new int[][]
{
{1,3,1,1,1,1,1,1,1,1},
{1,0,0,0,1,1,0,1,1,1},
{1,1,1,0,0,0,0,1,1,1},
{1,0,0,0,1,1,0,1,0,1},
{1,0,1,1,1,0,0,0,1,1},
{1,0,0,1,1,0,1,1,1,1},
{1,1,0,0,0,0,0,0,1,1},
{1,1,1,1,1,1,1,0,1,1},
{1,1,1,0,0,0,0,0,1,1},
{1,1,1,2,1,1,1,1,1,1}
};
}
GamePanel.java
package com.cisst;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class GamePanel extends JPanel {
private BufferedImage wall;
private BufferedImage left[]=new BufferedImage[4];
private BufferedImage right[]=new BufferedImage[4];
private BufferedImage up[]=new BufferedImage[4];
private BufferedImage down[]=new BufferedImage[4];
public GamePanel()
{
super();
this.setSize(Config.SWIDTH,Config.SHEIGHT);
this.setVisible(true);
initImage();
}
/*初始化游戏中的图片*/
public void initImage()
{
try {
wall=ImageIO.read(this.getClass().getResource("/com/res/wall.jpg"));
for(int i=1;i<=4;i++)
{
left[i-1]=ImageIO.read(this.getClass().getResource("/com/res/2_"+i+".jpg"));
}
for(int i=1;i<=4;i++)
{
right[i-1]=ImageIO.read(this.getClass().getResource("/com/res/3_"+i+".jpg"));
}
for(int i=1;i<=4;i++)
{
up[i-1]=ImageIO.read(this.getClass().getResource("/com/res/4_"+i+".jpg"));
}
for(int i=1;i<=4;i++)
{
down[i-1]=ImageIO.read(this.getClass().getResource("/com/res/1_"+i+".jpg"));
}
} catch (IOException e) {
System.out.println("ERROR_001_加载图片出错");
e.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
super.paint(g);
for(int i=0;i<Config.map.length;i++)
{
for(int j=0;j<Config.map[i].length;j++)
{
if(Config.map[i][j]==Config.WALL)
{
g.drawImage(wall, Config.WIDTH*j, Config.WIDTH*i, null);
}
}
}
}
}
MainFrame.java
package com.cisst;
import javax.swing.JFrame;
public class MainFrame extends JFrame {
private GamePanel game=new GamePanel();
public MainFrame()
{
super("迷宫1");
this.setSize(Config.SWIDTH+30,Config.SHEIGHT+33);
this.setLocation(100,10);
this.add(game);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MainFrame();
}
}