OSDN Git Service

Merge branch 'master' of https://scm.sourceforge.jp/gitroot/h58pcdgame/GameScriptCore...
[h58pcdgame/GameScriptCoreLibrary.git] / documents / pcdsl.txt
1
2 "[1376850227193,[],[[66,50,0,0,0,'MainCharacterClass','var t=};t;',"var t={0"],],[]]"
3 "[1376850774045,[],[[68,50,0,0,0,'MainCharacterClass','var t={};t;',"var t={0"],],[]]"
4 "[1376851010923,[],[[70,50,0,0,0,'MainCharacterClass','var t={};t;',"var t={0"],],[]]"
5 "[1376851135398,[],[[72,50,0,0,0,'MainCharacterClass','var t={};t;',"var t={0"],],[]]"
6 "[1376851405252,[],[[74,50,0,0,0,"MainCharacterClass","var t={};t;","var t={0"],],[]]"
7
8 // StageObjectsはステージに文字シンボルとして配置したいオブジェクト定義の連想配列である。
9 // StageObjectの各項目の指定方法は以下の二通りある。
10 // ・クラス名指定 ... コンストラクタがに引数が不要な時
11 // a : BlockClass
12 // ・拡張指定
13 // a : {base : FreeItemClass,                   //鋳型となるクラス名
14 //      args : '1190.png',                              //コンストラクタに指定する引数(一つだけの場合) stageは自動で指定されるので不要
15 //      args : ['1190.png', callback],  //二つ以上の場合。やはり第一引数のstageは不要
16 //      prop : {times : 1},                             //各インスタンスに指定したいプロパティの連想配列。(省略可)
17                                                                                 //この例ではaFreeItemClass.timesプロパティを1に指定している
18 //      adjust : [-50, 50],                             //位置の微調整。必ずX座標、Y座標の相対位置を示す配列にする。(省略可)
19 //      extid : 19                                              //ネットワークを超えて一つのオブジェクトである必要がある場合にはゼロではない値を取る(ステージ内で固有の値, 省略可; 既定0)
20 //              sync : true                                             //ネットワーク同期を有効に(addStageObjectの第二引数)(省略可; 既定false)
21
22 var stgObjects = {
23         //詳細はdocuments/pcdsl.txtを参照
24         
25         // BlockClass : 普通のブロック。 引数に画像名を指定
26     a : {base:BlockClass,args:'1190.png'},
27     
28     // SlopeBlockClass : 当たり判定が斜めのブロック。
29     // 引数 : 画像名, 当たり判定領域左側の開始位置のブロック上辺からの高さ, 当たり判定領域右側の...
30     //        たとえば、この例のように 0, 32 と指定すれば右下がりの坂になり、32, 0と指定すれば左下がり、 16, 16と指定すれば半分の高さの長方形になる
31     // enableBlockMode : 当たり判定領域をデバッグ表示する。
32     b : {base:SlopeBlockClass,args:['1191.png',0,32],prop:{enableDebugMode:true}},
33     
34     // FreeItemClass : キャラが取得するとコールバックが実行されるアイテム
35     // callback : 誰かに取得されたときに発生するコールバック。アタックした人、そのアタック直後のx, y座標が引数にセットされる。
36     // times : 取得できる回数で、-1で無限。
37     c : {base:FreeItemClass,args:["1234.png",callBack],prop:{times:1}},
38     
39     // 何もブロックを置かない位置のためにかならずこのようなエントリーを記述
40     _ : null
41 };
42
43 // FreeItemClassのコールバック
44 function callBack(obj, obj_x, obj_y)
45 {
46         if(obj instanceof MainCharacterClass){
47
48         }
49 }
50
51 var stgInfo = {
52     width: 6400,                                //横サイズ
53     height: 480,                                //縦サイズ
54     background: "back2.png"             //背景画像。横幅は640pxである必要はない。
55 };
56
57 with(stgObjects) {
58     var tbl = [
59         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
60         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
61         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
62         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
63         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
64         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
65         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
66         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
67         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
68         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
69         [a,b,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
70         [a,a,b,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
71         [a,a,a,b,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
72         [a,a,a,a,b,_,_,_,_,c,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
73         [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],
74     ];
75 }
76
77 //約束事
78 var stage = new PCDSLStageClass(stgInfo, tbl);
79
80 stage.runStage = function(){
81         PCDSLStageClass.prototype.runStage.apply(this, []);
82         var main = new MainCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png", "kuma4.png", "kuma3.png", "kuma2.png"], ["kumaready.png"]]);
83         main.size.x = 64;
84         main.size.y=64;
85         main.origin.x = 50;
86         main.origin.y =0;
87         main.ownerUID = stage.manager.userID;
88         stage.userControlledCharacter = main;
89         stage.addStageObject(main, true);
90 },
91
92
93 stage;
94
95
96 <How to use PCDStageLanguage>
97
98 <stgObjectsの書き方>
99 c : {base:BaseClass,args:[],...},
100
101 c:マップでの参照文字を指定します。この場合cとなります。
102 base:ベースクラスを指定します。
103         BlockClass:正方形の当たり判定のある普通のブロックです。
104 args:各クラスの引数を配列で指定します。ベースクラスにより内容は変化します。
105 以上3つのプロパティは必須です。以下は任意のプロパティ。
106 (省略)
107 <各クラスの引数>
108 BlockClass : 普通のブロック。 引数に画像名を指定
109     a : {base:BlockClass,args:'1190.png'},
110
111 SlopeBlockClass : 当たり判定が斜めのブロック。
112     // 引数 : 画像名, 当たり判定領域左側の開始位置のブロック上辺からの高さ, 当たり判定領域右側の...
113     //        たとえば、この例のように 0, 32 と指定すれば右下がりの坂になり、32, 0と指定すれば左下がり、 16, 16と指定すれば半分の高さの長方形になる
114     // enableBlockMode : 当たり判定領域をデバッグ表示する。
115     b : {base:SlopeBlockClass,args:['1191.png',0,32],prop:{enableDebugMode:true}},
116     
117     // FreeItemClass : キャラが取得するとコールバックが実行されるアイテム
118     // callback : 誰かに取得されたときに発生するコールバック。アタックした人、そのアタック直後のx, y座標が引数にセットされる。
119     // times : 取得できる回数で、-1で無限。
120     c : {base:FreeItemClass,args:["1234.png",callBack],prop:{times:1}},
121
122 <stgObjectsの例>
123 a : {base:BaseClass,args:'1190.png'},
124         正方形の普通のブロック
125         1110, 1120, 
126         1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1140, 
127         1183, 1214, 1216, 1222, 1232, 1233, 1234, 1235, 
128         1150, 1160, 1170, 1190,
129         1158, 1168, 1178, 1198,
130
131 b : {base:SlopeBlockClass,args:['1191.png',0,32]},
132         右下がり45度のブロック
133         1151, 1161, 1171, 1191, 
134         
135 c : {base:SlopeBlockClass,args:['1192.png',32,0]},
136         左下がり45度のブロック
137         1152, 1162, 1172, 1192, 
138         
139 d : {base:SlopeBlockClass,args:['1193.png',16,16]},
140         ハーフブロック
141         1153, 1163, 1173, 1193, 
142         
143 e : {base:SlopeBlockClass,args:['1194.png',0,16]},
144         右下がり上
145         1154, 1164, 1174, 1194, 
146         
147 f: {base:SlopeBlockClass,args:['1195.png',16,0]},
148         左下がり上
149         1155, 1165, 1175, 1195, 
150         
151 g : {base:SlopeBlockClass,args:['1196.png',16,32]},
152         右下がり下
153         1156, 1166, 1176, 1196, 
154         
155 h : {base:SlopeBlockClass,args:['1197.png',16,32]},
156         左下がり下
157         1157, 1167, 1177, 1197, 
158
159
160 prop: {}
161 <基本構造テンプレート>
162 var stgObjects = {
163     a : {base:BlockClass,args:'1131.png'},
164     _ : null
165 };
166
167 var stgInfo = {
168     width: 1472,
169     height: 480,
170     background: "back2.png"
171 };
172
173 with(stgObjects) {
174     var tbl = [
175         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
176         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
177         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
178         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
179         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
180         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
181         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
182         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
183         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
184         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
185         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
186         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
187         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
188         [a,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,a],
189         [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],
190     ];
191 }
192
193
194 var stage = new PCDSLStageClass(stgInfo, tbl);
195 stage.runStage = function(){
196         PCDSLStageClass.prototype.runStage.apply(this, []);
197         var main = new MainCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png"]]);
198         main.origin.x = 50;
199         main.origin.y = 250;
200         main.ownerUID = stage.manager.userID;
201         stage.addStageObject(main, true);
202         stage.userControlledCharacter = main;
203         stage.manager.setBackgroundMusic("S00");
204 },
205
206 stage;