OSDN Git Service

Merge branch 'master' of https://scm.sourceforge.jp/gitroot/h58pcdgame/GameScriptCore...
[h58pcdgame/GameScriptCoreLibrary.git] / www / index_local_debug.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta http-equiv="X-UA-Compatible" content="IE=9">
5 <meta charset="UTF-8">
6 <title>HTML5Test</title>
7 <style type="text/css">
8         h1, h2, h3 {
9                 margin:0px;
10         }
11         body, textarea {
12                 font-family: Consolas, 'Courier New', Courier, Monaco, monospace;
13                 font-size: 11px;
14                 line-height: 1.2;
15         }
16 </style>
17 <script type="text/javascript" src="./corelib/header.js" charset="UTF-8"></script>
18 <script type="text/javascript">
19
20 var mainManager = null;
21 onload = function()
22 {
23         var val = localStorage.getItem("savedat");
24         if(val)
25         {
26                 document.getElementById("stageCode").value = val;
27         }
28         
29         //ゲームマネージャー初期化
30         mainManager = new GameManager();
31         
32 };
33
34 var run = function(){
35
36         var stage = document.getElementById("stageCode").value;
37         mainManager.loadStageFromLocal(stage, null);
38 };
39
40 function stop(){
41         mainManager.stopStage();
42 }
43
44 function save()
45 {
46         localStorage.setItem('savedat', document.getElementById('stageCode').value);
47 }
48
49 </script>
50 </head>
51 <body>
52         <div id="MainArea" style="position: inline"></div>
53         <div id="Resources"></div>
54         <div style="z-index: 1; top: 520px; position: absolute; left: 0;">
55         <form><textarea id="DebugText" rows="8" cols="64"></textarea></form></div>
56         <div style="position: absolute; left: 650px; top: 0; right: 0; z-index: 100">
57                 <form>
58                 <textarea id="stageCode" rows="60" style="width: 100%; height: 90%; z-index: 100">
59
60
61 // StageObjectsはステージに文字シンボルとして配置したいオブジェクト定義の連想配列である。
62 // StageObjectの各項目の指定方法は以下の二通りある。
63 // ・クラス名指定 ... コンストラクタがに引数が不要な時
64 // a : BlockClass
65 // ・拡張指定
66 // a : {base : FreeItemClass,                   //鋳型となるクラス名
67 //      args : '1190.png',                              //コンストラクタに指定する引数(一つだけの場合) stageは自動で指定されるので不要
68 //      args : ['1190.png', callback],  //二つ以上の場合。やはり第一引数のstageは不要
69 //      prop : {times : 1},                             //各インスタンスに指定したいプロパティの連想配列。(省略可)
70                                                                                 //この例ではaFreeItemClass.timesプロパティを1に指定している
71 //      adjust : [-50, 50]},                    //位置の微調整。必ずX座標、Y座標の相対位置を示す配列にする。(省略可)
72
73 var stgObjects = {
74         
75         // BlockClass : 普通のブロック。 引数に画像名を指定
76     a : {base:BlockClass,args:'1190.png'},
77     
78     // SlopeBlockClass : 当たり判定が斜めのブロック。
79     // 引数 : 画像名, 当たり判定領域左側の開始位置のブロック上辺からの高さ, 当たり判定領域右側の...
80     //        たとえば、この例のように 0, 32 と指定すれば右下がりの坂になり、32, 0と指定すれば左下がり、 16, 16と指定すれば半分の高さの長方形になる
81     // enableBlockMode : 当たり判定領域をデバッグ表示する。
82     b : {base:SlopeBlockClass,args:['1191.png',0,32],prop:{enableDebugMode:true}},
83     
84     // FreeItemClass : キャラが取得するとコールバックが実行されるアイテム
85     // callback : 誰かに取得されたときに発生するコールバック。アタックした人、そのアタック直後のx, y座標が引数にセットされる。
86     // times : 取得できる回数で、-1で無限。
87     c : {base:FreeItemClass,args:["1234.png",callBack],prop:{times:1}},
88     
89     // 何もブロックを置かない位置のためにかならずこのようなエントリーを記述
90     _ : null
91 };
92
93 // FreeItemClassのコールバック
94 function callBack(obj, obj_x, obj_y)
95 {
96         if(obj instanceof MainCharacterClass){
97
98         }
99 }
100
101 var stgInfo = {
102     width: 6400,                                //横サイズ
103     height: 480,                                //縦サイズ
104     background: "back2.png"             //背景画像。横幅は640pxである必要はない。
105 };
106
107 with(stgObjects) {
108     var tbl = [
109         [],
110         [],
111         [],
112         [],
113         [],
114         [],
115         [],
116         [],
117         [],
118         [],
119         [b],
120         [_,b],
121         [_,_,b],
122         [_,_,_,b,_,_,_,_,_,c],
123         [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],
124     ];
125 }
126
127 //約束事
128 var stage = new PCDSLStageClass(stgInfo, tbl, null);
129
130
131 var main = new MainCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png", "kuma4.png", "kuma3.png", "kuma2.png"], ["kumaready.png"]]);
132 main.size.x = 64;
133 main.size.y=64;
134 main.origin.x = 50;
135 main.origin.y =0;
136 stage.operatingCharacter = main;
137 stage.addStageObject(main);
138
139
140 stage;
141
142                 </textarea>
143                 <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>
144                 ※すべてのコードを消したうえでセーブし更新すると最初のコードに戻ります。
145                 </form>
146         </div>
147 </body>
148 </html>