无法旋转汽车且瓦片地图不完全可见

我正在尝试将以下 Phaser2 示例 ( https://phaser.io/examples/v2/tilemaps/fill-tiles ) 移植到 Phaser3 中。我遇到两个问题:

  1. 我无法旋转车辆,因为左/右键不起作用。

http://img1.mukewang.com/63931a040001d46906600351.jpg

我无法让 tilemap 正确显示,它似乎被切断了。

    import Phaser from "phaser";

    

    const config = {

      type: Phaser.AUTO,

      parent: "phaser-example",

      width: 800,

      height: 600,

      physics: {

        default: 'arcade'

      },

      scene: {

        preload: preload,

        create: create,

        update: update,

        render: render

      }

    };

    

    const game = new Phaser.Game(config);

    let cursors;

    let player;

    let map;

    let speed = 0;

    

    function preload() {

      this.load.tilemapTiledJSON('desert', 'desert.json');

      this.load.image('tiles', 'https://examples.phaser.io/assets/tilemaps/tiles/tmw_desert_spacing.png')

      this.load.image('car', 'http://labs.phaser.io/assets/sprites/car90.png')

    }

    

    function create() {

      map = this.make.tilemap({ key: 'desert' });

      const tiles = map.addTilesetImage('Desert', 'tiles');

      const layer = map.createDynamicLayer('Ground', tiles, 0, 0);

    

      cursors = this.input.keyboard.createCursorKeys();

      player = this.physics.add.sprite(450, 80, 'car');

    

      this.cameras.main.startFollow(player, true, 0.05, 0.05);

    }

    

    function update() {

    

      // Drive forward if cursor up key is pressed down

    

      if (cursors.up.isDown && speed <= 400) {

        speed += 10;

      } else {

        if (speed >= 10) {

          speed -= 10

        }

      }

    

      // Drive backwards if cursor down key is pressed down

    

      if (cursors.down.isDown && speed >= -200) {

        speed -= 5;

      } else {

        if (speed <= -5) {

          speed += 5

        }

      }

    

      // Steer the car

    

      if (cursors.left.isDown) {

        player.body.angularVelocity = -5 * (speed / 1000);

      } else if (cursors.right.isDown) {

        player.body.angularVelocity = 5 * (speed / 1000);

      } else {

        player.body.angularVelocity = 0;

      }

    

我怎样才能解决这个问题?


慕的地8271018
浏览 172回答 1
1回答

智慧大石

我将代码加载到一个没有资产的空白项目中,并且能够看到缺少对象的图像旋转。然而,看起来速度对角旋转的依赖性太低了。如果你减少用于计算角速度的速度比例的减少,你可以让汽车转得更快。证明 ->&nbsp;https://stackblitz.com/edit/phaser-2-example-so
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript