首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有3种方法"this.add.rectangle()“、"new Phaser.GameObjects.Rectangle()”和"fillRectShape()",我应该在什么时候使用哪种方法?

有3种方法"this.add.rectangle()“、"new Phaser.GameObjects.Rectangle()”和"fillRectShape()",我应该在什么时候使用哪种方法?
EN

Stack Overflow用户
提问于 2022-01-23 14:38:30
回答 1查看 532关注 0票数 2

我对Phaser 3很陌生,并试图找出(至少)3种创建矩形的方法之间的区别。这是代码

代码语言:javascript
运行
复制
var game = new Phaser.Game({
  scene: {
    create: create
  }
});

function create() {
  let rect1 = this.add.rectangle(300, 100, 100, 30, 0x00f000, .5);

  let rect2 = new Phaser.GameObjects.Rectangle(this, 300, 150, 100, 30, 0xf00000)
  this.add.existing(rect2);

  let rect3 = this.add.graphics({
    fillStyle: {
      color: 0x00f0f0
    }
  });
  let rect = new Phaser.Geom.Rectangle(300, 200, 100, 30);
  rect3.fillRectShape(rect);

}
代码语言:javascript
运行
复制
<script src="https://cdn.jsdelivr.net/npm/phaser@3.55.2/dist/phaser.js"></script>

rect1使用最简单的代码,只需要一行代码。

rect2实例化Phaser.GameObjects.Rectangle类。如果我需要一堆类似矩形的对象,可以创建类的子类,预定义一些属性和方法,并实例化我定制的类矩形对象,我想它会更强大。

rect3使用Phaser.GameObjects.Graphics,我无法想象它的用例比前两种情况要好。有人能给我个提示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-23 15:06:08

简短的回答:

如果您需要一个矩形来进行赏金或其他计算,请使用:new Phaser.Geom.Rectangle(...)

  • if,您需要一个简单的矩形new Phaser.GameObjects.Rectangle(...)

GameObject use:this.add.rectangle(...)

  • 如果您不想立即将它添加到场景中,请使用:new Phaser.GameObjects.Rectangle(...)

如果您需要特殊的矩形this.add.graphics(...) GameObject和更多的铃铛和口哨,请使用:

长篇大论:

这取决于手头的任务。因为每个对象或多或少地创建了一个具有不同属性/方法的不同的网络对象。

  • Type Phaser.GameObjects.Graphics

是一个GameObject,但是非常“低级”,你几乎可以在上面画任何东西。比如直肠,圆圈,.但这是更多的工作。

详细信息可以在这里找到,

这里是一个特殊矩形的示例:https://phaser.io/examples/v3/view/game-objects/graphics/fill-rounded-rectangle

  • Type Phaser.GameObjects.Rectangle

GameObject作为Phaser.GameObjects.Graphics,但专门用于创建矩形。

this.add.rectangle(...)new Phaser.GameObjects.Rectangle(...)都会创建这种类型的矩形。this.add.rectangle只是一种更方便的方法来实现这一点,并将其直接添加到当前场景中。

详细信息可以在这里找到,)

这里是一个基本矩形的示例:https://phaser.io/examples/v3/view/game-objects/shapes/rectangle

  • Type Phaser.Geom.Rectangle

是一个几何形状,适合于边界和/或其他计算(但您也可以用它绘制)。

详细信息可以在这里找到,

这里是一个示例,说明如何使用它来检查GameObject是否位于特定的矩形中:https://phaser.io/examples/v3/view/geom/rectangle/contains-rect

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70823142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档