[AS3] flixelでカスタムポーズ画面を出す

2010/11/12

こんにちは。きんくまです。
最近は半分ほどObjective-CでOpenGLESについてやっております。
なかなか難しいですね。

さて、ブログのコメントで質問がありましたので、それについて調べてみました。

えーと、flixelでカスタマイズしたポーズ画面をつくりたいとのことでした。
どうやら以前私が記事を書いたときからバージョンがあがったみたいで、少し勝手が違っているみたいです。

というわけで最新版を調べた結果、

1.FlxGroupを継承したクラスをつくり、それをポーズ画面とする
2.FlxGameを敬称したメインクラスからthis.pause = new OriginalPause();などとして登録してあげるとOK

ということみたいです。うまくいくとこんな感じになりました。

pause101119

左側のアイコンは右側のを流用しちゃっています。この辺は自分でオリジナルアイコンを作って登録しないと
いけないみたいですね。以前のマウスとかのアイコンはどこにいっちゃったんでしょ?

ソース一式はここにおいておきます。

メイン

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import org.flixel.FlxGame;
	import org.flixel.FlxState;
	
	/**
	 * ...
	 * @author KinkumaDesign
	 */
	
	public class Main extends FlxGame 
	{
		
		public function Main():void 
		{
			super(320, 240, PlayState, 2);
			FlxState.bgColor = 0x2D4779;
			this.pause = new OriginalPause();
		}		
	}
	
}

■OriginalPause
これの途中部分はorg.flixel.data.FlxPauseのコンストラクタ部分からひっぱってきています。

package  
{
	import org.flixel.FlxG;
	import org.flixel.FlxGroup;
	import org.flixel.FlxObject;
	import org.flixel.FlxSprite;
	import org.flixel.FlxText;
	/**
	 * ...
	 * @author KinkumaDesign
	 */
	public class OriginalPause extends FlxGroup
	{
		[Embed(source="org/flixel/data/key_minus.png")] private var ImgKeyMinus:Class;
		[Embed(source="org/flixel/data/key_plus.png")] private var ImgKeyPlus:Class;
		[Embed(source="org/flixel/data/key_0.png")] private var ImgKey0:Class;
		[Embed(source = "org/flixel/data/key_p.png")] private var ImgKeyP:Class;
		
		public function OriginalPause() 
		{
			super();
			scrollFactor.x = 0;
			scrollFactor.y = 0;
			var w:uint = 160;
			var h:uint = 100;
			x = (FlxG.width-w)/2;
			y = (FlxG.height-h)/2;
			add((new FlxSprite()).createGraphic(w,h,0xaa000000,true),true);			
			(add(new FlxText(0,0,w,"this game is"),true) as FlxText).alignment = "center";
			add((new FlxText(0, 10, w, "PAUSED")).setFormat(null, 16, 0xffffff, "center"), true);
			
			add(new FlxSprite(4,36,ImgKeyP),true);
			add(new FlxText(16,36,w-16,"A Button"),true);
			add(new FlxSprite(4,50,ImgKey0),true);
			add(new FlxText(16,50,w-16,"B Button"),true);
			add(new FlxSprite(4,64,ImgKeyMinus),true);
			add(new FlxText(16,64,w-16,"Mouse"),true);
			add(new FlxSprite(4,78,ImgKeyPlus),true);
			add(new FlxText(16,78,w-16,"Move"),true);
			
			var offsetX:uint = 80;
			add(new FlxSprite(4 + offsetX,36,ImgKeyP),true);
			add(new FlxText(16 + offsetX,36,w-16,"Pause Game"),true);
			add(new FlxSprite(4 + offsetX,50,ImgKey0),true);
			add(new FlxText(16 + offsetX,50,w-16,"Mute Sound"),true);
			add(new FlxSprite(4 + offsetX,64,ImgKeyMinus),true);
			add(new FlxText(16 + offsetX,64,w-16,"Sound Down"),true);
			add(new FlxSprite(4 + offsetX,78,ImgKeyPlus),true);
			add(new FlxText(16 + offsetX,78,w-16,"Sound Up"),true);
		}
		
	}

}

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る