package zwh.boxgame.demo;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.sound.midi.*;
import java.util.Stack;
public class Tuixiangzi
{
public static void main(String[] args)
{
new mainFrame();
}
}
class mainFrame extends JFrame implements ActionListener,ItemListener
{
JLabel lb;
JLabel lb2;
JButton btnrenew,btnlast,btnnext,btnchoose,btnfirst,btnover,btnmuc,btnback;
mainpanel panel;
Sound sound;
JComboBox jc=new JComboBox();
MenuItem renew=new MenuItem(" 重新开始");
MenuItem back=new MenuItem(" 悔一步");
MenuItem last=new MenuItem(" 上一关");
MenuItem next=new MenuItem(" 下一关");
MenuItem choose=new MenuItem(" 选关");
MenuItem exit=new MenuItem(" 退出");
MenuItem qin=new MenuItem(" 琴萧合奏");
MenuItem po=new MenuItem(" 泡泡堂");
MenuItem guang=new MenuItem(" 灌篮高手");
MenuItem nor=new MenuItem(" 默认");
MenuItem eye=new MenuItem(" eyes on me");
MenuItem about=new MenuItem(" 关于推箱子...");
mainFrame()
{
super("推箱子");
setSize(720,720);
setVisible(true);
setResizable(false);
setLocation(300,20);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cont=getContentPane();
cont.setLayout(null);
cont.setBackground(Color.black);
Menu choice=new Menu(" 选项");
choice.add(renew);choice.add(last);choice.add(next);choice.add(choose);choice.add(back);
choice.addSeparator();choice.add(exit);
renew.addActionListener(this);
last.addActionListener(this);
next.addActionListener(this);
choose.addActionListener(this);
exit.addActionListener(this);
back.addActionListener(this);
Menu setmuc=new Menu(" 设置音乐");
setmuc.add(nor);setmuc.add(qin);setmuc.add(po);setmuc.add(guang);setmuc.add(eye);
nor.addActionListener(this);
qin.addActionListener(this);
po.addActionListener(this);
guang.addActionListener(this);
eye.addActionListener(this);
Menu help=new Menu(" 帮助");
help.add(about);
about.addActionListener(this);
MenuBar bar=new MenuBar();
bar.add(choice);bar.add(setmuc);bar.add(help);
setMenuBar(bar);
nor.setEnabled(false);
lb=new JLabel("JAVA推箱子 2015年中北毕业设计",SwingConstants.CENTER);
lb2=new JLabel("更换音乐",SwingConstants.CENTER);
add(lb);add(lb2);
lb.setBounds(100,20,400,20);
lb.setForeground(Color.white);
lb2.setBounds(625,500,55,20);
lb2.setForeground(Color.white);
btnrenew=new JButton("重来");
btnback=new JButton("悔一步");
btnlast=new JButton("上一关");
btnnext=new JButton("下一关");
btnchoose=new JButton("选关");
btnfirst=new JButton("第1关");
btnover=new JButton("最终关");
btnmuc=new JButton("音乐关");
add(btnrenew);add(btnlast);add(btnnext);add(btnchoose);add(btnfirst);add(btnover);add(btnmuc);add(btnback);
btnrenew.setBounds(625,100,80,30);
btnrenew.addActionListener(this);
btnback.setBounds(625,150,80,30);
btnback.addActionListener(this);
btnfirst.setBounds(625,200,80,30);
btnfirst.addActionListener(this);
btnlast.setBounds(625,250,80,30);
btnlast.addActionListener(this);
btnnext.setBounds(625,300,80,30);
btnnext.addActionListener(this);
btnover.setBounds(625,350,80,30);
btnover.addActionListener(this);
btnchoose.setBounds(625,400,80,30);
btnchoose.addActionListener(this);
btnmuc.setBounds(625,450,80,30);
btnmuc.addActionListener(this);
jc.setBounds(625,530,80,20);
jc.addItem("默认");
jc.addItem("琴萧合奏");
jc.addItem("泡泡堂");
jc.addItem("灌篮高手");
jc.addItem("eyes on me");
jc.addItemListener(this);
cont.add(jc);
sound=new Sound();
sound.loadSound();
panel=new mainpanel();
add(panel);
panel.Tuixiangzi(panel.level);
panel.requestFocus();
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnrenew||e.getSource()==renew)
{
panel.Tuixiangzi(panel.level);
panel.requestFocus();
panel.remove();
}
else if(e.getSource()==btnlast||e.getSource()==last)
{
panel.level--;
if(panel.level<1)
{panel.level++;JOptionPane.showMessageDialog(this,"本关是第一关");panel.requestFocus();}
else
{
panel.Tuixiangzi(panel.level);
panel.requestFocus();
}
panel.remove();
}
else if(e.getSource()==btnnext||e.getSource()==next)
{
panel.level++;
if(panel.level>panel.maxlevel())
{panel.level--;JOptionPane.showMessageDialog(this,"本关已是最后一关");panel.requestFocus();}
else
{
panel.Tuixiangzi(panel.level);
panel.requestFocus();
}
panel.remove();
}
else if(e.getSource()==exit)System.exit(0);
else if(e.getSource()==about)
{
JOptionPane.showMessageDialog(this, "JAVA推箱子 开发:郭兴全");
}
else if(e.getSource()==btnchoose||e.getSource()==choose)
{
String lel=JOptionPane.showInputDialog(this,"请输入您要转到的关卡号:(1~50)");
panel.level=Integer.parseInt(lel);
panel.remove();
if(panel.level>panel.maxlevel()||panel.level<1)
{JOptionPane.showMessageDialog(this, "没有这一关!!!");panel.requestFocus();}
else
{
panel.Tuixiangzi(panel.level);
panel.requestFocus();
}
}
else if(e.getSource()==btnfirst)
{
panel.level=1;
panel.Tuixiangzi(panel.level);
panel.requestFocus();
panel.remove();
}
else if(e.getSource()==btnover)
{
panel.level=panel.maxlevel();
panel.Tuixiangzi(panel.level);
panel.requestFocus();
panel.remove();
}
else if(e.getSource()==btnmuc)
{
if(sound.isplay())
{
sound.mystop();btnmuc.setLabel("音乐开");
}
else
{
sound.loadSound();btnmuc.setLabel("音乐关");
}
panel.requestFocus();
}
else if(e.getSource()==btnback||e.getSource()==back)
{
if(panel.isMystackEmpty())JOptionPane.showMessageDialog(this, "您还未移动!!!");
else
{
switch(panel.back())
{
case 10:panel.backup(10);break;
case 11:panel.backup(11);break;
case 20:panel.backdown(20);break;
case 21:panel.backdown(21);break;
case 30:panel.backleft(30);break;
case 31:panel.backleft(31);break;
case 40:panel.backright(40);break;
case 41:panel.backright(41);break;
}
}
panel.requestFocus();
}
else if(e.getSource()==nor)
{
jc.setSelectedIndex(0);
}
else if(e.getSource()==qin)
{
jc.setSelectedIndex(1);
}
else if(e.getSource()==guang)
{
jc.setSelectedIndex(3);
}
else if(e.getSource()==eye)
{
jc.setSelectedIndex(4);
}
else if(e.getSource()==po)
{
jc.setSelectedIndex(2);
}
}
public void itemStateChanged(ItemEvent ie)
{
int no=jc.getSelectedIndex();
switch(no)
{
case 0:sound.setMusic("nor.mid");
if(sound.isplay())
sound.mystop();
sound.loadSound();
btnmuc.setLabel("音乐关");
nor.setEnabled(false);
qin.setEnabled(true);
guang.setEnabled(true);
eye.setEnabled(true);
po.setEnabled(true);panel.requestFocus();break;
case 1:sound.setMusic("qin.mid");
if(sound.isplay())
sound.mystop();
sound.loadSound();
btnmuc.setLabel("音乐关");
nor.setEnabled(true);
qin.setEnabled(false);
guang.setEnabled(true);
eye.setEnabled(true);
po.setEnabled(true);panel.requestFocus();break;
case 2:sound.setMusic("popo.mid");
if(sound.isplay())
sound.mystop();
sound.loadSound();
btnmuc.setLabel("音乐关");
nor.setEnabled(true);
qin.setEnabled(true);
guang.setEnabled(true);
eye.setEnabled(true);
po.setEnabled(false);panel.requestFocus();break;
case 3:sound.setMusic("guang.mid");
if(sound.isplay())
sound.mystop();
sound.loadSound();
btnmuc.setLabel("音乐关");
nor.setEnabled(true);
qin.setEnabl
没有合适的资源?快使用搜索试试~ 我知道了~
基于java的推箱子游戏设计源代码.zip
共79个文件
map:51个
gif:10个
mid:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 44 浏览量
2022-06-15
09:06:02
上传
评论
收藏 3.6MB ZIP 举报
温馨提示
基于JAVA的推箱子小游戏主要分为初始化模块,画图模块,移动小人模块,移动箱子模块以及功能控制模块。玩家是通过控制小人的移动来推动箱子,需要避过障碍物与死角才能将其推放到指定位置从而达到过关的目的。每关的难易程度各异,不仅适合人们休闲娱乐,还有助于开发智力,提高人们思考问题能力与想象能力,改善思考方式,拓展思维。 本游戏的主要背景是毕业课程设计,操作简单、界面简洁美观、适合休闲娱乐的小游戏,使用Windows的GUI程序开发. 玩家是通过对小人的移动操作来控制推动箱子的,并且玩家需要避过障碍物以及死角,才能将其推放到指定位置从而达到过关的目的。如果玩家将箱子推入死角导致箱子无法移动或不能移动到指定位置则闯关失败,可以通过悔步或重新开始等操作来重新挑战本关。 游戏功能需求如下所示: 游戏界面需求:简洁美观的用户界面,可以带给用户自然清晰的画面。 游戏内容需求:良好的小人与箱子设计,可以给玩家带来更真实的感觉。小人需要前、后、左、右四张图片,移动中的箱子与终点上的箱子要所有区别,因此需要两不同的图片以示区别。 键盘处理事件:控制小人与箱子的移动,可通过键盘方向键(上、下、左、右键)对小
资源推荐
资源详情
资源评论
收起资源包目录
基于java的推箱子游戏设计源代码.zip (79个子文件)
代码
bin
zwh
boxgame
demo
Sound.class 2KB
Tuixiangzi.class 454B
mainpanel.class 11KB
Readmap.class 2KB
mainFrame.class 8KB
pic
3.GIF 2KB
6.GIF 2KB
7.GIF 2KB
1.gif 2KB
2.GIF 2KB
9.GIF 512B
0.gif 682B
5.GIF 2KB
4.gif 2KB
8.GIF 2KB
Thumbs.db 23KB
musics
qin.mid 44KB
popo.mid 15KB
eyes on me.mid 45KB
nor.mid 27KB
guang.mid 74KB
syg.mid 3.5MB
hs_err_pid444.log 10KB
maps
22.map 438B
34.map 438B
1.map 438B
44.map 438B
3.map 438B
32.map 438B
39.map 440B
28.map 438B
38.map 438B
7.map 438B
23.map 438B
48.map 438B
19.map 438B
18.map 438B
27.map 438B
12.map 438B
26.map 438B
15.map 438B
25.map 438B
14.map 438B
5.map 438B
47.map 438B
24.map 438B
9.map 438B
2.map 438B
0.map 438B
4.map 438B
40.map 438B
29.map 438B
41.map 438B
8.map 438B
17.map 438B
11.map 438B
36.map 438B
20.map 438B
21.map 438B
31.map 438B
45.map 438B
33.map 438B
50.map 438B
42.map 438B
35.map 438B
37.map 438B
49.map 438B
43.map 438B
46.map 438B
13.map 438B
16.map 438B
10.map 438B
6.map 438B
30.map 438B
.settings
org.eclipse.jdt.core.prefs 629B
src
zwh
boxgame
demo
Tuixiangzi.java 20KB
.project 385B
hs_err_pid3480.log 9KB
.classpath 301B
共 79 条
- 1
资源评论
豆包程序员
- 粉丝: 2630
- 资源: 3504
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功