ニコ生ゲーム開発 : ロジック開発ドキュメント。
	
	* 実際のソースコードと異なる場合があります。
	* 一部は、引数や型の情報を省略しています。実際のソースコードを確認して下さい。 

------------------------------------------------------------------------------------------
Characterクラス

	BodySize	    : キャラクタのサイズを取得する。仕様上 32ピクセル固定。
	MiddleBodySize  : キャラクタの中点からのサイズを取得する。 32ピクセルの場合、16ピクセルになる。
	
	Speed           : 移動速度
	Pos             : 位置
	Gravity         : 割り当てる重力値
	JumpPower       : ジャンプ力
	NowJumpPower    : 現在のジャンプ力。落下と同時に低下する。
	IsNowJumping    : キャラクタが空中に居るかどうかを取得します。
	IsBoosting      : 高速移動を行うかどうか設定または、取得します。
	
	CanDefaultAction : キャラクタの移動を自動制御するかどうか。falseの場合は、既定の移動計算は、行われなくなる。
	                   ActionEventなどで細かな制御を行う場合や勝手に座標が変わると不都合が発生する場合など。
	 
	
	ActionCellCount : 画面外でキャラクタの行動を発生させるための許容セル数を設定または、取得する。
	                  画面に映るキャラクタは、すべて行動を行うが画面外は、通常休止状態となりキャラクタの行動は、行われない。
	                  ActionCellCount = 3 とした場合、画面外から3セル分以内であれば、行動を実行する。
	                  なお、ActionCellCount = 0 とすれば、画面外であってもキャラクタの行動は、実行される。
	                  
	                  ■■■■■■■■■■■■■■■■■■
	                  ■■□□□□□□□□□□□□□□■■
	                  ■■□□□□□□□□□□□□□□■■
	                  ■■□□□□□□□□□□□□□□■■	■ 行動を実行しないエリア
	                  ■■□□□●●●●●●●●□□□■■	● 可視エリア(行動を実行する)
	                  ■■□□□●●●●●●●●□□□■■	□ 不可視エリア
	                  ■■□□□●●●●●●●●□□□■■           (ActionCellCountで指定された範囲であれば行動を実行する。)
	                  ■■□□□●●●●●●●●□□□■■
	                  ■■□□□●●●●●●●●□□□■■
	                  ■■□□□●●●●●●●●□□□■■
		            ■■□□□□□□□□□□□□□□■■
	                  ■■□□□□□□□□□□□□□□■■
	                  ■■□□□□□□□□□□□□□□■■
	                  ■■■■■■■■■■■■■■■■■■
	                  
	DirectionTypes TryMove( x , y )
		指定したピクセル座標への移動を試みる。
		移動途中に障害物があった場合は、その場で移動を停止する。
		衝突した場合は、衝突した方向をDirectionTypes列挙子の組み合わせを返します。
		
		DirectionTypes.Noneの場合は、衝突はしていません。

	Dispose()
		キャラクタを破棄します。
		
	Action()
		キャラクタの移動を実行してActionEventを発生させます。
	
	ActionEvent
		イベントハンドラです。Action()が呼び出されキャラクタの移動処理が行われたあとに発生します。

	LogicParameter
		ActionEventで使用されるフラグやカウンターなどのパラメータの格納などに使用します。
		
-----------------------------------
	ActionEvent => キャラクタの移動処理後に行われるイベント
	
	キャラクタの固有の動作、処理、アイテムの効果などは、すべてActionEventに定義します。
	
	newChar.ActionEvent += new EventHandler<CharacterActionEventArgs>( ( sender , e ) => {
		// ここにイベントの内容を記述する
	});
	
	sender : イベントの発生源のオブジェクト。この場合は、Characterオブジェクト。
	e      : イベントに渡されたパラメータ。
	
	e.Target            : Actionが実行されイベントを発生したキャラクタ。
	e.IsHit             : プレーヤーと衝突したかどうかを取得する。
	
	e.ToHitCell         : 移動中に衝突したセルをレイヤーを指定して取得する。
	e.ToBlock           : 移動中に衝突したセルがブロック属性または、ステージ範囲外かどうか取得する。
	                      有効になっている地形レイヤーをすべて検査します。
	                      
	e.ToVerticalPos     : 垂直方向で移動を阻止された座標を取得する。
	e.ToHorizontalPos   : 水平方向で移動を阻止された座標を取得する。
	
	・衝突した方向を取得する
	
		DirectionTypes CharacterAction.ToCharacterDirection( Character , Character , bool );
		
		キャラクタ同士の距離が最も近い方向を取得します。
		
	※ 回転や一定方向への平行移動などよく使われる処理は、CharacterActionクラスにいくつかのメソッドを定義しています。

------------------------------------------------------------------------------------------
Speedクラス

	キャラクタの移動速度を表す。

	X                 現在のX軸の速度
	Y                 現在のY軸の速度
	
	MaxX			X軸方向の最高速度
	MaxY              Y軸方向の最高速度
	MaxBoostX		高速移動自のX軸方向の最高速度
	MaxBoostY		高速移動自のY軸方向の最高速度
	
	Reset()           現在の速度を0に設定して移動速度を打ち消す。
	
	[Memo]
		X < 0 : 左    Y < 0 : 上
		X > 0 : 右    Y > 0 : 下
------------------------------------------------------------------------------------------
Posクラス

	キャラクタやセルの座標を表す。
	
	CellX			X軸方向のセル単位の座標
	CellY             Y軸方向のセル単位の座標
	
	X                 X軸方向のピクセル単位の座標
	Y                 Y軸方向のピクセル単位の座標
	
	PrevX,PrevY       キャラクタの軌道計算に用いるために使用される前回のピクセル座標。
	
	MovingDirection   X,YとPrevX,PrevYを用いて算出される移動方向。[Flags]
	Direction		キャラクタの向き。最後に向いていた方向を返す[Flags]
	
	Reset()           PrevX,PrevYをX,Yと同期する。

	Cell ImmediateCell( DirectionTypes , LayerTypes )
				直近(1セル先)のセルを取得します。
				
			□□□□□
			□123□
			□4自5□
			□678□
			□□□□□
			
			1 = Top | Left     左上
			2 = Top            上
			3 = Top | Right    右上
			4 = Left           左
			5 = Right          右
			6 = Bottom | Left  左下
			7 = Bottom         下
			8 = Bottom | Right 右下
			自= None           自分自身
			
	bool ImmediateBlockCell( DirectionTypes )
				直近(1セル先)がBlock属性であるかどうかを取得します。
				表示されてる地形レイヤーをすべて検査します。
				
------------------------------------------------------------------------------------------
GameMapクラス

	ゲーム実行中のマップを管理する。
	
	StageLoad             ステージ(マップ)を読み込む。
	StageNo               現在のステージ(マップ)番号を取得する。
	Now                   現在のマップを取得する。
	IsMiddleShow          Middleレイヤーを表示するかどうか設定または、取得する。
	IsMiddleFrontShow     MiddleFrontレイヤーを表示するかどうか設定または、取得する。
	IsFrontCellBlock      セル座標を指定して地形レイヤーがブロック属性または、ステージ範囲外がどうかを返す。
	
------------------------------------------------------------------------------------------
CharacterActionクラス
	
	Rotation              中点を指定してキャラクタを回転します。 壁があっても擦り抜けます。
	GivenDirection        キャラクタを一定の方向に行き来するように移動する。
	Verlet                キャラクタをVerlet法に基づいて軌道計算を行い移動する。
	HitBound              対象のキャラクタと衝突していた場合にリバウンドする。
	HitStop               対象のキャラクタと衝突していた場合にその場で移動を停止する。
	ToCharacterDirection  キャラクタ同士の距離で最も近い方向を取得する。
	

MathExクラス
	
	数学系メソッド
	
	Distance              キャラクタ同士の距離を取得する。
	                      2点間の距離を取得する。
	
	Angle                 2点間の角度を取得する。x1,y1からy1,y2を指した角度。
	
------------------------------------------------------------------------------------------------------------------------------
データファイル構造
	
	* XX = 2桁の数字
	
	ステージファイルの場所
	
		フォルダパス : Data/Stage/StageXX
		
	StXX_MapData.xml
		マップデータファイル。下記のようなXMLで表される。

		---------------- XML ---------------------
		<?xml version="1.0" encoding="utf-8"?>
		<SettingLocal>
			<Header>
				<Bgm />
				<BackChipSetName />
				<BackMiddleChipSetName />
				<MiddleChipSetName />
				<MiddleFrontChipSetName / >
				<FrontChipSetName />
				<CharacterChipSetName />
			</Header>
			<Map>
				<BackLayer />
				<BackMiddleLayer />
				<MiddleLayer />
				<MiddleFrontLayer />
				<FrontLayer />
				<CharacterLayer />
			</Map>
		</SettingLocal>
		-------------------------------------------
		
		SettingLocal/Header/Headerで定義されたファイル名がそれぞれのレイヤーに適応される
		チップ定義ファイルです。* Bgmは、以外。
		
	チップ定義ファイル
		
		* 1行目は、チップに割り当てる画像ファイル。
		
		2行目以降は、左から
		"ID,識別名,摩擦値,属性,説明"
		
		----------------------------
		St01_ChipImg06.jpg
		0,0,0,None,空白
		1,1,0,0,なのは
		2,2,0,0,フェイト
		3,3,0,0,はやて
		4,4,0,0,敵1
		----------------------------

	キャラクタ画像(ドット絵)
		
		Data\CharacterImagesフォルダにキャラクタごとに画像(.jpg)を作成する。
		ドット絵の配置については、上記フォルダ内の"テンプレート.jpg"を参照。
		
		ファイル名は、"キャラクタ番号.jpg" このときキャラクタ番号は、0埋めの3桁。
		例 : 001.jpg