如何在 Phaser 3 中将精灵存储在数组中?
How to store sprites in an array in Phaser 3?
我想将我游戏中的障碍物存储在一个数组中,这样我就可以生成一个随机数并从该数组中随机抽取一个精灵。所以这是我的问题:
- 如何将精灵存储在数组中?
- 如何获取和使用数组中的精灵?
1) 您可以创建精灵,然后将其存储在数组中
let arr = [];
let sprite1 = this.add.image(400, 300, 'spritekey1');
arr.push(sprite1);
let sprite2 = this.add.image(400, 300, 'spritekey2');
arr.push(sprite2);
let sprite3 = this.add.image(400, 300, 'spritekey3');
arr.push(sprite3);
// To get Random element from array use Phaser's Utility function
let randomSprite = Phaser.Utils.Array.GetRandom(arr);
2) 或者你可以这样创建组
let group = this.add.group();
let sprite1 = this.add.image(400, 300, 'spritekey1');
let sprite2 = this.add.image(400, 300, 'spritekey2');
let sprite3 = this.add.image(400, 300, 'spritekey3');
group.add(sprite1);
group.add(sprite2);
group.add(sprite3);
// group.getChildren() returns an array
let randomSprite = Phaser.Utils.Array.GetRandom(group.getChildren());
组示例 here 会很有用。
组 Documentation.
使用 Phaser 提供的效用函数来获取随机元素是最简单 和直接 方法.
Phaser.Util.Array.GetRandom()
documentation.
我想将我游戏中的障碍物存储在一个数组中,这样我就可以生成一个随机数并从该数组中随机抽取一个精灵。所以这是我的问题:
- 如何将精灵存储在数组中?
- 如何获取和使用数组中的精灵?
1) 您可以创建精灵,然后将其存储在数组中
let arr = [];
let sprite1 = this.add.image(400, 300, 'spritekey1');
arr.push(sprite1);
let sprite2 = this.add.image(400, 300, 'spritekey2');
arr.push(sprite2);
let sprite3 = this.add.image(400, 300, 'spritekey3');
arr.push(sprite3);
// To get Random element from array use Phaser's Utility function
let randomSprite = Phaser.Utils.Array.GetRandom(arr);
2) 或者你可以这样创建组
let group = this.add.group();
let sprite1 = this.add.image(400, 300, 'spritekey1');
let sprite2 = this.add.image(400, 300, 'spritekey2');
let sprite3 = this.add.image(400, 300, 'spritekey3');
group.add(sprite1);
group.add(sprite2);
group.add(sprite3);
// group.getChildren() returns an array
let randomSprite = Phaser.Utils.Array.GetRandom(group.getChildren());
组示例 here 会很有用。 组 Documentation.
使用 Phaser 提供的效用函数来获取随机元素是最简单 和直接 方法.
Phaser.Util.Array.GetRandom()
documentation.