正常游戏期间的 FlxReplay
FlxReplay during normal gameplay
我的游戏中有一堆 NPC 对象是通过 FlxReplay
实例控制的。他们阻止我使用鼠标和键盘直接控制英雄。有没有办法播放 FlxReplay
的下一帧,读取输入,然后将输入恢复到之前的状态?
示例:
package com.geokureli.testbed;
import flixel.FlxG;
import flixel.FlxState;
import flixel.system.replay.FlxReplay;
import flixel.ui.FlxButton;
class TestBed extends FlxState {
var replay:FlxReplay;
public function new() { super(); }
override public function create():Void {
super.create();
replay = new FlxReplay();
replay.load("0\n0km100,100,0,0\n100km178,240,2,0\n101km178,240,1,0\n102km178,240,-1,0\n103km178,240,0,0\n");
add(new FlxButton(50, 30, "test", function(){ trace("click"); }));
}
override public function update(elapsed:Float):Void {
if (replay != null) {
replay.playNextFrame();
if (FlxG.mouse.justPressed)
trace("replay click");
if (replay.finished) {
replay = null;
trace("done");
}
}
// --- REVERT INPUTS HERE
super.update(elapsed);
}
}
重播处于活动状态时我无法单击按钮。我想知道我是否可以在所有重播期间换掉 FlxG.inputs
和 FlxG.keys
/mouse
,然后再换回原件。或者,如果我可以针对回放使用的特定输入,而不影响主要玩家的输入?
我想我已经为 Ludum Dare 38 做了类似的事情。
我将重播从它对 FlxG
控件的依赖中分离出来。
检查 MyReplay
class:
https://github.com/boorik/Ludum38/blob/master/source/MyReplay.hx
这样我就可以在不干扰 NPC 回放的情况下与游戏互动。
在我的游戏中,你和游戏中的所有角色一起玩,记录他们的重播。在录制一个回放时,其他录制的回放会在其目标 NPC 上播放。
你可以在这里查看结果:
http://games.boorik.com/ludumdare38/
希望我已经理解您的问题,这对您有所帮助。
我的游戏中有一堆 NPC 对象是通过 FlxReplay
实例控制的。他们阻止我使用鼠标和键盘直接控制英雄。有没有办法播放 FlxReplay
的下一帧,读取输入,然后将输入恢复到之前的状态?
示例:
package com.geokureli.testbed;
import flixel.FlxG;
import flixel.FlxState;
import flixel.system.replay.FlxReplay;
import flixel.ui.FlxButton;
class TestBed extends FlxState {
var replay:FlxReplay;
public function new() { super(); }
override public function create():Void {
super.create();
replay = new FlxReplay();
replay.load("0\n0km100,100,0,0\n100km178,240,2,0\n101km178,240,1,0\n102km178,240,-1,0\n103km178,240,0,0\n");
add(new FlxButton(50, 30, "test", function(){ trace("click"); }));
}
override public function update(elapsed:Float):Void {
if (replay != null) {
replay.playNextFrame();
if (FlxG.mouse.justPressed)
trace("replay click");
if (replay.finished) {
replay = null;
trace("done");
}
}
// --- REVERT INPUTS HERE
super.update(elapsed);
}
}
重播处于活动状态时我无法单击按钮。我想知道我是否可以在所有重播期间换掉 FlxG.inputs
和 FlxG.keys
/mouse
,然后再换回原件。或者,如果我可以针对回放使用的特定输入,而不影响主要玩家的输入?
我想我已经为 Ludum Dare 38 做了类似的事情。
我将重播从它对 FlxG
控件的依赖中分离出来。
检查 MyReplay
class:
https://github.com/boorik/Ludum38/blob/master/source/MyReplay.hx
这样我就可以在不干扰 NPC 回放的情况下与游戏互动。 在我的游戏中,你和游戏中的所有角色一起玩,记录他们的重播。在录制一个回放时,其他录制的回放会在其目标 NPC 上播放。
你可以在这里查看结果:
http://games.boorik.com/ludumdare38/
希望我已经理解您的问题,这对您有所帮助。