Files
CodenameEngine/source/funkin/desktop/editors/CharacterEditor.hx
T

64 lines
2.2 KiB
Haxe

package funkin.desktop.editors;
import funkin.game.Character;
import flixel.FlxSprite;
import flixel.FlxObject;
import flixel.FlxCamera;
import flixel.FlxG;
class CharacterEditor extends WindowContent {
public function new(curCharacter:String) {
super('Character Editor - Loading...', 0, 0, 800, 600);
}
public var camHUD:FlxCamera;
public var char:Character;
public var curCharacter:String;
public var camFollow:FlxObject;
public override function create() {
super.create();
// camera stuff
parent.windowCameras[0].resizeScroll = false;
camHUD = new FlxCamera(800, 600, 1);
camHUD.pixelPerfectRender = true;
camHUD.bgColor = 0;
parent.addCamera(camHUD);
// stage
var bg = new FlxSprite(-600, -200, Paths.image('stages/default/stageback'));
bg.scrollFactor.set(0.9, 0.9);
var stageFront = new FlxSprite(-600, 600, Paths.image('stages/default/stagefront'));
stageFront.scrollFactor.set(0.9, 0.9);
var stageCurtains = new FlxSprite(-500, -300, Paths.image('stages/default/stagecurtains'));
stageCurtains.scrollFactor.set(1.3, 1.3);
char = new Character(100, 100, curCharacter, false);
for(e in [bg, stageFront, stageCurtains]) {
e.antialiasing = true;
}
add(bg);
add(stageFront);
add(char);
add(stageCurtains);
// character setup & following
camFollow = new FlxObject(0, 0, 2, 2);
var charMidpoint = char.getGraphicMidpoint();
camFollow.setPosition(charMidpoint.x, charMidpoint.y);
add(camFollow);
windowCamera.follow(camFollow, LOCKON, 999);
title = 'Character Editor - ${char.curCharacter}.xml';
}
public override function update(elapsed:Float) {
super.update(elapsed);
if (parent.focused) {
if (FlxG.keys.pressed.RIGHT) camFollow.x += elapsed * 200;
if (FlxG.keys.pressed.LEFT) camFollow.x -= elapsed * 200;
if (FlxG.keys.pressed.DOWN) camFollow.y += elapsed * 200;
if (FlxG.keys.pressed.UP) camFollow.y -= elapsed * 200;
}
}
}