Mercurial > hg > Members > e085711
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