推箱子GameFrame

import javax.swing.JFrame;
public class GameFrame extends JFrame {
GamePanel gp;//属性;
//构造方法;
public GameFrame(){ 
this.setSize(500,500);//窗口大小,500像素;
this.setTitle("推箱子");//窗口标题;
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//实现关闭
        gp=new GamePanel();//创建一块新画板
        this.add(gp);
this.setVisible(true);//显示
}


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java推箱子小游戏课程设计报告的内容建议: 一、课程设计要求 1. 掌握Java语言的基本语法和面向对象程序设计思想; 2. 熟悉Java Swing图形界面编程; 3. 能够运用Java编写简单的游戏程序; 4. 通过本次课程设计,提高学生的编程能力和问题解决能力。 二、设计思路 1. 游戏规则 推箱子游戏是一款经典的益智类游戏,游戏中玩家需要将箱子推到指定的位置才能过关。在游戏中,玩家要控制主角来推动箱子,但是箱子只能被推动而不能被拉动。如果玩家推错了箱子的位置,那么游戏就会失败。 2. 程序设计 本次课程设计采用Java Swing图形界面编程,主要分为以下几个模块: 2.1 界面设计 游戏界面主要由地图、箱子、目标点、人物等元素组成。其中,地图采用二维数组进行存储,箱子、目标点和人物则采用面向对象的方式进行设计。 2.2 游戏逻辑 游戏逻辑主要包括玩家控制人物移动、箱子移动、判断游戏是否胜利或失败等功能。其中,箱子和人物的移动需要进行碰撞检测,如果碰撞到障碍物,则不能进行移动。 2.3 数据存储 游戏数据主要包括地图、箱子、目标点等信息,需要进行存储和读取。本次课程设计采用文件存储的方式进行数据的存储和读取。 三、程序设计实现 1. 实现步骤 1)设计界面布局,包括游戏地图、箱子、目标点、人物等元素; 2)设计游戏逻辑,包括人物和箱子的移动、碰撞检测、判断游戏是否胜利等功能; 3)设计数据存储,包括地图、箱子、目标点等信息的存储和读取。 2. 代码实现 以下是Java推箱子小游戏的部分代码实现: ``` // 游戏主界面 public class GameFrame extends JFrame { private static final long serialVersionUID = 1L; private MapPanel mapPanel; // 游戏地图 private Player player; // 玩家角色 private Box box; // 箱子 private Target target; // 目标点 public GameFrame() { setTitle("推箱子小游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setSize(800, 600); setLocationRelativeTo(null); mapPanel = new MapPanel(); player = new Player(); box = new Box(); target = new Target(); addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: player.moveUp(); break; case KeyEvent.VK_DOWN: player.moveDown(); break; case KeyEvent.VK_LEFT: player.moveLeft(); break; case KeyEvent.VK_RIGHT: player.moveRight(); break; } if (player.collideWith(box)) { box.move(player.getDirection()); if (box.collideWith(target)) { JOptionPane.showMessageDialog(null, "恭喜你,游戏胜利!"); System.exit(0); } } if (mapPanel.checkGameOver(box)) { JOptionPane.showMessageDialog(null, "很遗憾,游戏失败!"); System.exit(0); } mapPanel.repaint(); } }); add(mapPanel); setVisible(true); } // 游戏地图面板 class MapPanel extends JPanel { private static final long serialVersionUID = 1L; private int[][] map = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; public MapPanel() { setPreferredSize(new Dimension(500, 500)); setBackground(Color.WHITE); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[i].length; j++) { if (map[i][j] == 1) { g.setColor(Color.GRAY); g.fillRect(j * 50, i * 50, 50, 50); } } } target.draw(g); box.draw(g); player.draw(g); } // 检查游戏是否结束 public boolean checkGameOver(Box box) { for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[i].length; j++) { if (map[i][j] == 2 && box.getX() == j && box.getY() == i) { return true; } } } return false; } } } ``` 四、总结 本次课程设计通过Java Swing图形界面编程,实现了一款简单的推箱子小游戏。在设计过程中,学生们掌握了Java语言的基本语法和面向对象程序设计思想,提高了编程能力和问题解决能力。同时,通过本次课程设计,学生们还了解了游戏开发的基本流程和注意事项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值