为精灵及其 body 分配属性
Assigning properties to a sprite and to its body
比方说,sprite.setVelocity(100,100)
和 sprite.body.setVelocity(100,100)
在行为上有什么区别吗? (假设精灵已添加到 this.physics。)
额外问题:this
在全局 Phaser 范围内究竟引用了什么?如果我在全局范围内将某些东西分配给 this.physics
,如果我在 ES5 Phaser class 中分配它,就像一个场景,有什么不同吗?
var config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600, loader: {
baseURL: 'https://raw.githubusercontent.com/nazimboudeffa/assets/master/',
crossOrigin: 'anonymous'
},
scene: {
preload: preload,
create: create,
update: update
},
physics: {
default: 'arcade'
}
};
var game = new Phaser.Game(config);
var cursors, sprite, player;
function preload ()
{
this.load.image('alien', 'sprites/phaser-alien.png');
this.load.image('alien2', 'sprites/alien2.png');
}
function create ()
{
player = this.physics.add.sprite(50, 50, 'alien');
player.setCollideWorldBounds(true);
sprite = this.add.sprite(150, 50, 'alien2');
cursors = this.input.keyboard.createCursorKeys();
}
function update ()
{
if (cursors.left.isDown)
{
//player.setVelocityX(-160);
sprite.body.setVelocityX(-160);
}
else if (cursors.right.isDown)
{
player.setVelocityX(160);
//sprite.setVelocityX(160);
}
else if (cursors.down.isDown)
{
player.setVelocityY(160);
//sprite.setVelocityY(160);
}
else if (cursors.up.isDown)
{
player.setVelocityY(-160);
//sprite.setVelocityY(-160);
}
}
<script src="//cdn.jsdelivr.net/npm/phaser@3.18.1/dist/phaser.min.js"></script>
比方说,sprite.setVelocity(100,100)
和 sprite.body.setVelocity(100,100)
在行为上有什么区别吗? (假设精灵已添加到 this.physics。)
额外问题:this
在全局 Phaser 范围内究竟引用了什么?如果我在全局范围内将某些东西分配给 this.physics
,如果我在 ES5 Phaser class 中分配它,就像一个场景,有什么不同吗?
var config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600, loader: {
baseURL: 'https://raw.githubusercontent.com/nazimboudeffa/assets/master/',
crossOrigin: 'anonymous'
},
scene: {
preload: preload,
create: create,
update: update
},
physics: {
default: 'arcade'
}
};
var game = new Phaser.Game(config);
var cursors, sprite, player;
function preload ()
{
this.load.image('alien', 'sprites/phaser-alien.png');
this.load.image('alien2', 'sprites/alien2.png');
}
function create ()
{
player = this.physics.add.sprite(50, 50, 'alien');
player.setCollideWorldBounds(true);
sprite = this.add.sprite(150, 50, 'alien2');
cursors = this.input.keyboard.createCursorKeys();
}
function update ()
{
if (cursors.left.isDown)
{
//player.setVelocityX(-160);
sprite.body.setVelocityX(-160);
}
else if (cursors.right.isDown)
{
player.setVelocityX(160);
//sprite.setVelocityX(160);
}
else if (cursors.down.isDown)
{
player.setVelocityY(160);
//sprite.setVelocityY(160);
}
else if (cursors.up.isDown)
{
player.setVelocityY(-160);
//sprite.setVelocityY(-160);
}
}
<script src="//cdn.jsdelivr.net/npm/phaser@3.18.1/dist/phaser.min.js"></script>