swap characters in front/behind positions on speech
This commit is contained in:
@@ -15,7 +15,8 @@ interface Director<Set, StagePosition, StageFacing, ScreenPosition, Actor, Sound
|
||||
function showScene(scene:Scene<Set, StagePosition, StageFacing, ScreenPosition, Actor, Prop>, appearance:Appearance, cc:Continuation):Void;
|
||||
function showCharacter(character:Character<StagePosition, StageFacing, Actor>, appearance:Appearance, cc:Continuation):Void;
|
||||
function hideCharacter(character:Character<StagePosition, StageFacing, Actor>, cc:Continuation):Void;
|
||||
function moveCharacter(character:Character<StagePosition, StageFacing, Actor>, fromPos:StagePosition, fromFacing:StageFacing, toPos:StagePosition, toFacing:StageFacing, cc:Continuation):Void;
|
||||
function moveCharacter(character:Character<StagePosition, StageFacing, Actor>, toPos:StagePosition, toFacing:StageFacing, cc:Continuation):Void;
|
||||
function swapCharacters(a:Character<StagePosition, StageFacing, Actor>, b:Character<StagePosition, StageFacing, Actor>, cc:Continuation):Void;
|
||||
function playSound(sound:Sound, volumeMod:Float, waitForEnd:Bool, cc:Continuation):Void;
|
||||
function playSong(song:Song, volumeMod:Float, loop:Bool, waitForEnd:Bool, cc:Continuation):Void;
|
||||
function stopSong():Void;
|
||||
|
@@ -231,12 +231,24 @@
|
||||
(director.hideCharacter c cc)))
|
||||
|
||||
(hollywooMethod moveCharacter false [actorName :StagePosition newPosition :StageFacing newFacing :Continuation cc]
|
||||
(let [c (dictGet .characters (_currentScene) actorName)
|
||||
oldPosition c.stagePosition
|
||||
oldFacing c.stageFacing]
|
||||
(set c.stagePosition newPosition)
|
||||
(set c.stageFacing newFacing)
|
||||
(director.moveCharacter c oldPosition oldFacing newPosition newFacing cc)))
|
||||
(let [c (dictGet .characters (_currentScene) actorName)]
|
||||
(director.moveCharacter c newPosition newFacing ->:Void {
|
||||
(set c.stagePosition newPosition)
|
||||
(set c.stageFacing newFacing)
|
||||
(cc)
|
||||
})))
|
||||
|
||||
(hollywooMethod swapCharacters false [actorNameA actorNameB :Continuation cc]
|
||||
(let [a (dictGet .characters (_currentScene) actorNameA)
|
||||
b (dictGet .characters (_currentScene) actorNameB)]
|
||||
(director.swapCharacters a b ->:Void
|
||||
(let [tempStagePos a.stagePosition
|
||||
tempStageFacing a.stageFacing]
|
||||
(set a.stagePosition b.stagePosition)
|
||||
(set a.stageFacing b.stageFacing)
|
||||
(set b.stagePosition tempStagePos)
|
||||
(set b.stageFacing tempStageFacing)
|
||||
(cc)))))
|
||||
|
||||
// TODO moveCharacter remove them, add them to another scene
|
||||
// TODO moveCharacterAndFollow remove them, add them to another scene, set that the scene
|
||||
|
Reference in New Issue
Block a user