
"[1376850227193,[],[[66,50,0,0,0,'MainCharacterClass','var t=};t;',"var t={0"],],[]]"
"[1376850774045,[],[[68,50,0,0,0,'MainCharacterClass','var t={};t;',"var t={0"],],[]]"
"[1376851010923,[],[[70,50,0,0,0,'MainCharacterClass','var t={};t;',"var t={0"],],[]]"
"[1376851135398,[],[[72,50,0,0,0,'MainCharacterClass','var t={};t;',"var t={0"],],[]]"
"[1376851405252,[],[[74,50,0,0,0,"MainCharacterClass","var t={};t;","var t={0"],],[]]"

// StageObjectsはステージに文字シンボルとして配置したいオブジェクト定義の連想配列である。
// StageObjectの各項目の指定方法は以下の二通りある。
// ・クラス名指定 ... コンストラクタがに引数が不要な時
// a : BlockClass
// ・拡張指定
// a : {base : FreeItemClass,			//鋳型となるクラス名
//      args : '1190.png',				//コンストラクタに指定する引数(一つだけの場合) stageは自動で指定されるので不要
//      args : ['1190.png', callback],	//二つ以上の場合。やはり第一引数のstageは不要
//      prop : {times : 1},				//各インスタンスに指定したいプロパティの連想配列。(省略可)
										//この例ではaFreeItemClass.timesプロパティを1に指定している
//      adjust : [-50, 50],				//位置の微調整。必ずX座標、Y座標の相対位置を示す配列にする。(省略可)
//      extid : 19						//ネットワークを超えて一つのオブジェクトである必要がある場合にはゼロではない値を取る（ステージ内で固有の値, 省略可; 既定0）
//		sync : true						//ネットワーク同期を有効に(addStageObjectの第二引数)(省略可; 既定false)

var stgObjects = {
	//詳細はdocuments/pcdsl.txtを参照
	
	// BlockClass : 普通のブロック。 引数に画像名を指定
    a : {base:BlockClass,args:'1190.png'},
    
    // SlopeBlockClass : 当たり判定が斜めのブロック。
    // 引数 : 画像名, 当たり判定領域左側の開始位置のブロック上辺からの高さ, 当たり判定領域右側の...
    //        たとえば、この例のように 0, 32 と指定すれば右下がりの坂になり、32, 0と指定すれば左下がり、 16, 16と指定すれば半分の高さの長方形になる
    // enableBlockMode : 当たり判定領域をデバッグ表示する。
    b : {base:SlopeBlockClass,args:['1191.png',0,32],prop:{enableDebugMode:true}},
    
    // FreeItemClass : キャラが取得するとコールバックが実行されるアイテム
    // callback : 誰かに取得されたときに発生するコールバック。アタックした人、そのアタック直後のx, y座標が引数にセットされる。
    // times : 取得できる回数で、-1で無限。
    c : {base:FreeItemClass,args:["1234.png",callBack],prop:{times:1}},
    
    // 何もブロックを置かない位置のためにかならずこのようなエントリーを記述
    _ : null
};

// FreeItemClassのコールバック
function callBack(obj, obj_x, obj_y)
{
	if(obj instanceof MainCharacterClass){

	}
}

var stgInfo = {
    width: 6400,				//横サイズ
    height: 480,				//縦サイズ
    background: "back2.png"		//背景画像。横幅は640pxである必要はない。
};

with(stgObjects) {
    var tbl = [
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,b,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,a,b,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,a,a,b,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,a,a,a,b,_,_,_,_,c,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],
    ];
}

//約束事
var stage = new PCDSLStageClass(stgInfo, tbl);

stage.runStage = function(){
	PCDSLStageClass.prototype.runStage.apply(this, []);
	var main = new MainCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png", "kuma4.png", "kuma3.png", "kuma2.png"], ["kumaready.png"]]);
	main.size.x = 64;
	main.size.y=64;
	main.origin.x = 50;
	main.origin.y =0;
	main.ownerUID = stage.manager.userID;
	stage.userControlledCharacter = main;
	stage.addStageObject(main, true);
},


stage;


<How to use PCDStageLanguage>

<stgObjectsの書き方>
c : {base:BaseClass,args:[],...},

c:マップでの参照文字を指定します。この場合cとなります。
base:ベースクラスを指定します。
	BlockClass:正方形の当たり判定のある普通のブロックです。
args:各クラスの引数を配列で指定します。ベースクラスにより内容は変化します。
以上3つのプロパティは必須です。以下は任意のプロパティ。
(省略)
<各クラスの引数>
BlockClass : 普通のブロック。 引数に画像名を指定
    a : {base:BlockClass,args:'1190.png'},

SlopeBlockClass : 当たり判定が斜めのブロック。
    // 引数 : 画像名, 当たり判定領域左側の開始位置のブロック上辺からの高さ, 当たり判定領域右側の...
    //        たとえば、この例のように 0, 32 と指定すれば右下がりの坂になり、32, 0と指定すれば左下がり、 16, 16と指定すれば半分の高さの長方形になる
    // enableBlockMode : 当たり判定領域をデバッグ表示する。
    b : {base:SlopeBlockClass,args:['1191.png',0,32],prop:{enableDebugMode:true}},
    
    // FreeItemClass : キャラが取得するとコールバックが実行されるアイテム
    // callback : 誰かに取得されたときに発生するコールバック。アタックした人、そのアタック直後のx, y座標が引数にセットされる。
    // times : 取得できる回数で、-1で無限。
    c : {base:FreeItemClass,args:["1234.png",callBack],prop:{times:1}},

<stgObjectsの例>
a : {base:BaseClass,args:'1190.png'},
	正方形の普通のブロック
	1110, 1120, 
	1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1140, 
	1183, 1214, 1216, 1222, 1232, 1233, 1234, 1235, 
	1150, 1160, 1170, 1190,
	1158, 1168, 1178, 1198,

b : {base:SlopeBlockClass,args:['1191.png',0,32]},
	右下がり45度のブロック
	1151, 1161, 1171, 1191, 
	
c : {base:SlopeBlockClass,args:['1192.png',32,0]},
	左下がり45度のブロック
	1152, 1162, 1172, 1192, 
	
d : {base:SlopeBlockClass,args:['1193.png',16,16]},
	ハーフブロック
	1153, 1163, 1173, 1193, 
	
e : {base:SlopeBlockClass,args:['1194.png',0,16]},
	右下がり上
	1154, 1164, 1174, 1194, 
	
f: {base:SlopeBlockClass,args:['1195.png',16,0]},
	左下がり上
	1155, 1165, 1175, 1195, 
	
g : {base:SlopeBlockClass,args:['1196.png',16,32]},
	右下がり下
	1156, 1166, 1176, 1196, 
	
h : {base:SlopeBlockClass,args:['1197.png',16,32]},
	左下がり下
	1157, 1167, 1177, 1197, 


prop: {}
<基本構造テンプレート>
var stgObjects = {
    a : {base:BlockClass,args:'1131.png'},
    _ : null
};

var stgInfo = {
    width: 1472,
    height: 480,
    background: "back2.png"
};

with(stgObjects) {
    var tbl = [
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
        [a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],
    ];
}


var stage = new PCDSLStageClass(stgInfo, tbl);
stage.runStage = function(){
	PCDSLStageClass.prototype.runStage.apply(this, []);
	var main = new MainCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png"]]);
	main.origin.x = 50;
	main.origin.y = 250;
	main.ownerUID = stage.manager.userID;
	stage.addStageObject(main, true);
	stage.userControlledCharacter = main;
	stage.manager.setBackgroundMusic("S00");
},

stage;