@WannaCreative

[Phaser.js] Почему только один объект «твердый», а остальные нет?

!!! Через стену можно проходить, но если встать на вверх стены, то персонаж не проваливается !!!

Всем привет!
Я создал маленькую сцену на Phaser.js и сделал коллизию, чтобы марио стоял на платформе и не мог пройти через боковые.
0W79gYZkdXo.jpg
Но, к сожалению, он стоит только на главной платформе, которая снизу, под ним. А через боковые он спокойно проходит, хотя все эти стены находятся в одной группе. В чем проблема, не могу понять :{
xAkXMOh4v50.jpgCODE
preload: function()
    {
        game.load.image('mario', 'images/mario.png');
        game.load.image('WallH', 'images/wallH.png');
        game.load.image('WallW', 'images/wallW.png');
    },
    
    create: function()
    {
        game.physics.startSystem(Phaser.Physics.ARCADE);
        game.stage.backgroundColor = "3984db";
        game.physics.arcade.gravity.y = 1200;
        this.cursor = game.input.keyboard.createCursorKeys();

        this.mario = game.add.sprite(game.width / 2, game.height / 2, 'mario');
        this.mario.anchor.setTo(0.5,0.5);
        this.mario.scale.setTo(0.15,0.15);
        
        this.walls = game.add.group();
        this.walls.enableBody = true;
        this.walls.enableBody = true;
        
        this.downWallH = game.add.sprite(0, 540, 'WallH', 0, this.walls);
        this.leftWallW = game.add.sprite(0,0, 'WallW', 0, this.walls);
        this.rightWallW = game.add.sprite(822,0, 'WallW', 0, this.walls);
        
        game.physics.arcade.enable(this.mario);
        this.walls.setAll('body.allowGravity', false);
        this.walls.setAll('body.immovable', true);
        
        
    },
...
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Tooyz
game.physics.arcade.enable(this.walls), если не ошибаюсь.
Ответ написан
@GreatRash
Возможно включать body нужно после добавления стен в группу, а не до?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы