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);
-}