Mercurial > hg > Members > e085711
view webGL/dandy/resources/parse.js @ 12:61febc94fa62
upload dandy4.html,new xmlFile
author | NOBUYASU Oshiro |
---|---|
date | Thu, 15 Jul 2010 07:08:37 +0900 |
parents | 680b5b0cd1e4 |
children | 4684e849866c |
line wrap: on
line source
function parseXml(gl) { loadCharaXml(gl, "./xml/character.xml");//gl.charaにxmlファイルの中身を入れる loadCharaXml(gl, "./xml2/enemy.xml");//gl.charaにxmlファイルの中身を入れる loadEffectXml(gl, "./xml/effect.xml");//gl.effectにxmlファイルの中身をいれる loadEffectXml(gl, "./xml2/bullets.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ファイルの中身をいれる loadCharaXml(gl, "./xml/font_3.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_4.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_5.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_6.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_7.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_8.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_9.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_hige.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_1997yas_k.xml");//gl.effectにxmlファイルの中身をいれる loadCharaXml(gl, "./xml/font_gameover.xml");//gl.effectにxmlファイルの中身をいれる jiki = new makePlayer(gl.chara);//自機の情報をいれておくクラス、グローバル gamesyokika(); enemy = [];//敵の情報を入れておく配列を用意、グローバル pushEnemy(gl,enemy);//配列enemy[]に敵をpush // pushEnemyBullets(gl, enemy);//配列enemy[]に敵の弾情報をpush boss = [];//bossの情報を入れておく配列を用意,グローバル pushBoss(gl, boss);//配列boss[]にbossの情報をpush bullets = [];//弾の情報を入れておく配列を用意、グローバル pushPlayerBullets(gl,bullets);//配列bullets[]に弾をpush bomImage = [];//撃破時の爆発の情報をいれておく配列を用意。グローバル pushBom(gl, bomImage);//配列 bom[]に爆発をpush font = [];//fontを入れておく配列 pushFont(gl, font);// // ebullets = [];//敵の弾の情報を入れておく配列を用意、グローバル // pushEnemyBullets(gl, ebullets); } function loadCharaXml(gl,url) { if(gl.chara == undefined) gl.chara = new Object(); var xmlChara = new Object(); xmlChara = parsePanel(url); for (var name in xmlChara) { gl.chara[name] = makeXmlObj(gl, xmlChara[name]); gl.chara[name].texture = loadImageTexture(gl, xmlChara[name].image); } } function loadEffectXml(gl,url) { if(gl.effect == undefined)gl.effect = new Object(); var xmlChara = new Object(); xmlChara = parsePanel(url); for (var name in xmlChara) { gl.effect[name] = makeXmlObj(gl, xmlChara[name]); gl.effect[name].texture = loadImageTexture(gl, xmlChara[name].image); } } function loadBossXml(gl,url) { if(gl.boss == undefined)gl.boss = new Object(); var xmlChara = new Object(); xmlChara = parsePanel(url); for (var name in xmlChara) { gl.boss[name] = makeXmlObj(gl, xmlChara[name]); gl.boss[name].texture = loadImageTexture(gl, xmlChara[name].image); } } function pushBoss(gl, boss) { for(var name in gl.boss) { boss.push(gl.boss[name]); } } function pushEnemy(gl, enemy) { enemy.push(gl.chara["meteo"]); enemy.push(gl.chara["enemy_greencrab"]); 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["enemy_plane"]); enemy.push(gl.chara["spacefish"]); } function pushPlayerBullets(gl,bullets) { bullets.push(gl.effect["bluebarrier"]); bullets.push(gl.effect["lockon_sight"]); bullets.push(gl.effect["bulebullet_right"]); bullets.push(gl.effect["bulebullet_left"]); bullets.push(gl.effect["redbullet"]); bullets.push(gl.effect["greenbullet"]); bullets.push(gl.effect["lonlaser"]); } 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) { font.push(gl.chara["font_0"]); font.push(gl.chara["font_1"]); font.push(gl.chara["font_2"]); font.push(gl.chara["font_3"]); font.push(gl.chara["font_4"]); font.push(gl.chara["font_5"]); font.push(gl.chara["font_6"]); font.push(gl.chara["font_7"]); font.push(gl.chara["font_8"]); font.push(gl.chara["font_9"]) font.push(gl.chara["titlefont"]); font.push(gl.chara["font_pushstart"]); font.push(gl.chara["font_superdandy"]); font.push(gl.chara["font_hige"]); font.push(gl.chara["font_font_1997yas_k"]); font.push(gl.chara["font_gameover"]); } 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); } function PutSpriteLock(ctx, x, y, scale, angle, 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.rotate(angle, 0, 0, 1); 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); }