4
游戏中的时间倒转机制
我想知道游戏中的时间操纵机制通常是如何设计的。我对时间倒计时特别感兴趣(类似于最新的SSX或波斯王子)。 该游戏是2D自上而下的射击游戏。 我尝试设计/实现的机制具有以下要求: 1)除玩家角色外,实体的动作是完全确定的。 实体采取的行动基于自关卡开始以来所取得的帧数和/或玩家在屏幕上的位置 在关卡中的设定时间产生实体。 2)时间倒转通过实时倒转来实现。 玩家的动作也被反转,它以相反的方式重放玩家的行为。播放器在反转时间内无法控制。 反转所花费的时间没有限制,如果需要,我们可以一直反转到关卡的开始。 举个例子: 框架0-50:玩家在此期间向前移动20个单位敌人1在框架20处产生。敌人1在框架30-40期间向左移动10个单位玩家在框架45发射子弹子弹向前移动5个(45-50),并杀死敌人1框架50 反向将实时回放:玩家在此期间向后移动20个单位,敌人1在第50帧复活。子弹在第50帧再次出现。子弹向后移动5并消失(50-45)敌人向左移动10(40-30)敌人在框架20。 只是看着运动,我对如何实现这一点有一些想法,我想到了一个界面,该界面可以在时间前进或后退时改变行为。而不是这样做: void update() { movement += new Vector(0,5); } 我会做这样的事情: public interface movement() { public void move(Vector v, Entity e); } public class advance() implements movement { public void move(Vector v, Entity e) { e.location += v; } …