8
|
1 function parseXml(gl)
|
|
2 {
|
9
|
3
|
8
|
4 loadCharaXml(gl, "./xml/character.xml");//gl.charaにxmlファイルの中身を入れる
|
12
|
5 loadCharaXml(gl, "./xml2/enemy.xml");//gl.charaにxmlファイルの中身を入れる
|
|
6
|
8
|
7 loadEffectXml(gl, "./xml/effect.xml");//gl.effectにxmlファイルの中身をいれる
|
12
|
8 loadEffectXml(gl, "./xml2/bullets.xml");//gl.effectにxmlファイルの中身をいれる
|
|
9
|
|
10
|
8
|
11 loadBossXml(gl, "./xml/boss.xml");//gl.bossにxmlファイルの中身を入れる
|
|
12
|
11
|
13 loadCharaXml(gl, "./xml/titlefont.xml");//gl.effectにxmlファイルの中身をいれる
|
|
14 loadCharaXml(gl, "./xml/font_pushstart.xml");//gl.effectにxmlファイルの中身をいれる
|
|
15 loadCharaXml(gl, "./xml/font_superdandy.xml");//gl.effectにxmlファイルの中身をいれる
|
|
16 loadCharaXml(gl, "./xml/font_0.xml");//gl.effectにxmlファイルの中身をいれる
|
|
17 loadCharaXml(gl, "./xml/font_1.xml");//gl.effectにxmlファイルの中身をいれる
|
|
18 loadCharaXml(gl, "./xml/font_2.xml");//gl.effectにxmlファイルの中身をいれる
|
12
|
19 loadCharaXml(gl, "./xml/font_3.xml");//gl.effectにxmlファイルの中身をいれる
|
|
20 loadCharaXml(gl, "./xml/font_4.xml");//gl.effectにxmlファイルの中身をいれる
|
|
21 loadCharaXml(gl, "./xml/font_5.xml");//gl.effectにxmlファイルの中身をいれる
|
|
22 loadCharaXml(gl, "./xml/font_6.xml");//gl.effectにxmlファイルの中身をいれる
|
|
23 loadCharaXml(gl, "./xml/font_7.xml");//gl.effectにxmlファイルの中身をいれる
|
|
24 loadCharaXml(gl, "./xml/font_8.xml");//gl.effectにxmlファイルの中身をいれる
|
|
25 loadCharaXml(gl, "./xml/font_9.xml");//gl.effectにxmlファイルの中身をいれる
|
|
26 loadCharaXml(gl, "./xml/font_hige.xml");//gl.effectにxmlファイルの中身をいれる
|
|
27 loadCharaXml(gl, "./xml/font_1997yas_k.xml");//gl.effectにxmlファイルの中身をいれる
|
|
28 loadCharaXml(gl, "./xml/font_gameover.xml");//gl.effectにxmlファイルの中身をいれる
|
11
|
29
|
8
|
30 jiki = new makePlayer(gl.chara);//自機の情報をいれておくクラス、グローバル
|
12
|
31
|
|
32 gamesyokika();
|
8
|
33
|
|
34 enemy = [];//敵の情報を入れておく配列を用意、グローバル
|
|
35 pushEnemy(gl,enemy);//配列enemy[]に敵をpush
|
11
|
36 // pushEnemyBullets(gl, enemy);//配列enemy[]に敵の弾情報をpush
|
8
|
37
|
|
38 boss = [];//bossの情報を入れておく配列を用意,グローバル
|
|
39 pushBoss(gl, boss);//配列boss[]にbossの情報をpush
|
|
40
|
|
41 bullets = [];//弾の情報を入れておく配列を用意、グローバル
|
|
42 pushPlayerBullets(gl,bullets);//配列bullets[]に弾をpush
|
9
|
43
|
11
|
44 bomImage = [];//撃破時の爆発の情報をいれておく配列を用意。グローバル
|
|
45 pushBom(gl, bomImage);//配列 bom[]に爆発をpush
|
|
46
|
|
47 font = [];//fontを入れておく配列
|
|
48 pushFont(gl, font);//
|
|
49 // ebullets = [];//敵の弾の情報を入れておく配列を用意、グローバル
|
|
50 // pushEnemyBullets(gl, ebullets);
|
8
|
51 }
|
|
52
|
12
|
53
|
|
54
|
8
|
55 function loadCharaXml(gl,url)
|
|
56 {
|
|
57 if(gl.chara == undefined) gl.chara = new Object();
|
|
58 var xmlChara = new Object();
|
|
59 xmlChara = parsePanel(url);
|
|
60 for (var name in xmlChara)
|
|
61 {
|
|
62 gl.chara[name] = makeXmlObj(gl, xmlChara[name]);
|
|
63 gl.chara[name].texture = loadImageTexture(gl, xmlChara[name].image);
|
|
64 }
|
|
65 }
|
|
66
|
|
67 function loadEffectXml(gl,url)
|
|
68 {
|
|
69 if(gl.effect == undefined)gl.effect = new Object();
|
|
70 var xmlChara = new Object();
|
|
71 xmlChara = parsePanel(url);
|
|
72 for (var name in xmlChara)
|
|
73 {
|
|
74 gl.effect[name] = makeXmlObj(gl, xmlChara[name]);
|
|
75 gl.effect[name].texture = loadImageTexture(gl, xmlChara[name].image);
|
|
76 }
|
|
77 }
|
|
78
|
|
79 function loadBossXml(gl,url)
|
|
80 {
|
|
81 if(gl.boss == undefined)gl.boss = new Object();
|
|
82 var xmlChara = new Object();
|
|
83 xmlChara = parsePanel(url);
|
|
84 for (var name in xmlChara)
|
|
85 {
|
|
86 gl.boss[name] = makeXmlObj(gl, xmlChara[name]);
|
|
87 gl.boss[name].texture = loadImageTexture(gl, xmlChara[name].image);
|
|
88 }
|
|
89 }
|
|
90
|
|
91 function pushBoss(gl, boss)
|
|
92 {
|
|
93 for(var name in gl.boss)
|
|
94 {
|
|
95 boss.push(gl.boss[name]);
|
|
96 }
|
|
97 }
|
|
98
|
|
99
|
|
100 function pushEnemy(gl, enemy)
|
|
101 {
|
11
|
102 enemy.push(gl.chara["meteo"]);
|
12
|
103 enemy.push(gl.chara["enemy_greencrab"]);
|
8
|
104 enemy.push(gl.chara["missile"]);
|
|
105 enemy.push(gl.chara["gunbattery"]);
|
11
|
106 enemy.push(gl.effect["enemy_redbullet"]);
|
|
107 enemy.push(gl.effect["enemy_bluebullet"]);
|
|
108 enemy.push(gl.effect["tama_s_01"]);
|
|
109 enemy.push(gl.effect["tama_s_02"]);
|
|
110 enemy.push(gl.effect["tama_s_03"]);
|
|
111 enemy.push(gl.effect["tama_s_04"]);
|
|
112 enemy.push(gl.effect["tama_l_02"]);
|
|
113 enemy.push(gl.effect["tama_l_03"]);
|
12
|
114 enemy.push(gl.chara["enemy_plane"]);
|
|
115 enemy.push(gl.chara["spacefish"]);
|
8
|
116 }
|
|
117
|
|
118
|
|
119
|
|
120 function pushPlayerBullets(gl,bullets)
|
|
121 {
|
|
122 bullets.push(gl.effect["bluebarrier"]);
|
12
|
123 bullets.push(gl.effect["lockon_sight"]);
|
|
124 bullets.push(gl.effect["bulebullet_right"]);
|
8
|
125 bullets.push(gl.effect["bulebullet_left"]);
|
|
126 bullets.push(gl.effect["redbullet"]);
|
|
127 bullets.push(gl.effect["greenbullet"]);
|
|
128 bullets.push(gl.effect["lonlaser"]);
|
|
129 }
|
|
130
|
11
|
131 function pushBom(gl, bomImage)
|
|
132 {
|
|
133 bomImage.push(gl.effect["redbomb_anim_0"]);
|
|
134 bomImage.push(gl.effect["redbomb_anim_1"]);
|
|
135 bomImage.push(gl.effect["redbomb_anim_2"]);
|
|
136 bomImage.push(gl.effect["redbomb_anim_3"]);
|
|
137 bomImage.push(gl.effect["redbomb_anim_4"]);
|
|
138 bomImage.push(gl.effect["redbomb_anim_5"]);
|
|
139 bomImage.push(gl.effect["redbomb_anim_6"]);
|
|
140 bomImage.push(gl.effect["redbomb_anim_7"]);
|
|
141 }
|
|
142
|
|
143 function pushEnemyBullets(gl, ebullets)
|
|
144 {
|
|
145 ebullets.push(gl.effect["enemy_redbullet"]);
|
|
146 ebullets.push(gl.effect["enemy_bluebullet"]);
|
|
147 ebullets.push(gl.effect["tama_s_01"]);
|
|
148 ebullets.push(gl.effect["tama_s_02"]);
|
|
149 ebullets.push(gl.effect["tama_s_03"]);
|
|
150 ebullets.push(gl.effect["tama_s_04"]);
|
|
151 ebullets.push(gl.effect["tama_l_02"]);
|
|
152 ebullets.push(gl.effect["tama_l_03"]);
|
|
153 }
|
|
154
|
|
155 function pushFont(gl, font)
|
9
|
156 {
|
11
|
157 font.push(gl.chara["font_0"]);
|
|
158 font.push(gl.chara["font_1"]);
|
|
159 font.push(gl.chara["font_2"]);
|
12
|
160 font.push(gl.chara["font_3"]);
|
|
161 font.push(gl.chara["font_4"]);
|
|
162 font.push(gl.chara["font_5"]);
|
|
163 font.push(gl.chara["font_6"]);
|
|
164 font.push(gl.chara["font_7"]);
|
|
165 font.push(gl.chara["font_8"]);
|
|
166 font.push(gl.chara["font_9"])
|
11
|
167 font.push(gl.chara["titlefont"]);
|
|
168 font.push(gl.chara["font_pushstart"]);
|
|
169 font.push(gl.chara["font_superdandy"]);
|
12
|
170 font.push(gl.chara["font_hige"]);
|
|
171 font.push(gl.chara["font_font_1997yas_k"]);
|
|
172 font.push(gl.chara["font_gameover"]);
|
11
|
173 }
|
|
174
|
|
175 function PutSpriteF(ctx, x, y, scale, glObj)
|
|
176 {
|
|
177
|
|
178 // setup VBOs
|
|
179 ctx.enableVertexAttribArray(0);
|
|
180 ctx.enableVertexAttribArray(1);
|
|
181 ctx.enableVertexAttribArray(2);
|
|
182
|
|
183 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
|
|
184 ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
|
|
185 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
|
|
186 ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
|
|
187
|
|
188 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
|
|
189 ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
|
|
190
|
|
191 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
|
|
192
|
|
193 // generate the model-view matrix
|
|
194 var mvMatrix = new CanvasMatrix4();
|
|
195 mvMatrix.scale(scale, scale, scale);
|
|
196 mvMatrix.translate( x, y, 10);
|
|
197
|
|
198 // construct the normal matrix from the model-view matrix
|
|
199 var normalMatrix = new CanvasMatrix4(mvMatrix);
|
|
200 normalMatrix.invert();
|
|
201 normalMatrix.transpose();
|
|
202 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsWebGLFloatArray());
|
|
203
|
|
204 // construct the model-view * projection matrix
|
|
205 var mvpMatrix = new CanvasMatrix4(mvMatrix);
|
|
206 mvpMatrix.multRight(ctx.perspectiveMatrix);
|
|
207 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvpMatrix.getAsWebGLFloatArray());
|
|
208
|
|
209 ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
|
|
210 ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
|
|
211
|
9
|
212
|
12
|
213 }
|
|
214
|
|
215 function PutSpriteLock(ctx, x, y, scale, angle, glObj)
|
|
216 {
|
|
217
|
|
218 // setup VBOs
|
|
219 ctx.enableVertexAttribArray(0);
|
|
220 ctx.enableVertexAttribArray(1);
|
|
221 ctx.enableVertexAttribArray(2);
|
|
222
|
|
223 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
|
|
224 ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
|
|
225 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
|
|
226 ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
|
|
227
|
|
228 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
|
|
229 ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
|
|
230
|
|
231 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
|
|
232
|
|
233 // generate the model-view matrix
|
|
234 var mvMatrix = new CanvasMatrix4();
|
|
235 mvMatrix.scale(scale, scale, scale);
|
|
236 mvMatrix.rotate(angle, 0, 0, 1);
|
|
237 mvMatrix.translate( x, y, 10);
|
|
238
|
|
239 // construct the normal matrix from the model-view matrix
|
|
240 var normalMatrix = new CanvasMatrix4(mvMatrix);
|
|
241 normalMatrix.invert();
|
|
242 normalMatrix.transpose();
|
|
243 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsWebGLFloatArray());
|
|
244
|
|
245 // construct the model-view * projection matrix
|
|
246 var mvpMatrix = new CanvasMatrix4(mvMatrix);
|
|
247 mvpMatrix.multRight(ctx.perspectiveMatrix);
|
|
248 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvpMatrix.getAsWebGLFloatArray());
|
|
249
|
|
250 ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
|
|
251 ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
|
|
252
|
9
|
253 } |