gpt4 book ai didi

model-view-controller - 时间延迟和 Model View Controller

转载 作者:行者123 更新时间:2023-12-04 08:38:32 25 4
gpt4 key购买 nike

我正在实现一个回合制游戏,有两侧,每一侧都有几个单位,在每个特定时刻只有一个单位可以在棋盘上移动。

由于一次只能移动一个单位,在我弄清楚它应该去哪里之后,就模拟而言它可以立即传送到那里,但是玩游戏你会希望看到单位移动以便你知道谁搬走了,他去了哪里。

问题是,您是否将移动算法(例如,在 N 秒内在 2 个点之间进行插值)放入模型中,然后让 View 在插值位置显示单位,甚至不知道它正在移动,或者传送该单位并通知 View 它应该尽可能地显示单元移动。

如果您采用第二种方法,您将如何防止模拟运行在 View 之前太远,您是否会让 View 控制在运动结束后恢复模拟?

提前致谢,Xtapodi。

最佳答案

啊,又一个例子提醒我们 MVC 最初并不是为实时图形设计的。 ;)

我会在模型中存储当前位置和之前的位置。当对象移动时,将当前位置复制到之前的位置,将新位置复制到当前位置,并向 View 发送模型已更改的通知。然后 View 可以相应地在旧位置和新位置之间进行插值。它可以完全根据特定的 View 设置加快、减慢甚至删除插值,而无需在模型中存储任何额外数据。

与其存储当前位置和之前的位置,不如只存储每个单元的最后一步移动,移动本身包含之前的位置。如果您需要存储有关移动的额外信息,这可能会更加通用。

关于model-view-controller - 时间延迟和 Model View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222929/

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