package; import Controls.Control; import flixel.FlxG; import flixel.FlxSprite; import flixel.FlxSubState; import flixel.group.FlxGroup.FlxTypedGroup; import flixel.input.keyboard.FlxKey; import flixel.util.FlxColor; class PauseSubState extends MusicBeatSubstate { var grpMenuShit:FlxTypedGroup; var menuItems:Array = ['Resume', 'Restart Song', 'Exit to menu']; var curSelected:Int = 0; public function new(x:Float, y:Float) { super(); var bg:FlxSprite = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK); bg.alpha = 0.6; bg.scrollFactor.set(); add(bg); grpMenuShit = new FlxTypedGroup(); add(grpMenuShit); for (i in 0...menuItems.length) { var songText:Alphabet = new Alphabet(0, (70 * i) + 30, menuItems[i], true, false); songText.isMenuItem = true; songText.targetY = i; grpMenuShit.add(songText); } changeSelection(); cameras = [FlxG.cameras.list[1]]; } override function update(elapsed:Float) { super.update(elapsed); var upP = controls.UP_P; var downP = controls.DOWN_P; var accepted = controls.ACCEPT; if (upP) { changeSelection(-1); } if (downP) { changeSelection(1); } if (accepted) { var daSelected:String = menuItems[curSelected]; switch (daSelected) { case "Resume": close(); case "Restart Song": FlxG.resetState(); case "Exit to menu": FlxG.switchState(new MainMenuState()); } } if (FlxG.keys.justPressed.J) { // for reference later! // PlayerSettings.player1.controls.replaceBinding(Control.LEFT, Keys, FlxKey.J, null); } } function changeSelection(change:Int = 0):Void { curSelected += change; if (curSelected < 0) curSelected = menuItems.length - 1; if (curSelected >= menuItems.length) curSelected = 0; var bullShit:Int = 0; for (item in grpMenuShit.members) { item.targetY = bullShit - curSelected; bullShit++; item.alpha = 0.6; // item.setGraphicSize(Std.int(item.width * 0.8)); if (item.targetY == 0) { item.alpha = 1; // item.setGraphicSize(Std.int(item.width)); } } } }