diff webGL/dandy/resources/parse.js @ 11:680b5b0cd1e4

upload
author NOBUYASU Oshiro
date Mon, 12 Jul 2010 08:01:12 +0900
parents 1d76f5717ba7
children 61febc94fa62
line wrap: on
line diff
--- a/webGL/dandy/resources/parse.js	Sat Jul 10 16:38:23 2010 +0900
+++ b/webGL/dandy/resources/parse.js	Mon Jul 12 08:01:12 2010 +0900
@@ -5,10 +5,18 @@
     loadEffectXml(gl, "./xml/effect.xml");//gl.effectにxmlファイルの中身をいれる
     loadBossXml(gl, "./xml/boss.xml");//gl.bossにxmlファイルの中身を入れる
 
+    loadCharaXml(gl, "./xml/titlefont.xml");//gl.effectにxmlファイルの中身をいれる
+    loadCharaXml(gl, "./xml/font_pushstart.xml");//gl.effectにxmlファイルの中身をいれる
+    loadCharaXml(gl, "./xml/font_superdandy.xml");//gl.effectにxmlファイルの中身をいれる
+    loadCharaXml(gl, "./xml/font_0.xml");//gl.effectにxmlファイルの中身をいれる
+    loadCharaXml(gl, "./xml/font_1.xml");//gl.effectにxmlファイルの中身をいれる
+    loadCharaXml(gl, "./xml/font_2.xml");//gl.effectにxmlファイルの中身をいれる
+
     jiki = new makePlayer(gl.chara);//自機の情報をいれておくクラス、グローバル
     
     enemy = [];//敵の情報を入れておく配列を用意、グローバル
     pushEnemy(gl,enemy);//配列enemy[]に敵をpush
+    //    pushEnemyBullets(gl, enemy);//配列enemy[]に敵の弾情報をpush
 
     boss = [];//bossの情報を入れておく配列を用意,グローバル
     pushBoss(gl, boss);//配列boss[]にbossの情報をpush
@@ -16,8 +24,13 @@
     bullets = [];//弾の情報を入れておく配列を用意、グローバル
     pushPlayerBullets(gl,bullets);//配列bullets[]に弾をpush
 
-    bom = [];//撃破時の爆発の情報をいれておく配列を用意。グローバル
-    pushBom(gl, bom);//配列 bom[]に爆発をpush
+    bomImage = [];//撃破時の爆発の情報をいれておく配列を用意。グローバル
+    pushBom(gl, bomImage);//配列 bom[]に爆発をpush
+
+    font = [];//fontを入れておく配列
+    pushFont(gl, font);//
+    //    ebullets = [];//敵の弾の情報を入れておく配列を用意、グローバル
+    //    pushEnemyBullets(gl, ebullets);
 }
 
 function loadCharaXml(gl,url)
@@ -67,10 +80,20 @@
 
 function pushEnemy(gl, enemy)
 {
+    enemy.push(gl.chara["meteo"]);
     enemy.push(gl.chara["enemy_greenclab"]);
     enemy.push(gl.chara["missile"]);
     enemy.push(gl.chara["gunbattery"]);
+    enemy.push(gl.effect["enemy_redbullet"]);
+    enemy.push(gl.effect["enemy_bluebullet"]);
+    enemy.push(gl.effect["tama_s_01"]);
+    enemy.push(gl.effect["tama_s_02"]);
+    enemy.push(gl.effect["tama_s_03"]);
+    enemy.push(gl.effect["tama_s_04"]);
+    enemy.push(gl.effect["tama_l_02"]);
+    enemy.push(gl.effect["tama_l_03"]);
     enemy.push(gl.chara["meteo"]);
+
 }
 
 
@@ -84,17 +107,87 @@
     bullets.push(gl.effect["redbullet"]);
     bullets.push(gl.effect["greenbullet"]);
     bullets.push(gl.effect["lonlaser"]);
+
     //    return bullets;
 }
 
-function pushBom(gl, bom)
+function pushBom(gl, bomImage)
+{
+    bomImage.push(gl.effect["redbomb_anim_0"]);
+    bomImage.push(gl.effect["redbomb_anim_1"]);
+    bomImage.push(gl.effect["redbomb_anim_2"]);
+    bomImage.push(gl.effect["redbomb_anim_3"]);
+    bomImage.push(gl.effect["redbomb_anim_4"]);
+    bomImage.push(gl.effect["redbomb_anim_5"]);
+    bomImage.push(gl.effect["redbomb_anim_6"]);
+    bomImage.push(gl.effect["redbomb_anim_7"]);
+}
+
+function pushEnemyBullets(gl, ebullets)
+{
+    ebullets.push(gl.effect["enemy_redbullet"]);
+    ebullets.push(gl.effect["enemy_bluebullet"]);
+    ebullets.push(gl.effect["tama_s_01"]);
+    ebullets.push(gl.effect["tama_s_02"]);
+    ebullets.push(gl.effect["tama_s_03"]);
+    ebullets.push(gl.effect["tama_s_04"]);
+    ebullets.push(gl.effect["tama_l_02"]);
+    ebullets.push(gl.effect["tama_l_03"]);
+}
+
+function pushFont(gl, font)
 {
-    bom.push(gl.effect["redbomb_anim_1"]);
-    bom.push(gl.effect["redbomb_anim_2"]);
-    bom.push(gl.effect["redbomb_anim_3"]);
-    bom.push(gl.effect["redbomb_anim_4"]);
-    bom.push(gl.effect["redbomb_anim_5"]);
-    bom.push(gl.effect["redbomb_anim_6"]);
-    bom.push(gl.effect["redbomb_anim_7"]);
+    font.push(gl.chara["font_0"]);
+    font.push(gl.chara["font_1"]);
+    font.push(gl.chara["font_2"]);
+    font.push(gl.chara["font_2"]);
+    font.push(gl.chara["font_2"]);
+    font.push(gl.chara["font_0"]);
+    font.push(gl.chara["font_1"]);
+    font.push(gl.chara["font_2"]);
+    font.push(gl.chara["font_2"]);
+    font.push(gl.chara["font_2"]);
+    font.push(gl.chara["titlefont"]);
+    font.push(gl.chara["font_pushstart"]);
+    font.push(gl.chara["font_superdandy"]);
+}
+
+function PutSpriteF(ctx, x, y, scale, glObj)
+{
+
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+				
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+    // generate the model-view matrix
+    var mvMatrix = new CanvasMatrix4();
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.translate( x, y, 10);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new CanvasMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsWebGLFloatArray());
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new CanvasMatrix4(mvMatrix);
+    mvpMatrix.multRight(ctx.perspectiveMatrix);
+    ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvpMatrix.getAsWebGLFloatArray());
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+
 
 }
\ No newline at end of file