я хочу переместить несколько спрайтов одновременно в phaser.js - PullRequest
1 голос
/ 19 мая 2019
var meteors;
var invader1;
var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 500,
    // backgroundColor: "#5f2a55",
    physics: {
        default: 'arcade',
        arcade: {
            gravity: { y: 1 },
            debug: true
        }
    },
    scene: {
        preload: preload,
        create: create,
        update: update
    }
};

var game = new Phaser.Game(config);

//var group={};
function preload() {
    this.load.spritesheet('fire', 'meteor.png', {
        frameWidth: 32,
        frameHeight: 32
    });
    this.load.image('ground', 'platform.png');
}

function create() {
    //meteors = game.add.group();

    ground = this.physics.add.staticImage(400, 470, 'ground');
    ground.setDisplaySize(790, 50);
    ground.setSize(790, 50);
    ground.setOffset(-190, -8);

    meteors = this.physics.add.group({
        key: 'fire',
        frames: this.anims.generateFrameNumbers('fire', { start: 0, end: 6 }),
        repeat: 13,
        setXY: { x: 32, y: 100, stepX: 40 }
    });

    this.physics.add.collider(meteors, ground);
}

function update() {
    console.log(meteors);
}
<!DOCTYPE html>
<html lang="en">
    <head>
        <script src="https://cdn.jsdelivr.net/npm/phaser@3.15.1/dist/phaser-arcade-physics.min.js"></script>

        <style>
            canvas {
                margin: auto;
                border: 5px solid rgb(185, 184, 184);
                border-radius: 3px;
            }
        </style>
    </head>
    <body>
        <script src="tests.js"></script>
    </body>
</html>

enter image description here Я только начинаю с Phaser 3, я хочу создать симуляцию падающих метеоров, мне удалось создать метеоры, и они падают доземля, как и планировалось, но я не смог оживить метеоры.... спрайт-лист метеора работает, я проверил его сам, и он сработал, поэтому я просто не могу оживить группу спрайтов (метеоров).код ниже в основном скопирован из "сделай свою первую игру в фазере".спрайты метеоров хранятся в массиве, называемом «метеорами».я не добавил "this.anims.play (" fire ")", так как он разбил все.

meteors = this.physics.add.group({
    key: 'fire',
    frames: this.anims.generateFrameNumbers('fire', { start: 0, end: 6 }),
    repeat: 13,
    setXY: { x: 32, y: 100, stepX: 40 }
});

this.physics.add.collider(meteors, ground);
...