我是AS3的新手并且编码一般,所以这就是我提出这个问题的原因。我试图制作一个像半程序生成的地下城爬行器,就像使用flashbuilder和flashpunk绑定isaac一样。
但是这给我留下了一个问题;我找到了两种方法来做房间。要么我可以一次产生所有的房间,让玩家在他们之间使用门实体来阻止进度,或者我可以加载一个包含其中房间的新世界,而不使用FP.world = new world。但这给了我两个问题所以基本上这是我想知道的主要问题。
我希望世界记住它里面的东西以及即使我进入一个新世界也会被杀死的东西。例如。现在,如果我进入一个新的世界,它将把这个世界加载到新的然后如果我杀死所有的敌人并离开然后重新进入它将再次产生所有的敌人。我需要知道如何让那个房间记住它已被清除敌人。
有没有这样做?
答案 0 :(得分:0)
我不熟悉FP,所以我不知道FP是否允许保存房间状态。您最好查看文档,但如果它没有帮助,您可以执行以下操作:
var visited_rooms:Dictionary = new Dictionary(); var roomID = ... // unique room id var savedState:Object = { goblins:3, chest:1 } // read room state somehow visited_rooms[roomID] = savedState;
现在,离开房间后,您将获得州信息并将其放入字典中。
再次进入此房间后,只需检查字典中是否存在唯一ID,如果是,则恢复状态:
var roomID = ... // unique room id
if (roomID in visited_rooms) {
var savedState:Object = visited_rooms[roomID];
room.setState(savedState);
}
基本上都是。