java推箱子的主要程序文档格式.docx

上传人:b****5 文档编号:15841019 上传时间:2022-11-16 格式:DOCX 页数:25 大小:20.90KB
下载 相关 举报
java推箱子的主要程序文档格式.docx_第1页
第1页 / 共25页
java推箱子的主要程序文档格式.docx_第2页
第2页 / 共25页
java推箱子的主要程序文档格式.docx_第3页
第3页 / 共25页
java推箱子的主要程序文档格式.docx_第4页
第4页 / 共25页
java推箱子的主要程序文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

java推箱子的主要程序文档格式.docx

《java推箱子的主要程序文档格式.docx》由会员分享,可在线阅读,更多相关《java推箱子的主要程序文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

java推箱子的主要程序文档格式.docx

importjava.awt.event.KeyListener;

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseListener;

importjava.io.File;

importjava.util.ArrayList;

importjavax.sound.midi.MidiSystem;

importjavax.sound.midi.Sequence;

importjavax.sound.midi.Sequencer;

importjavax.swing.JFrame;

importjavax.swing.JOptionPane;

publicclassGameFrameextendsJFrameimplementsActionListener,MouseListener//主面板类

KeyListener{

privateintgrade=0;

//row,column记载人的行号列号

//leftX,leftY记载左上角图片的位置避免图片从(0,0)坐标开始

privateintrow=7,column=7,leftX=0,leftY=0;

//记载地图的行列数

privateintmapRow=0,mapColumn=0;

//width,height记载屏幕的大小

privateintwidth=0,height=0;

privatebooleanacceptKey=true;

//程序所用到的图片

privateImagepic[]=null;

//定义一些常量,对应地图的元素

finalbyteWALL=1,BOX=2,BOXONEND=3,END=4,MANDOWN=5,

MANLEFT=6,MANRIGHT=7,MANUP=8,GRASS=9,MANDOWNONEND=10,

MANLEFTONEND=11,MANRIGHTONEND=12,MANUPONEND=13;

privatebyte[][]map=null;

privateArrayListlist=newArrayList();

Soundsound;

publicvoidgetManPosition(){

for(inti=0;

i<

map.length;

i++)

for(intj=0;

j<

map[0].length;

j++)

if(map[i][j]==MANDOWN||map[i][j]==MANDOWNONEND

||map[i][j]==MANUP||map[i][j]==MANUPONEND

||map[i][j]==MANLEFT||map[i][j]==MANLEFTONEND

||map[i][j]==MANRIGHT||map[i][j]==MANRIGHTONEND){

row=i;

column=j;

break;

}

}

/*显示提示信息对话框*/

publicvoidDisplayToast(Stringstr){

JOptionPane.showMessageDialog(null,str,"

提示"

JOptionPane.ERROR_MESSAGE);

//撤销移动

publicvoidundo(){

if(acceptKey){

//撤销

if(list.size()>

0){

//若要撤销必须走过

MappriorMap=(Map)list.get(list.size()-1);

map=priorMap.getMap();

row=priorMap.getManX();

column=priorMap.getManY();

repaint();

list.remove(list.size()-1);

}else

DisplayToast("

不能再撤销!

"

);

}else{

DisplayToast("

此关已完成,不能撤销!

}

publicvoidnextGrade(){

//grade++;

if(grade>

=MapFactory.getCount()-1){

恭喜你完成所有关卡!

acceptKey=false;

grade++;

initMap();

repaint();

acceptKey=true;

publicvoidpriorGrade(){

grade--;

acceptKey=true;

if(grade<

0)

grade=0;

initMap();

repaint();

publicvoidinitMap(){

map=getMap(grade);

list.clear();

getMapSizeAndPosition();

getManPosition();

//MapcurrMap=newMap(row,column,map);

//list.add(currMap);

/*

*//原来是从数组读取2012-4-20publicbyte[][]getMap(intgrade){return

*MapFactory.getMap(grade);

*/

publicGameFrame(){

super("

推箱子游戏带音乐版"

setSize(600,600);

setVisible(true);

setResizable(false);

setLocation(300,20);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Containercont=getContentPane();

cont.setLayout(null);

cont.setBackground(Color.black);

//最初始13张图片

getPic();

width=this.getWidth();

height=this.getHeight();

this.setFocusable(true);

//构造方法执行时从优先数据中恢复游戏

//关卡切换时调用initMap()

//resumeGame();

this.addKeyListener(this);

this.addMouseListener(this);

sound=newSound();

sound.loadSound();

privatevoidgetMapSizeAndPosition(){

//TODOAuto-generatedmethodstub

mapRow=map.length;

mapColumn=map[0].length;

leftX=(width-map[0].length*30)/2;

leftY=(height-map.length*30)/2;

System.out.println(leftX);

System.out.println(leftY);

System.out.println(mapRow);

System.out.println(mapColumn);

publicvoidgetPic(){

pic=newImage[14];

=13;

i++){

pic[i]=Toolkit.getDefaultToolkit().getImage(

"

images\\pic"

+i+"

.JPG"

publicbytegrassOrEnd(byteman){

byteresult=GRASS;

if(man==MANDOWNONEND||man==MANLEFTONEND||man==MANRIGHTONEND

||man==MANUPONEND)

result=END;

returnresult;

privatevoidmoveUp(){

//上一位p1为WALL

if(map[row-1][column]==WALL)

return;

//上一位p1为BOX,BOXONEND,须考虑P2

if(map[row-1][column]==BOX||map[row-1][column]==BOXONEND){

//上上一位p2为END,GRASS则向上一步,其他不用处理

if(map[row-2][column]==END||map[row-2][column]==GRASS){

MapcurrMap=newMap(row,column,map);

list.add(currMap);

byteboxTemp=map[row-2][column]==END?

BOXONEND:

BOX;

bytemanTemp=map[row-1][column]==BOX?

MANUP:

MANUPONEND;

//箱子变成temp,箱子往前一步

map[row-2][column]=boxTemp;

//人变成MANU

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1