我有一个包含3个元素的数组,这些元素是从一个更大的数组中随机获取的(让我们想象一下,较大的数组是一个字母表,3个元素数组叫做currentChars)。
我想用current动画精灵表示currentChars数组中的每个字符,我通过函数完成了这个:
function animateChars(){
y = 300;
for (i=0; i<currentChars.length; i++){
var shape = game.add.sprite(200,y,currentChars[i]);
shape.animations.add('twinkle',null,25,true);
shape.play('twinkle');
y += 60;
}
}
玩家进行输入,如果输入正确,则应从数组和游戏中删除元素及其精灵。
function searchAndRemove(input, arr) {
for(i = 0; i< arr.length; i++) {
if(arr[i] === input) {
arr.splice(i, 1);
score += 1;
scoreText.text = score;
break;
}
}
但是,我还没有找到删除精灵的方法,因为元素已从数组中取出。理想情况下,当一个元素(及其精灵)被移除时,应保留另一个精灵的位置,但仍然,我仍然难倒。
答案 0 :(得分:3)
Phaser.Sprite对象有destroy()
方法,我认为这就是你要找的东西。但是你必须保持对创建的精灵对象的引用,以便以后删除它。
myshapes[i] = game.add.sprite(200,y,currentChars[i]);
//..
if(arr[i] === input) {
myshapes[i].destroy(); // first destroy sprite
arr.splice(i, 1); // then remove array item
//etc.