随机色块

使用色块显示

适配设备:Pro

作者:rikka

下载量:4 · 点赞:1

可信源码风险提示:保存或下载前请阅读源码和权限声明。
SHA-25686383c7bc59e5507c82f4e3cc9df683d039ff6bd48e0be1b2a3e3334b16e76e3
function main() {

    var state = {
        running: true
    };

    var pixels = ui.signal([]);

    function randomColor() {
        var r = Math.floor(Math.random() * 256);
        var g = Math.floor(Math.random() * 256);
        var b = Math.floor(Math.random() * 256);

        var hex = "#";

        var arr = [r, g, b];

        for (var i = 0; i < arr.length; i++) {

            var s = arr[i].toString(16);

            if (s.length < 2) {
                s = "0" + s;
            }

            hex += s;
        }

        return hex;
    }

    function makePixels() {

        var list = [];

        for (var i = 0; i < 256;i++) {
            list.push(randomColor());
        }

        pixels.set(list);

    }

    function renderGrid() {

        var list = pixels.get();

        var rows = [];

        var index = 0;

        for (var y = 0; y < 10; y++) {

            var cols = [];

            for (var x = 0; x < 10; x++) {

                cols.push(

                    ui.text("■", {
                        color: list[index]
                    })

                );

                index++;

            }

            rows.push(ui.row(cols));

        }

        return ui.column(rows);

    }

    function render() {

        return [

            ui.heading("随机色块"),

            renderGrid(),

            ui.button(
                state.running ? "停止" : "开始",
                function () {

                    state.running = !state.running;

                    ui.refresh();

                }
            )

        ];

    }

    makePixels();

    ui.render(render);

    setInterval(function () {

        if (!state.running) {
            return;
        }

        makePixels();

        ui.refresh();

    }, 100);

}

main();