ZBLOG

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyFrame extends JFrame { public static void createAndShow() { //设置窗口 JFrame frame=new JFrame("推箱子游戏--王子救公主"); frame.setDefaultCloseO

你可以在 panel3 中添加游戏地图。下面是一个简单的示例:

// 游戏地图数组,用数字表示不同的物体,比如0表示空地、1表示玩家、2表示箱子等等
int[][] map = new int[][]{
        {0, 0, 0, 0, 0},
        {0, 1, 2, 2, 0},
        {0, 0, 2, 0, 0},
        {0, 2, 2, 1, 0},
        {0, 0, 0 ,0 ,0}
};

// 游戏地图每个格子的大小(像素)
int gridSize = 50;

// 创建一个 JPanel 来显示游戏地图
JPanel gameMapPanel = new JPanel() {
    @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++) {
                int x = j * gridSize;
                int y = i * gridSize;
                
                switch (map[i][j]) {
                    case 1: // 玩家
                        g.setColor(Color.BLUE);
                        g.fillRect(x + gridSize /4 , y + gridSize /4 , gridSize /2 , gridSize /2 );
                        break;
                    case 2: // 箱子
                        g.setColor(Color.ORANGE);
                        g.fillRect(x + gridSize /4 , y + gridSize /4 , gridSize /2 , gridSize /2 );
                        break;
                    default: // 空地
                        g.setColor(Color.WHITE);
                        g.fillRect(x, y, gridSize, gridSize);
                        break;
                }
            }
        }
    }
};

// 设置游戏地图面板的大小
gameMapPanel.setPreferredSize(new Dimension(gridSize * map[0].length, gridSize * map.length));

// 把游戏地图面板添加到 panel3 中
panel3.add(gameMapPanel);

上述代码中,我们首先定义了一个表示游戏地图的二维数组 map,然后创建了一个 JPanel 来显示游戏地图,并通过重写 paintComponent() 方法来绘制每个格子。最后,把游戏地图面板添加到 panel3 中即可。

你可以根据自己的需要修改上述示例代码中的数组和颜色等参数,以实现更加丰富多彩的游戏界面。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5331

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?