java推箱子图片

package com.lyc;

import javax.swing.*;
import java.awt.*;

public class TXZ {
    public static void main(String[] args) {
        //类名 对象名
        JFrame gameJFrame = new JFrame();
        //设置标题
        gameJFrame.setTitle("推箱子1.0");
        //窗口尺寸
        gameJFrame.setSize(22 * 48 + 10, 12 * 48 + 30);
        //gameJFrame.setLocation();
        //gameJFrame.setBounds();
        //居中
        gameJFrame.setLocationRelativeTo(null);
        //退出窗口且关闭,结束程序
        gameJFrame.setDefaultCloseOperation(3);
        //创建面板
        JPanel panel = new JPanel();
        //对象名。属性名   普通属性
        //类名。静态名   静态属性
        panel.setBackground(Color.PINK);
        //设置布局为自定义布局
        panel.setLayout(null);
        //内容面板  设置面板与窗体相关联
        gameJFrame.setContentPane(panel);
        //创建图片对象,构造方法传参,设置图片路径
        ImageIcon boxImg = new ImageIcon("imgs/box3.png");
        //创建标签,构造方法传参,把图片放入标签
        JLabel box = new JLabel(boxImg);
        //把标签放入面板
        panel.add(box);
        box.setBounds(3*48,3*48,48,48);
        ImageIcon workImg = new ImageIcon("imgs/workerDown3.png");
        JLabel worker = new JLabel(workImg);
        panel.add(worker);
        worker.setBounds(4*48,3*48,48,48);
        ImageIcon goalImg = new ImageIcon("Imgs/goal3.png");
        JLabel goal = new JLabel(goalImg);
        panel.add(goal);
        goal.setBounds(5*48,7*48,48,48);
        //添加围墙
        ImageIcon wallImg =new ImageIcon("imgs/wall3.png");
        JLabel[] walls = new JLabel[22*2+(12-2)*2];
        for (int i =0;i<walls.length;i++){
            walls[i] = new JLabel(wallImg);
        }
        int index = 0;
        for(int i = 0;i<22;i++){
            panel.add(walls[index]);
            walls[index++].setBounds(i*48,0,48,48);
            panel.add(walls[index]);
            walls[index++].setBounds(i*48,11*48,48,48);
        }
        for(int i =1;i<=10;i++){
            panel.add(walls[index]);
            walls[index++].setBounds(0,i*48,48,48);
            panel.add(walls[index]);
            walls[index++].setBounds(21*48,i*48,48,48);
        }
        //窗体可见
        gameJFrame.setVisible(true);
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
箱子游戏是一款经典的益智游戏,Java语言也可以实现该游戏。以下是一个简单的箱子游戏的实现思路: 1. 设计地图,用数字表示地图上的元素,例如0表示空地,1表示墙壁,2表示箱子,3表示目标点,4表示人物; 2. 根据地图设计GUI界面,使用Swing或JavaFX等图形库实现; 3. 实现游戏逻辑,包括人物移动、箱子移动、判断胜利条件等; 4. 处理用户输入,例如使用键盘上下左右键控制人物移动; 5. 添加音效和背景音乐,增加游戏体验。 下面是一个简单的Java箱子游戏实现的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class PushBox extends JFrame implements ActionListener { private JPanel panel; private JButton[][] buttons; 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,2,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,1}, {1,0,3,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,4,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}}; private int playerX, playerY; private int boxX, boxY; public PushBox() { setTitle("PushBox"); setSize(400, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new JPanel(new GridLayout(10, 10)); buttons = new JButton[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { buttons[i][j] = new JButton(); buttons[i][j].addActionListener(this); panel.add(buttons[i][j]); switch (map[i][j]) { case 0: buttons[i][j].setIcon(new ImageIcon("images/ground.png")); break; case 1: buttons[i][j].setIcon(new ImageIcon("images/wall.png")); break; case 2: buttons[i][j].setIcon(new ImageIcon("images/box.png")); boxX = i; boxY = j; break; case 3: buttons[i][j].setIcon(new ImageIcon("images/target.png")); break; case 4: buttons[i][j].setIcon(new ImageIcon("images/player.png")); playerX = i; playerY = j; break; } } } add(panel); setVisible(true); } public void actionPerformed(ActionEvent e) { JButton button = (JButton)e.getSource(); int x = -1, y = -1; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (button == buttons[i][j]) { x = i; y = j; break; } } } if (x == -1 || y == -1) { return; } if (x == playerX && y == playerY - 1) { movePlayer(0, -1); } else if (x == playerX && y == playerY + 1) { movePlayer(0, 1); } else if (x == playerX - 1 && y == playerY) { movePlayer(-1, 0); } else if (x == playerX + 1 && y == playerY) { movePlayer(1, 0); } } private void movePlayer(int dx, int dy) { int newX = playerX + dx; int newY = playerY + dy; if (map[newX][newY] == 0 || map[newX][newY] == 3) { buttons[playerX][playerY].setIcon(new ImageIcon("images/ground.png")); buttons[newX][newY].setIcon(new ImageIcon("images/player.png")); playerX = newX; playerY = newY; } else if (map[newX][newY] == 2) { int newBoxX = boxX + dx; int newBoxY = boxY + dy; if (map[newBoxX][newBoxY] == 0 || map[newBoxX][newBoxY] == 3) { buttons[playerX][playerY].setIcon(new ImageIcon("images/ground.png")); buttons[boxX][boxY].setIcon(new ImageIcon("images/ground.png")); buttons[newX][newY].setIcon(new ImageIcon("images/player.png")); buttons[newBoxX][newBoxY].setIcon(new ImageIcon("images/box.png")); playerX = newX; playerY = newY; boxX = newBoxX; boxY = newBoxY; } } if (checkWin()) { JOptionPane.showMessageDialog(this, "You Win!"); } } private boolean checkWin() { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (map[i][j] == 3 && buttons[i][j].getIcon().toString().equals("images/box.png")) { return false; } } } return true; } public static void main(String[] args) { new PushBox(); } } ``` 该代码中使用了Swing库实现游戏界面,当用户点击某个按钮时,通过检查该按钮的坐标和人物的位置来判断人物是否可以移动,移动的过程中还需要判断是否需要移动箱子。最后,通过检查所有目标点是否都有箱子来判断游戏是否胜利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

diary_chao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值