onion skinning when pressing F

This commit is contained in:
Cameron Taylor 2021-06-04 16:45:08 -04:00
parent 1301cf3ab6
commit 699a89198e

View file

@ -16,6 +16,7 @@ import lime.utils.Assets as LimeAssets;
import openfl.Assets; import openfl.Assets;
import openfl.events.Event; import openfl.events.Event;
import openfl.events.IOErrorEvent; import openfl.events.IOErrorEvent;
import openfl.geom.Rectangle;
import openfl.net.FileReference; import openfl.net.FileReference;
import sys.io.File; import sys.io.File;
@ -51,6 +52,8 @@ class DebugBoundingState extends FlxState
var animDropDownMenu:FlxUIDropDownMenu; var animDropDownMenu:FlxUIDropDownMenu;
var dropDownSetup:Bool = false; var dropDownSetup:Bool = false;
var onionSkinChar:FlxSprite;
override function create() override function create()
{ {
Paths.setCurrentLevel('week1'); Paths.setCurrentLevel('week1');
@ -137,6 +140,9 @@ class DebugBoundingState extends FlxState
offsetView = new FlxGroup(); offsetView = new FlxGroup();
add(offsetView); add(offsetView);
onionSkinChar = new FlxSprite().makeGraphic(FlxG.width * 2, FlxG.height * 2, FlxColor.TRANSPARENT);
offsetView.add(onionSkinChar);
animDropDownMenu = new FlxUIDropDownMenu(370, 20, FlxUIDropDownMenu.makeStrIdLabelArray(['weed'], true)); animDropDownMenu = new FlxUIDropDownMenu(370, 20, FlxUIDropDownMenu.makeStrIdLabelArray(['weed'], true));
animDropDownMenu.cameras = [hudCam]; animDropDownMenu.cameras = [hudCam];
offsetView.add(animDropDownMenu); offsetView.add(animDropDownMenu);
@ -201,6 +207,9 @@ class DebugBoundingState extends FlxState
offsetControls(); offsetControls();
} }
if (FlxG.keys.justPressed.H)
hudCam.visible = !hudCam.visible;
/* if (charInput.hasFocus && FlxG.keys.justPressed.ENTER) /* if (charInput.hasFocus && FlxG.keys.justPressed.ENTER)
{ {
loadAnimShit(); loadAnimShit();
@ -219,7 +228,7 @@ class DebugBoundingState extends FlxState
function offsetControls():Void function offsetControls():Void
{ {
if (FlxG.keys.justPressed.RBRACKET) if (FlxG.keys.justPressed.RBRACKET || FlxG.keys.justPressed.E)
{ {
if (Std.parseInt(animDropDownMenu.selectedId) + 1 <= animDropDownMenu.length) if (Std.parseInt(animDropDownMenu.selectedId) + 1 <= animDropDownMenu.length)
animDropDownMenu.selectedId = Std.string(Std.parseInt(animDropDownMenu.selectedId) + 1); animDropDownMenu.selectedId = Std.string(Std.parseInt(animDropDownMenu.selectedId) + 1);
@ -227,7 +236,7 @@ class DebugBoundingState extends FlxState
animDropDownMenu.selectedId = Std.string(0); animDropDownMenu.selectedId = Std.string(0);
animDropDownMenu.callback(animDropDownMenu.selectedId); animDropDownMenu.callback(animDropDownMenu.selectedId);
} }
if (FlxG.keys.justPressed.LBRACKET) if (FlxG.keys.justPressed.LBRACKET || FlxG.keys.justPressed.Q)
{ {
if (Std.parseInt(animDropDownMenu.selectedId) - 1 >= 0) if (Std.parseInt(animDropDownMenu.selectedId) - 1 >= 0)
animDropDownMenu.selectedId = Std.string(Std.parseInt(animDropDownMenu.selectedId) - 1); animDropDownMenu.selectedId = Std.string(Std.parseInt(animDropDownMenu.selectedId) - 1);
@ -236,6 +245,9 @@ class DebugBoundingState extends FlxState
animDropDownMenu.callback(animDropDownMenu.selectedId); animDropDownMenu.callback(animDropDownMenu.selectedId);
} }
// Keyboards controls for general WASD "movement"
// modifies the animDropDownMenu so that it's properly updated and shit
// and then it's just played and updated from the animDropDownMenu callback, which is set in the loadAnimShit() function probabbly
if (FlxG.keys.justPressed.W || FlxG.keys.justPressed.S || FlxG.keys.justPressed.D || FlxG.keys.justPressed.A) if (FlxG.keys.justPressed.W || FlxG.keys.justPressed.S || FlxG.keys.justPressed.D || FlxG.keys.justPressed.A)
{ {
var missShit:String = ''; var missShit:String = '';
@ -255,6 +267,22 @@ class DebugBoundingState extends FlxState
animDropDownMenu.callback(animDropDownMenu.selectedId); animDropDownMenu.callback(animDropDownMenu.selectedId);
} }
if (FlxG.keys.justPressed.F)
{
onionSkinChar.visible = !onionSkinChar.visible;
}
// Plays the idle animation
if (FlxG.keys.justPressed.SPACE)
{
animDropDownMenu.selectedLabel = 'idle';
animDropDownMenu.callback(animDropDownMenu.selectedId);
}
// Playback the animation
if (FlxG.keys.justPressed.ENTER)
animDropDownMenu.callback(animDropDownMenu.selectedId);
if (FlxG.keys.justPressed.RIGHT || FlxG.keys.justPressed.LEFT || FlxG.keys.justPressed.UP || FlxG.keys.justPressed.DOWN) if (FlxG.keys.justPressed.RIGHT || FlxG.keys.justPressed.LEFT || FlxG.keys.justPressed.UP || FlxG.keys.justPressed.DOWN)
{ {
var animName = animDropDownMenu.selectedLabel; var animName = animDropDownMenu.selectedLabel;
@ -322,9 +350,14 @@ class DebugBoundingState extends FlxState
animDropDownMenu.setData(FlxUIDropDownMenu.makeStrIdLabelArray(animThing, true)); animDropDownMenu.setData(FlxUIDropDownMenu.makeStrIdLabelArray(animThing, true));
animDropDownMenu.callback = function(str:String) animDropDownMenu.callback = function(str:String)
{ {
var animName = animThing[Std.parseInt(str)]; // clears the canvas
onionSkinChar.pixels.fillRect(new Rectangle(0, 0, FlxG.width * 2, FlxG.height * 2), 0x00000000);
swagChar.playAnim(animName); // trace(); onionSkinChar.stamp(swagChar, Std.int(swagChar.x - swagChar.offset.x), Std.int(swagChar.y - swagChar.offset.y));
onionSkinChar.alpha = 0.6;
var animName = animThing[Std.parseInt(str)];
swagChar.playAnim(animName, true); // trace();
trace(swagChar.animOffsets.get(animName)); trace(swagChar.animOffsets.get(animName));
}; };
dropDownSetup = true; dropDownSetup = true;