我正在用java编写一个非常简单的RTS,这是我的问题,我需要编写一个重播文件,保存玩家所做的每个动作,并且必须能够读取以观看游戏(只有动作需要保存,鼠标移动不重要,每个动作之间的时间不需要保存,我将在每个动作之间放置相同的延迟)。知道我需要在程序参数中保存隐式元素的x和y位置、动作(攻击、移动、生成……)和单元的x和y位置,我怎么能做到这一点呢?例如:弓箭手。攻击(野兽),在这个例子中我需要保存弓箭手的x和y,这是动作,所以这里是攻击,野兽的x和y。非常感谢你的每一个答案,它将帮助我很多!
一个好的API将允许你记录移动,在一个简单的字符串格式,然后使用时间戳保存它,通过使用线程传递回API。睡眠时间将是"下一个动作"减去"当前动作"的时间。
示例字符串文件(Player|TIME|ACTION|DATA)
Player1|1|Move|-
Player1|4|Click|-
Player1|12|Click|-
然后你创建一个游戏循环,在这里你执行第一个动作(移动),然后调用"Thread.Sleep(4000-1000)"(1000是1秒),然后重复这个循环。下一个动作是点击,然后休眠8秒。