返回

13kB 的游戏源码竟然这么短?

前端

仅 13kB 大小的游戏,源码长啥样?

有人问我,仅 13kB 大小的游戏,源码长啥样?大伙可能觉得这么点大小的空间,能写出个花来?能好玩吗?

别说,我还真不信这个邪,就特地把游戏玩了一圈儿。

先说结论:还真能玩,而且还挺有意思!

虽然游戏画面简单,操作简单,但玩法却一点都不简单。像我这种手残党,玩了半天,愣是没过一关。

好了,闲话不多说,还是来扒一扒这个 13kB 小游戏吧!

游戏源码

// 引入必要なライブラリ
import javax.swing.*;
import java.awt.*;

// 定義ゲーム画面
public class Game extends JPanel {

    // 游戏变量
    private int x = 0;
    private int y = 0;

    // 构造函数
    public Game() {
        // 设置游戏画面大小
        setPreferredSize(new Dimension(400, 400));

        // 添加键盘监听器
        addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyPressed(KeyEvent e) {
                // 按下箭头键移动人物
                if (e.getKeyCode() == KeyEvent.VK_UP) {
                    y--;
                } else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                    y++;
                } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
                    x--;
                } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
                    x++;
                }

                // 重新绘制画面
                repaint();
            }

            @Override
            public void keyReleased(KeyEvent e) {
            }
        });
    }

    // 绘制游戏画面
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        // 设置笔刷颜色
        g.setColor(Color.BLACK);

        // 绘制人物
        g.fillRect(x * 10, y * 10, 10, 10);
    }

    // 主函数
    public static void main(String[] args) {
        // 创建游戏窗口
        JFrame frame = new JFrame("13kB 小游戏");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new Game());
        frame.pack();
        frame.setVisible(true);
    }
}

从上面代码可以看到,这个小游戏其实就是一个简单的移动小方块游戏。游戏规则很简单,就是控制小方块移动,避开障碍物。

游戏玩法

  • 使用方向键控制小方块移动。
  • 避开障碍物。
  • 尽量吃到更多的金币。

游戏特点

  • 体积小,只有 13kB。
  • 操作简单,上手容易。
  • 玩法多样,耐玩性高。

总结

总体来说,这个仅 13kB 大小的游戏还是挺不错的。虽然画面简单,但玩法却一点都不简单。喜欢休闲游戏的朋友,可以尝试一下。