Mercurial > hg > Members > e085711
diff webGL/dandy/resources/Player.js @ 24:7c1ff1927da3
enemy.js character.js Player.js
author | NOBUYASU Oshiro |
---|---|
date | Tue, 26 Oct 2010 08:41:45 +0900 |
parents | fac103fcf60d |
children |
line wrap: on
line diff
--- a/webGL/dandy/resources/Player.js Sun Oct 24 20:08:14 2010 +0900 +++ b/webGL/dandy/resources/Player.js Tue Oct 26 08:41:45 2010 +0900 @@ -63,51 +63,28 @@ this.image = this.idle; this.w = this.image.w; this.h = this.image.h; + this.vertexObject = new Object(); + this.normalObject = new Object(); + this.texCoordObject = new Object(); + this.indexObject = new Object(); + this.numIndices = new Object(); + this.texture=new Object(); + return this; } -function drawPlayer(ctx, jiki) -{ - - - // setup VBOs - ctx.enableVertexAttribArray(0); - ctx.enableVertexAttribArray(1); - ctx.enableVertexAttribArray(2); - - ctx.bindBuffer(ctx.ARRAY_BUFFER, jiki.image.vertexObject); - ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0); - - ctx.bindBuffer(ctx.ARRAY_BUFFER, jiki.image.normalObject); - ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0); - - ctx.bindBuffer(ctx.ARRAY_BUFFER, jiki.image.texCoordObject); - ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0); - - ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, jiki.image.indexObject); - // generate the model-view matrix - var mvMatrix = new J3DIMatrix4(); - mvMatrix.scale(jiki.scale, jiki.scale, jiki.scale); - // mvMatrix.rotate(180, 1,0,0); - mvMatrix.translate(jiki.x, jiki.y, jiki.z); +function loadImageJiki( jiki, Image) +{ + jiki.vertexObject = Image.vertexObject; + jiki.normalObject = Image.normalObject; + jiki.texCoordObject = Image.texCoordObject; + jiki.indexObject = Image.indexObject; + jiki.numIndices = Image.numIndices; + jiki.texture = Image.texture; +} - // construct the normal matrix from the model-view matrix - var normalMatrix = new J3DIMatrix4(mvMatrix); - normalMatrix.invert(); - normalMatrix.transpose(); - normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false); - - // construct the model-view * projection matrix - var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix); - mvpMatrix.multiply(mvMatrix); - mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false); - - - ctx.bindTexture(ctx.TEXTURE_2D, jiki.image.texture); - ctx.drawElements(ctx.TRIANGLES, jiki.image.numIndices, ctx.UNSIGNED_SHORT, 0); -} function Player(ctx, jiki, pad, ortho ) @@ -119,7 +96,6 @@ /* if(jiki.muteki > 0 && jiki.bf == true){ cout++; - drawPlayer(ctx, jiki); jiki.muteki--; } */ @@ -142,19 +118,18 @@ jiki.y = Math.min(jiki.y, ortho.bottom - jiki.w/2); jiki.y = Math.max(jiki.y, ortho.top + jiki.w/2); - - if( pad.count == 1) pad.state=0; + if( pad.count == 1) pad.state=0; if( pad.count > 0) pad.state=1; if( pad.count > 10 ) pad.state=2; - if( pad.state == 0 ) jiki.image = jiki.idle; + if( pad.state == 0 ) loadImageJiki(jiki, jiki.idle); if( pad.state == 1 ) { - if( pad.right > 0 ) jiki.image = jiki.turntoright; - if( pad.left > 0 ) jiki.image = jiki.turntoleft; + if( pad.right > 0 ) loadImageJiki(jiki, jiki.turntoright); + if( pad.left > 0 )loadImageJiki(jiki, jiki.turntoleft); } if( pad.state == 2 ) { - if( pad.right > 0 ) jiki.image = jiki.rightmove; - if( pad.left > 0 ) jiki.image = jiki.leftmove; + if( pad.right > 0 ) loadImageJiki(jiki, jiki.rightmove); + if( pad.left > 0 ) loadImageJiki(jiki, jiki.leftmove); } //分かりやすいように横幅と縦幅はjiki.w,jiki.hに直でいれておく jiki.w = jiki.image.w; @@ -164,8 +139,7 @@ // if(jiki.muteki < 5) alert("jiki.muteki "+jiki.muteki); if(jiki.muteki > 0) jiki.muteki--; if(jiki.bf == true) { - drawPlayer(ctx, jiki);//自機の描画(一先ずここでしておく) - // PutSprite(ctx, jiki); + PutSpriteF(ctx, jiki.x, jiki.y, jiki.scale, jiki); } else { /* 自機が復活するまでは玉は撃たせない */ @@ -233,14 +207,10 @@ { tama_lv1[i].y -= 10; if (tama_lv1[i].r == 1) { - tama_lv1[i].x += 5;//右に5ずらす - PutSpriteBullet(ctx, tama_lv1[i], bullets[2]); - tama_lv1[i].x -= 5;//ずらした分戻す + PutSpriteF(ctx, tama_lv1[i].x+5, tama_lv1[i].y, tama_lv1[i].scale, bullets[2]); } if (tama_lv1[i].l == 1) { - tama_lv1[i].x -= 5;//左に5ずらす - PutSpriteBullet(ctx, tama_lv1[i], bullets[2]); - tama_lv1[i].x += 5;//ずらし分を戻す + PutSpriteF(ctx, tama_lv1[i].x-5, tama_lv1[i].y, tama_lv1[i].scale, bullets[2]); } if (tama_lv1[i].y < ortho.top) { if(tama_lv1_end == i){ @@ -262,27 +232,19 @@ tama_lv2[i].y -= 10; if(tama_lv2[i].rr == 1) { count++; - tama_lv2[i].x += 10; - PutSpriteBullet(ctx, tama_lv2[i], bullets[4]); - tama_lv2[i].x -= 10; + PutSpriteF(ctx, tama_lv2[i].x+10, tama_lv2[i].y, tama_lv2[i].scale, bullets[4]); } if(tama_lv2[i].sr == 1) { count++; - tama_lv2[i].x += 5; - PutSpriteBullet(ctx, tama_lv2[i], bullets[4]); - tama_lv2[i].x -= 5; + PutSpriteF(ctx, tama_lv2[i].x+5, tama_lv2[i].y, tama_lv2[i].scale, bullets[4]); } if(tama_lv2[i].sl == 1) { count++; - tama_lv2[i].x -= 5; - PutSpriteBullet(ctx, tama_lv2[i], bullets[4]); - tama_lv2[i].x += 5; + PutSpriteF(ctx, tama_lv2[i].x-5, tama_lv2[i].y, tama_lv2[i].scale, bullets[4]); } if(tama_lv2[i].ll == 1) { count++; - tama_lv2[i].x -= 10; - PutSpriteBullet(ctx, tama_lv2[i], bullets[4]); - tama_lv2[i].x += 10; + PutSpriteF(ctx, tama_lv2[i].x-10, tama_lv2[i].y, tama_lv2[i].scale, bullets[4]); } if(tama_lv2[i].y < 0) { if(tama_lv2_end == i) { @@ -314,7 +276,7 @@ var cosx = -80 + 50 * Mycos(jiki.point - 90) / SANKAKU; count++; - if(jiki.bf) PutSpriteLock(ctx, (jiki.x + cosx * d_x), (jiki.y + siny * d_y), 1.0, jiki.point, bullets[1]); + if(jiki.bf) PutSpriteA(ctx, (jiki.x + cosx * d_x), (jiki.y + siny * d_y), 1.0, jiki.point, bullets[1]); /* 押してないときレーザーゲージ回復-------------------- */ @@ -354,7 +316,7 @@ count++; // DefSpriteEx(16, 16, 16); // PutSpriteEx(16, laser_lv1[i].x, laser_lv1[i].y, laser_lv1[i].s, laser_lv1[i].s, 1); - PutSpriteBullet(ctx, laser_lv1[i], bullets[5]); + PutSpriteF(ctx, laser_lv1[i].x, laser_lv1[i].y, laser_lv1[i].scale, bullets[5]); } // if(waku(laser_lv1[i].x, laser_lv1[i].y)) { if( (laser_lv1[i].y < ortho.top ) || (laser_lv1[i].y > ortho.bottom) @@ -392,51 +354,8 @@ laser_lv2[0].y = jiki.y - jiki.w*2 * Mycos(jiki.point) / SANKAKU; laser_lv2[0].scale = 1.0; count++; - PutSpriteBullet(ctx, laser_lv2[0], bullets[0]); + PutSpriteF(ctx, laser_lv2[0].x, laser_lv2[0].y, laser_lv2[0].scale, bullets[0]); } } - - - - - - -function PutSpriteBullet( ctx, tama, 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 J3DIMatrix4(); - mvMatrix.scale(tama.scale, tama.scale, tama.scale); - mvMatrix.translate(tama.x,tama.y,10); - - // construct the normal matrix from the model-view matrix - var normalMatrix = new J3DIMatrix4(mvMatrix); - normalMatrix.invert(); - normalMatrix.transpose(); - normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false); - - // construct the model-view * projection matrix - var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix); - mvpMatrix.multiply(mvMatrix); - mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false); - - ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture); - ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0); -}