/src/MenuState.as

http://github.com/schonstal/shadowmonk · ActionScript · 89 lines · 74 code · 15 blank · 0 comment · 16 complexity · 0d4870c6d7eb2a19766d7cdfef5ec7dc MD5 · raw file

  1. package
  2. {
  3. import org.flixel.*;
  4. public class MenuState extends FlxState
  5. {
  6. private var f:Boolean = true;
  7. private var items:Array;
  8. private var _current:Number = 1;
  9. private var _t:FlxText;
  10. private var _selected:Boolean = false;
  11. private var _light:Number = 0xfff6e5fa;
  12. private var _dark:Number = 0xff682777;
  13. public function MenuState()
  14. {
  15. items = new Array();
  16. var m:Title;
  17. m = new Title();
  18. add(m);
  19. FlxG.level = 1;
  20. var t:FlxText;
  21. t = new FlxText(0,0,200,"Version: 0.4-ALPHA");
  22. t.alignment = "left";
  23. add(t);
  24. addItem(1, "Start Game");
  25. addItem(2, "Credits");
  26. SoundBank.music("menu");
  27. }
  28. override public function update():void
  29. {
  30. super.update();
  31. if(!_selected) {
  32. if(FlxG.keys.justPressed("UP")) {
  33. SoundBank.play("up");
  34. if(_current > 1) {
  35. moveCursor(_current - 1);
  36. } else {
  37. moveCursor(items.length);
  38. }
  39. } else if(FlxG.keys.justPressed("DOWN")) {
  40. SoundBank.play("down");
  41. if(_current < items.length) {
  42. moveCursor(_current + 1);
  43. } else {
  44. moveCursor(1);
  45. }
  46. } else if(FlxG.keys.justPressed("X") || FlxG.keys.justPressed("ENTER")) {
  47. _selected = true;
  48. SoundBank.play("select");
  49. FlxG.music.fadeOut(0.5);
  50. if(_current == 1)
  51. Starter.levelSelect();
  52. else if(_current == 2)
  53. FlxG.fade.start(0xff000000,0.5,function():void { FlxG.state = new Credits() });
  54. }
  55. }
  56. }
  57. private function addItem(item:Number, title:String):void {
  58. var t:FlxText;
  59. t = new FlxText(92,80+(item*12),200, title);
  60. t.alignment = "right";
  61. t.setFormat("SNES");
  62. t.color = (_current==item?_light:_dark);
  63. items[item-1] = t;
  64. add(t);
  65. }
  66. private function moveCursor(newItem:int):void {
  67. var selected:FlxText = items[_current-1] as FlxText;
  68. selected.color = _dark;
  69. _current = newItem;
  70. selected = items[_current-1] as FlxText;
  71. selected.color = _light;
  72. }
  73. }
  74. }