我正在尝试为课程创建一个小型RPG。我创建一个Bitmap图像,缓存它,然后每次我需要相同的Bitmap,我克隆它,最后将它们添加到舞台上。然而,尽管我的努力,我的画布仍然非常慢,因为我画了所有这些灌木丛。
我会将它们放在一个容器中,但是,我需要知道X和Y的位置,我知道如果玩家试图越过它们的边界。
这是我的功能:
parseRoom: function(mapObject, room, obj, image){
var letter = 'X';
//var object = obj;
var object = null;
var img = new createjs.Bitmap(image);
for(var m=0; m < mapObject.length; m++){
for(var j=0; j< mapObject[m].length; j++){
letter = mapObject[j][m];
switch (letter){
case 'X':
//do nothing
break;
case 'O':
//object = this.createObject();
//object.image = img.clone();
img.cache();
object = img.clone();
room.AddObstacle(object, m, j);
break;
}
}
}
}
当我实际将它们添加到舞台时,这是我的功能:
addObstacle: function(imgObj, x, y){
imgObj.x = x ||imgObj.x || 0;
imgObj.y = y ||imgObj.y || 0;
imgObj.setVisible = function(visible){
this.visible = visible;
};
imgObj.update = function(){
if(this.visible)this.visible= true;
else this.visible = false;
};
objects.push(imgObj);
stage.addChild(imgObj);
},
如您所见,我扩展了Bitmap类,并为其添加和更新了setVisible方法。这样我可以根据屏幕将它们全部关闭或打开。任何可以帮助我并使我的游戏更流畅的想法?谢谢!
答案 0 :(得分:0)
我不断更新每个对象,包括灌木丛,并且不需要每次更新灌木丛。我只是从检查灌木丛中删除了逻辑,现在它运行得非常快。