前言

「作者主页」:雪碧有白泡泡
「个人网站」:雪碧的个人网站
「推荐专栏」:
★java一站式服务 ★
★前端炫酷代码分享
★ ★ uniapp-从构建到提升★
★ 从0到英雄,vue成神之路★
★ 解决算法,一个专栏就够了★
★ 架构咱们从0说★
★ 数据流通的精妙之道★

摘 要
社会在进步,人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。此次设计符合了社会需求,Java推箱子游戏可以让人们在闲暇之余,体验游戏的乐趣。具有操作简单,易于上手的特点。
推箱子游戏的玩法十分简单——控制人物绕过障碍物,到达目的地。此次毕业设计基于Java语言。将游戏地图做成通用的关卡设计,关卡用二维数组实现,在二维数组中设置值域来表示不同对象,运用二维数组的遍历算法来加载对应图片实现了游戏图片初始化状态。同时,通过初始化多个不同二维数组实现了游戏地图关卡的设计,方法巧妙且简单易行,有效的解决了图片排布问题。充分运用类和方法的调用来实现游戏关卡的初始化。用读取键值的方法判断游戏人物移动、停止、到达目的地。舒缓的音乐配合有趣的步骤,相信能引起很多人的兴趣。作为一个具有悠久历史的游戏,也能够引起人的怀念和共鸣。
游戏总体结构和代码分析

界面框架与按钮设计
本游戏界面简单清晰,操作界面优美,有很强的带入性,游戏操作模块分为:“悔一步”,“重来”,“上一关”,“下一关”,“第1关”,“最终关”,“选关”“音乐关”并且各个按钮的名称与相关功能为:
“悔一步”:返回上一移动状态(可以连续返回多步);
“重来”:重新开始当前关;
“上一关”:返回到当前关的上一关;
“下一关”:跳转到当前关的下一关;
“第1关”:游戏系统默认开始关为第一关,此按钮让玩家可以方便从其它关卡直接跳转到第一关;
“最终关”:可以跳转到最后一关,即游戏系统默认的最后一个关。
mainFrame()
{
super("推箱子v2.0");
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);
}
选关模块
“选关”:选择想要挑战的关卡。当游戏玩家想要自主选择关卡时,可以随意输入想要跳入的关卡,节约了时间,玩家同过选择的关卡可以有效地挑战自我,连接上次的游戏进度。
其中,这个部分的部分代码为:
void Tuixiangzi(int i)
{
Levelmap=new Readmap(i);
Levelmaptmp=new Readmap(i);
map=Levelmap.getmap();
manX=Levelmap.getmanX();
manY=Levelmap.getmanY();
maptmp=Levelmaptmp.getmap();
repaint();
}
int maxlevel(){
return max;}
public void paint(Graphics g)
{
for(int i=0; i<20

该文章详细介绍了使用Java编程实现的一款推箱子游戏,包括游戏界面设计、选关模块、地图绘制、小人与箱子移动的算法以及悔棋功能。游戏采用二维数组存储关卡,支持自定义关卡选择,并具有音乐控制功能,旨在提供简单易玩的休闲体验。
最低0.47元/天 解锁文章
2476





