JAVA简易推箱子小游戏制作
以下是代码:
Run.java
public class Run {public static void main(String[] args) {// TODO Auto-generated method stubFrame frame = new Frame();}}
Frame.java
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;import javax.swing.JFrame;
public class Frame extends JFrame implements KeyListener {// implements实现KeyListener 接口GamePanel gp;public Frame(){this.setSize(500,500);//窗口-尺寸this.setTitle("推箱子");//窗口-标题this.setDefaultCloseOperation(EXIT_ON_CLOSE);gp= new GamePanel();this.add(gp);//增加画板this.addKeyListener(this);// 监听窗口事件 this.setVisible(true);//窗口-是否可视 }@Overridepublic void keyPressed(KeyEvent arg0) {// TODO Auto-generated method stubgp.keyD(arg0.getKeyCode());}@Overridepublic void keyReleased(KeyEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void keyTyped(KeyEvent arg0) {// TODO Auto-generated method stub}
}
PointManager .java
import java.awt.Graphics;public class PointManager {GPoint[] dians =new GPoint[100];int number;public PointManager(int[][] mapData){number=0;for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(mapData[i][j]==4){createOnePoint(j*50,i*50);}}}}public void render(Graphics g){for(int i=0;i<number;i++){dians[i].render(g);}
// }public void createOnePoint(int x,int y){dians[number]= new GPoint(x,y);number++;}public boolean checkPoint(int x,int y){for(int i=0;i<number;i++){if(dians[i].x==x && dians[i].y==y){return true;}}return false;}}
GPoint .java
import java.awt.Graphics;
import java.awt.Image;public class GPoint {Image image;int x,y;public GPoint(int x_,int y_){x=x_;y=y_;image=GameTools.getimage("point.png");}public void render(Graphics g){g.drawImage(image, x, y, null);}
}
GameTools .java
import java.awt.Image;import javax.swing.ImageIcon;public class GameTools {public static Image getimage(String name){ImageIcon icon = new ImageIcon(name);return icon.getImage();}
}
GamePanel.java
import java.awt.Graphics;import javax.swing.JPanel;
public class GamePanel extends JPanel {Player player;Map map;BoxManager bm;PointManager pm;public void create(){player = new Player(200,200);map = new Map();bm = new BoxManager(map.mapData);pm = new PointManager(map.mapData);}public GamePanel(){create();}public void paint(Graphics g){map.render(g);pm.render(g);player.render(g);bm.render(g);}public void keyD(int key){switch(key){case 37://左player.move(-50, 0,map,bm,pm);break;case 38://上player.move(0, -50,map,bm,pm);break;case 39://右player.move(+50, 0,map,bm,pm);break;case 40://下player.move(0, +50,map,bm,pm);break;default:}this.repaint();}}
BoxManager .java
import java.awt.Graphics;public class BoxManager {Box[] boxes =new Box[100];int number;public BoxManager(int[][] mapData){number=0;for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(mapData[i][j]==3){createOneBox(j*50,i*50);}}}}public void render(Graphics g){for(int i=0;i<number;i++){boxes[i].render(g);}}public void createOneBox(int x,int y){boxes[number]= new Box(x,y);number++;}public Box check(int x,int y){for(int i=0;i<number;i++){if(boxes[i].x==x && boxes[i].y==y){return boxes[i];}}return null;}}
Box .java
import java.awt.Graphics;
import java.awt.Image;public class Box {Image image;int x,y;boolean temp_success;public Box(int x_,int y_){x=x_;y=y_;image=GameTools.getimage("box.png");}public void render(Graphics g){if(temp_success==false){g.drawImage(image, x, y, null);}else{g.drawImage(GameTools.getimage("box2.png"), x, y, null);}}public boolean move(int dx,int dy,BoxManager bm,PointManager pm){if(bm.check(dx+x, dy+y)!=null){return false;}x+=dx;y+=dy;temp_success=pm.checkPoint(x, y);return true;}
}
Player .java
import java.awt.Graphics;
import java.awt.Image;public class Player {Image image;int x,y;int temp_runNum;public Player(int x_,int y_){x=x_;y=y_;image=GameTools.getimage("player.png");}public void render(Graphics g){g.drawImage(image, x, y, null);g.drawString("已走 "+temp_runNum+" 步", 200, 30);}public void move(int dx,int dy,Map map,BoxManager bm,PointManager pm){if(map.HitCheck(dx+x, dy+y)==true){return;}if(bm.check(dx+x, dy+y)!=null){if(map.HitCheck((dx*2)+x,(dy*2)+y)==true){return;}if(bm.check(dx+x, dy+y).move(dx,dy,bm,pm)==false){return;}}x+=dx;y+=dy;temp_runNum++;}
}
Map.java
import java.awt.Graphics;
import java.awt.Image;public class Map {Image[] image;int[][] mapData;public Map(){image = new Image[3];mapData = new int[][]{{2,2,2,2,2,2,2,2,2,2},{2,0,0,0,0,0,0,0,0,2},{2,0,1,1,1,1,1,1,0,2},{2,0,1,1,3,1,3,1,0,2},{2,0,1,4,1,1,1,1,0,2},{2,0,1,1,1,1,1,1,0,2},{2,0,1,4,1,1,1,1,0,2},{2,0,1,1,1,1,1,1,0,2},{2,0,0,0,0,0,0,0,0,2},{2,2,2,2,2,2,2,2,2,2}};for(int i=0;i<3;i++){image[i]=GameTools.getimage("map"+i+".png");}}public void render(Graphics g){for(int i=0;i<10;i++){for(int j=0;j<10;j++){switch(mapData[i][j]){case 2:g.drawImage(image[2],j*50, i*50, null);break;case 0:g.drawImage(image[0],j*50, i*50, null);break;default:g.drawImage(image[1],j*50, i*50, null);}}}}public boolean HitCheck(int x,int y){if(mapData[y/50][x/50]==0){return true;}return false;}
}
图片和源代码:https://download.csdn.net/download/qq_20198003/11752269
JAVA简易推箱子小游戏制作相关推荐
- 【Java】推箱子小游戏(带背景音乐)完整代码
Java实现推箱子小游戏 一.整体框架 二.游戏效果图 三.推箱子四大类 1. GameFrame类 2. Map类 3. MapFactory类 4. Sound类 四.游戏分析 1.游戏操作 2. ...
- 【基于Swing+Java的推箱子小游戏的设计与实现(效果+源代码+论文+答辩PPT)墙裂推荐!!超级好玩儿!带背景音乐~~】
快速阅读目录 (一)效果 (1)游戏静态截图 (2)动态游戏示例 (二)源代码示例 (三)说明 (一)效果 (可以通过上下左右键来控制箱子的移动) (1)游戏静态截图 初始化游戏界面: 选项: < ...
- C语言实现推箱子小游戏
一.设计目的 用简单的C语言知识制作的推箱子游戏,通过上下左右键将所有箱子移动到目标位置. 2.让我们更好地了解和巩固C语言知识,并实际运用,同时运用一些不太常见的知识点. 二.功能描述 1.模块功能 ...
- c#推箱子小游戏代码_推箱子小游戏V1.0制作
小游戏实践 推箱子简易版 大家好,我是努力学习争取成为优秀的Game Producer的路人猿,今天来一起做一个推箱子的简易版本V1.0!下面跟我一起做吧~ 我们用到的软件如下: 编辑类 Visual ...
- PLC也能制作小游戏----Codesys编写推箱子小游戏
1.序言 前文已介绍,Codesys编程软件拥有的各种编译方式,以及强大的可视化功能,完全可以实现类似的小游戏程序编写,让疲惫的工控人员在调机的空闲之余可以休闲下,本文编写另一个小游戏,也是十几年前的 ...
- 基于Java Swing JFream 组件的趣味推箱子小游戏
一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...
- [源码和文档分享]基于Java Swing JFream 组件的趣味推箱子小游戏
一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...
- java实现二维数组推箱子小游戏
推箱子小游戏 import java.util.Scanner;public class 推箱子 {public static void main(String[] args) {int x =3, ...
- [新手必备]Unity推箱子小游戏C#代码详解(第一篇-代码部分)
完整项目请参考博客:https://blog.csdn.net/qq_41676090/article/details/96300302 本文为推箱子小游戏C#代码详解第一篇的代码部分,主要讲解 Sy ...
最新文章
- CPU执行指令过程与python
- 集合框架源码分析——抽象类
- 在Linux系统安装Nodejs
- HNCU 1328: 算法2-18~2-19:双向循环链表
- 构造方法注入和设值注入有什么区别?
- C#的Timer解析(转)
- SocialFish-kali下社会工程学钓鱼工具
- 关于通过DDMS向Android系统的模拟器的sdcard中导入mp3文件的问题
- [C++] 转义序列
- 在 C# 中如何获取存储过程的返回值 ?
- Python笔记-安装python虚拟环境及配置opencv及通过opencv识别颜色
- CSS+jQuery实现滑动幻灯片实例详解
- 金属零件图像数据集_如何使用包装零件来开发易于维护的数据仓库解决方案
- 【自我解析】2020华为杯数学建模比赛A题
- python大写字母怎么读_python中字母大小写的转换,和一些字典的常规操作
- 国防科大 计算机原理考研试题,国防科技大学考研2003年计算机原理试题
- matlab求hurst,请问如何用MATLAB计算大盘的HURST
- cocos creator Android 接入Google登陆sdk
- SAP ABAP 小数转分数\约分
- 物理光学2 麦克斯韦方程组与电磁波