我对Phaser 3很陌生,并试图找出(至少)3种创建矩形的方法之间的区别。这是代码
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);
}
<script src="https://cdn.jsdelivr.net/npm/phaser@3.55.2/dist/phaser.js"></script>
rect1
使用最简单的代码,只需要一行代码。
rect2
实例化Phaser.GameObjects.Rectangle
类。如果我需要一堆类似矩形的对象,可以创建类的子类,预定义一些属性和方法,并实例化我定制的类矩形对象,我想它会更强大。
rect3
使用Phaser.GameObjects.Graphics
,我无法想象它的用例比前两种情况要好。有人能给我个提示吗?
发布于 2022-01-23 15:06:08
简短的回答:
如果您需要一个矩形来进行赏金或其他计算,请使用:new Phaser.Geom.Rectangle(...)
new Phaser.GameObjects.Rectangle(...)
GameObject use:this.add.rectangle(...)
new Phaser.GameObjects.Rectangle(...)
如果您需要特殊的矩形this.add.graphics(...)
GameObject和更多的铃铛和口哨,请使用:
长篇大论:
这取决于手头的任务。因为每个对象或多或少地创建了一个具有不同属性/方法的不同的网络对象。
Phaser.GameObjects.Graphics
:是一个GameObject,但是非常“低级”,你几乎可以在上面画任何东西。比如直肠,圆圈,.但这是更多的工作。
详细信息可以在这里找到,
这里是一个特殊矩形的示例:https://phaser.io/examples/v3/view/game-objects/graphics/fill-rounded-rectangle
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
Phaser.Geom.Rectangle
:是一个几何形状,适合于边界和/或其他计算(但您也可以用它绘制)。
详细信息可以在这里找到,
这里是一个示例,说明如何使用它来检查GameObject是否位于特定的矩形中:https://phaser.io/examples/v3/view/geom/rectangle/contains-rect
https://stackoverflow.com/questions/70823142
复制相似问题