<textarea id="stageCode" rows="60" style="width: 100%; height: 90%; z-index: 100">
+// 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座標の相対位置を示す配列にする。(省略可)
+
var stgObjects = {
+
+ // 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: 1472,
- height: 480,
- background: "back2.png"
+ 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,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
- [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
- [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
- [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [b],
+ [_,b],
+ [_,_,b],
+ [_,_,_,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],
];
}
+//約束事
+var stage = new PCDSLStageClass(stgInfo, tbl, null);
+
+
+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;
+stage.operatingCharacter = main;
+stage.addStageObject(main);
-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;
-
+
</textarea>
<input type="button" onclick="run(); return false;" value="run"><input type="button" onclick="stop(); return false;" value="stop"><input type="button" onclick="save(); return false;" value="save"><br>
※すべてのコードを消したうえでセーブし更新すると最初のコードに戻ります。