【问题标题】:Changing .x property does nothing, but .body.property works更改 .x 属性无济于事,但 .body.property 有效
【发布时间】:2018-12-20 17:23:04
【问题描述】:

我有一个多人游戏,其中多个客户端拉动一个中心对象。我想在客户端之间同步该对象的位置,例如,如果其中一个切换选项卡一段时间。

这是在我的更新功能中:

    // update velocities of main object to those received from the server
    ball.body.velocity.y = game.y;
    ball.body.velocity.x = game.x;

    // does nothing
    ball.x = 600;

    // works as expected, pinning ball to x 600
    ball.body.x = 600;

为什么会这样?我知道 .x 和 .body.x 应该与精灵上启用的物理相同。

【问题讨论】:

    标签: javascript socket.io phaser-framework


    【解决方案1】:

    据我所知,.body.x 和 .x 是不同的。根据phaser.io,

    所有物理操作都应该针对身体而不是 Sprite 本身执行。

    所以,如果 sprite 有 body,那么使用 .body。当这两个属性在错误的情况下使用时,它可能由于应用于对象的物理引擎而根本不起作用。这是我使用 which for what 的指南:

    在启用了物理的任何对象(例如精灵、组、平台等)上使用 .body.x。

    在任何未启用物理引擎的对象上使用 .x,例如平铺精灵、粒子(大多数情况下)、其他与其他对象没有交互的装饰精灵。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-16
      • 2011-08-29
      • 2013-12-27
      • 2015-04-26
      • 2022-08-09
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      相关资源
      最近更新 更多