gpt4 book ai didi

java - 实现游戏播放的最佳方式?

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:12 24 4
gpt4 key购买 nike

我正在用 Java 创建一个基于网格的游戏,我想实现游戏录制和回放。我不确定该怎么做,尽管我已经考虑过 2 个想法:

  1. 每秒好几次,我会记录整个游戏状态。为了回放它,我编写了一个渲染器来读取状态并尝试创建一个视觉表示。然而,有了这个,我可能会有一个很大的保存文件,并且任何播放尝试都可能会有明显的延迟。

  2. 我还可以将每次按键和鼠标点击都写入保存文件。这会给我一个更小的文件,并且可以以更少的延迟播放。然而,游戏开始时最轻微的错误(例如,延迟 1 毫秒射击)将导致游戏进入几分钟后出现截然不同的游戏状态。

那么,实现游戏播放的最佳方式是什么?

编辑 - 我不确定我的游戏到底有多确定,所以我不确定整个游戏是否可以通过仅记录击键和鼠标点击来准确拼凑起来。

最佳答案

一个好的回放机制不是可以简单地添加到游戏中而没有重大困难的东西。最好的办法是在设计游戏基础设施时考虑到这一点。 command pattern可以用来实现这样的游戏基础设施。

例如:

public interface Command{
void execute();
}
public class MoveRightCommand implements Command {
private Grid theGrid;
private Player thePlayer;

public MoveRightCommand(Player player, Grid grid){
this.theGrid = grid;
this.thePlayer = player;
}

public void execute(){
player.modifyPosition(0, 1, 0, 0);
}
}

然后当用户按下键盘按钮、移动鼠标​​或没有触发播放机制时,命令可以被推送到执行队列两者。命令对象可以有一个时间戳值(相对于播放的开始)用于精确播放...

关于java - 实现游戏播放的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com