Phaserでつかえる乱数の調査
結構いろいろ用意されている感じ。

        // ■整数
        // 1から5までの整数を生成する。(お互い含む)
        console.log(Phaser.Math.RND.integerInRange(1, 5));

        // integerInRangeのエリアス
        // 1から5までの整数を生成する。(お互い含む)
        console.log(Phaser.Math.RND.between(1, 5));

        // 0から2の32乗までの整数を生成する。
        console.log(Phaser.Math.RND.integer());


        // ■小数点数
        // 0から1までの小数点数を生成する。
        console.log(Phaser.Math.RND.frac());

        // -1から1までの小数点数を生成する。
        console.log(Phaser.Math.RND.normal());


        // ■角度
        // degree(-180から180)までの整数を生成する。(-180, 180を含む)
        console.log(Phaser.Math.RND.angle());

        // radian(-πからπ)までの小数点数を生成する。
        console.log(Phaser.Math.RND.rotation());

        // ■他
        // 配列のデータを一つ選ぶ
        const data = ["black", "bule", "red", "green"];
        console.log(Phaser.Math.RND.pick(data));

        // 配列の順番をシャッフルする
        Phaser.Math.RND.shuffle(data);
        console.log(data);

シードを設定してみる。

文字列か、配列の文字列ということになっていますが・・・
文字列だと、何を指定しても同じ配列になってしまうので、配列に文字列指定をしています。

        // ■seed
        for (let i = 0; i < 3; i++) {
            let data = [];
            let r = new Phaser.Math.RandomDataGenerator(["a"]);

            for (let j = 0; j < 10; j++) {
                const value = r.between(1, 1000);
                data.push(value);
            }

            console.log(data.join(", ")); // 425, 388, 604, 466, 913, 310, 533, 890, 602, 435
        }

        // 別のシードで実行
        for (let i = 0; i < 3; i++) {
            let data = [];
            let r = new Phaser.Math.RandomDataGenerator(["b"]);

            for (let j = 0; j < 10; j++) {
                const value = r.between(1, 1000);
                data.push(value);
            }

            console.log(data.join(", ")); // 574, 647, 255, 508, 245, 406, 748, 436, 768, 239
        }

shuffleなども再現することを確認。

        const r = new Phaser.Math.RandomDataGenerator(["a"]);
        let data = [];
        for (let i = 0; i < 10; i++) {
            let val = r.integerInRange(1, 1000);
            data.push(val);
        }

        r.shuffle(data);
        console.log(data); //[ 533, 435, 388, 425, 310, 604, 890, 913, 602, 466 ]
投稿日時: 2024-07-27 15:46:27
更新日時: 2024-08-03 11:43:03

Phaserについて調査中。
マウス操作、タッチ操作でスコアは差がでるので、検知だったり制限する方法が知りたかったので調べた結果のメモ。


create() {
  if (this.sys.game.device.input.mouse) {
    // マウス入力のみを有効化
    this.input.mouse.enabled = true;
    this.input.touch.enabled = false;
  } else if (this.sys.game.device.input.touch) {
    // タッチ入力のみを有効化
    this.input.mouse.enabled = false;
    this.input.touch.enabled = true;
  }
}
投稿日時: 2024-07-27 02:54:27
更新日時: 2024-07-28 02:37:28

Phaser.GameObjects.Imageを継承し、クリック(タップ)のイベントを取得してみたけども他のイベントを利用するにはどう記載するのか調べてみたのでメモ。

  • pointerdown: オブジェクトがクリック/タップされた時
  • pointerup: オブジェクト上でマウスボタン/タッチが離された時
  • pointermove: オブジェクト上でポインターが移動した時
  • pointerover: ポインターがオブジェクトに入った時
  • pointerout: ポインターがオブジェクトから出た時
  • dragstart: ドラッグが開始された時
  • drag: ドラッグ中
  • dragend: ドラッグが終了した時
  • dragenter: ドラッグ中にオブジェクトに入った時
  • dragleave: ドラッグ中にオブジェクトから出た時
  • drop: ドラッグしたアイテムがオブジェクト上でドロップされた時
投稿日時: 2024-07-27 02:53:27

最近の投稿

タグ

アーカイブ

その他