Java 如何创建一个侧滚游戏?
我想创建一个游戏,用户可以进入屏幕最右边的部分,如果他们继续,他们将滑入一个新的视图 所以基本上,如果他们有3个怪物在屏幕1上追赶他们,他们一直向右走,然后继续前进,他们将进入屏幕2,那里将有5个新怪物和一个新地形 当游戏开始时,我应该立即初始化每个屏幕的所有NPC怪物和地形特征,还是应该在他们进入屏幕时初始化每个屏幕?存储进入每个屏幕的内容的最佳格式/方式是什么 我应该立即初始化每个屏幕的所有NPC怪物和地形特征吗 你可以,当然没有什么能阻止你这么做: 不过,这取决于你的关卡有多大,以及游戏中加载时间和延迟之间的权衡(例如,当下一个屏幕加载时) 我建议如下: 第一:线程 创建两个并发运行的线程,一个线程负责实际游戏,另一个线程负责加载新地形。Java 如何创建一个侧滚游戏?,java,applet,initialization,Java,Applet,Initialization,我想创建一个游戏,用户可以进入屏幕最右边的部分,如果他们继续,他们将滑入一个新的视图 所以基本上,如果他们有3个怪物在屏幕1上追赶他们,他们一直向右走,然后继续前进,他们将进入屏幕2,那里将有5个新怪物和一个新地形 当游戏开始时,我应该立即初始化每个屏幕的所有NPC怪物和地形特征,还是应该在他们进入屏幕时初始化每个屏幕?存储进入每个屏幕的内容的最佳格式/方式是什么 我应该立即初始化每个屏幕的所有NPC怪物和地形特征吗 你可以,当然没有什么能阻止你这么做: 不过,这取决于你的关卡有多大,以及游戏中
gameplay
线程是主要线程,当玩家进入下一个屏幕时,将触发加载程序
线程加载新的地形数据
第二:减少一个地形和另一个地形之间的滞后
避免在进入下一地形时加载下一地形。相反,您应该做的是(对于侧滚器),加载位于左侧的地形,然后加载位于当前位置右侧的地形。这样一来,您就不必一次将整个关卡保存在内存中,同时在进入相邻地形时也不会出现延迟。这与第一点相当吻合
这也很符合你的要求,让NPC怪物在一个地形中能够“跟随”你到下一个地形(如果你没有杀死他们);需要注意的是,如果玩家连续通过两个屏幕,而NPC怪物没有通过一个屏幕,他们就无法进一步跟踪你;这就是我玩过的侧卷轴中有多少看起来仍然有效
还要注意的是,这意味着当你开始一个关卡时,你必须一次加载2个或3个地形(取决于你是从关卡的边缘还是中间开始),但随后,你每次只需加载一个地形,因为每次玩家进入下一个地形时,你所要做的就是将当前地形与相邻地形互换
存储进入每个屏幕的内容的最佳格式/方式是什么
连载
考虑到您选择的平台是Java,我认为保存级别数据的最有效的加载时间方式是序列化。使存储有关中的级别和对象的信息的类实现可序列化的接口
如果您选择此选项,当您第一次创建关卡时,您必须创建特殊方法来硬编码每个关卡的初始化,然后在加载游戏之前序列化它们;或者您必须构建一个级别编辑器
XML
与反序列化对象相比,此选项大大增加了加载时间,但它更健壮,并且很容易进行更改。如果你的等级不是很复杂,这可能是最好的选择
事实上,没有什么能阻止你将两者结合起来