好学校平台网站模板合肥百度关键词推广
should i initalize all the NPC monsters and terrain features for every screen right away
你可以,肯定没有什么能阻止你这样做:
然而,这取决于你的等级有多大以及在游戏中加载时间和滞后之间的权衡(例如,当加载下一个屏幕时).
我建议如下:
第一:主题
创建两个并发运行的线程,一个可以实际玩游戏的线程,另一个负责加载新地形的线程.游戏玩法线程是主要线程,当玩家进入下一个屏幕时,将触发加载器线程加载新的地形数据.
第二:减少一个地形与另一个地形之间的滞后
进入时避免加载下一个地形.你应该做的是(对于一个sidescroller),加载一个左边的地形,并加载当前位置右边的地形.这样,您不需要立即将整个级别保留在内存中,同时在进入相邻地形时也不会遇到延迟.这与第一点非常相配.
这也很好地符合你的要求,让你在一个地形中的NPC怪物能够“跟随”你到下一个地形(如果你还没有杀死它们);需要注意的是,如果玩家在没有NPC怪物通过的情况下连续通过两个屏幕,他们就无法进一步追踪你;无论如何,我玩过多少次侧面滚轮似乎都在工作.
还要注意,这意味着当你开始一个关卡时,你必须同时加载2个或3个地形(取决于你是从边缘开始还是从关卡的中间开始),但随后,你将只有一次加载一个地形,因为你需要做的就是每次玩家前进到下一个地形时将当前的地形换掉相邻的地形
what’s the best format / way for storing what goes into each screen?
连载
鉴于您选择的平台是Java,我认为持久化级别数据的最有效负载时间方式是序列化.使存储有关级别和对象的信息的类实现Serializable接口.
如果你确实选择了这个选项,当你第一次创建关卡时,你要么必须创建特殊方法来硬编码每个关卡的初始化,然后在加载游戏之前序列化它们;或者你必须建立一个关卡编辑器.
XML
与反序列化对象相比,此选项可显着增加加载时间,但它更加健壮,而且很容易进行更改.如果您的等级不是很复杂,这可能是最好的选择.
事实上,没有什么可以阻止你做两者的结合.