我开发了Cordova Phaser游戏。它在Android和iOS设备上运行。
游戏有七个级别,每个级别都有一些精灵(背景,玩家)和组(子弹,敌人)。
在preload
函数中,我已经加载了所有图像和atlasJSONHash
function preload(){
game.load.atlasJSONHash('anim', 'anim.png', 'anim.json');
//and so on
}
function create(){
var star = game.add.sprite(160, 32, 'level1bg');
star.x = 0;
star.y = 0;
star.height = game.height;
star.width = game.width;
bullets = game.add.group();
bullets.enableBody = true;
bullets.physicsBodyType = Phaser.Physics.ARCADE;
bullets.createMultiple(30, 'bullet');
bullets.setAll('anchor.x', 0.5);
bullets.setAll('anchor.y', 1);
bullets.setAll('outOfBoundsKill', true);
bullets.setAll('checkWorldBounds', true);
//and so on
}
function startlevel(level)
{
var star = game.add.sprite(160, 32, 'level1bg');
star.x = 0;
star.y = 0;
star.height = game.height;
star.width = game.width;
bullets = game.add.group();
bullets.enableBody = true;
bullets.physicsBodyType = Phaser.Physics.ARCADE;
bullets.createMultiple(30, 'bullet');
bullets.setAll('anchor.x', 0.5);
bullets.setAll('anchor.y', 1);
bullets.setAll('outOfBoundsKill', true);
bullets.setAll('checkWorldBounds', true);
//and so on
}
当关卡结束时,我会拨打startlevel(2)
,依此类推。
在浏览器中运行良好,但在移动内存中每个级别都会翻倍,应用程序最终会崩溃。如何避免此内存问题?