diff webGL/dandy/resources/collision.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 diff
--- a/webGL/dandy/resources/collision.js	Mon Jul 12 08:01:12 2010 +0900
+++ b/webGL/dandy/resources/collision.js	Thu Jul 15 07:08:37 2010 +0900
@@ -13,6 +13,9 @@
 
 atari = function collision(p)
 {
+    var i1=0; 
+    var i2=0;
+    var n = 0;
     var ex = p.x;
     var ey = p.y;
     var charano = p.charano;
@@ -42,17 +45,18 @@
 	    return p;
 	}
 
+    /*玉レベル1の当たり判定-------------------------*/
     //    for (var i1 = 0; tama_lv1[i1]; i1++) {	
-    for (var i1 = 0; i1 < tama_lv1_end + 1; i1++) {
+    for ( i1 = 0; i1 < tama_lv1_end + 1; i1++) {
         if ((tama_lv1[i1].x + w/2 > ex )
 	    && ( ex + w > tama_lv1[i1].x + bullets[1].w)
 	    && (tama_lv1[i1].y + jiki.w > ey) && (tama_lv1[i1].y < ey + h)
 	    && (tama_lv1[i1].r != -1)) {
 	    tama_lv1[i1].r = -1;
 	    p.vit -= TAMALV1P;
-	    //	    infg.stg += 4;
+	    infg.stg += 4;
 	    if (p.vit <= 0) {
-		//		infg.stg += 4;
+		infg.stg += 4;
 		Bom(p.x, p.y);
 		//		enemycount += (p.score * ((infg.stg / 128) + infg_level + 1));
 		p.state = delete_chara;
@@ -67,9 +71,9 @@
 	    tama_lv1[i1].l = -1;
 	    p.vit -= TAMALV1P;
 
-	    //	    infg.stg++;
+	    infg.stg++;
 	    if (p.vit <= 0) {
-		//		infg.stg += 4;
+		infg.stg += 4;
 		Bom(p.x, p.y);
 		//		enemycount += (p.score * ((infg.stg / 128) + infg_lvel + 1));
 		p.state = delete_chara;
@@ -77,11 +81,117 @@
 		p.flag = false;
 		return p;
 	    }
-	    //	    p.flag = false;
-	    //	    return p;
 	}
     }
 
+    /*玉レベル2--------------------------------*/
+    for(i1 = 0; i1 < tama_lv2_end + 1; i1++) {
+	if((tama_lv2[i1].x + 10 + bullets[4].w/2 > ex - w/2 )
+	   && (ex + w/2 > tama_lv2[i1].x + 10 - bullets[4].w/2)
+	   && (tama_lv2[i1].y + bullets[4].h/2 > ey - h/2 )
+	   && (tama_lv2[i1].y - bullets[4].h/2 < ey + h/2) 
+	   && (tama_lv2[i1].rr != -1)) {
+	   tama_lv2[i1].rr = -1;
+	   p.vit -= TAMALV2P;
+	   infg.stg++;
+	   if(p.vit <= 0) {
+	       infg.stg += 4;
+	       Bom(p.x, p.y);
+	       //	       enemycount += (p.score * ((infg.stg / 128) + infg_level + 1));
+	       p.state = delete_chara;
+	       p.collision = noaction;
+	       p.f = false;
+	       return p;
+	   }
+	}
+
+	if((tama_lv2[i1].x + 5 + bullets[4].w/2 > ex - w/2 )
+	   && (ex + w/2 > tama_lv2[i1].x + 5 - bullets[4].w/2)
+	   && (tama_lv2[i1].y + bullets[4].h/2 > ey - h/2 )
+	   && (tama_lv2[i1].y - bullets[4].h/2 < ey + h/2) 
+	   && (tama_lv2[i1].sr != -1)) {
+	   tama_lv2[i1].sr = -1;
+	   p.vit -= TAMALV2P;
+	   infg.stg++;
+	   if(p.vit <= 0) {
+	       infg.stg += 4;
+	       Bom(p.x, p.y);
+	       //	       enemycount += (p.score * ((infg.stg / 128) + infg_level + 1));
+	       p.state = delete_chara;
+	       p.collision = noaction;
+	       p.f = false;
+	       return p;
+	   }
+	}
+	if((tama_lv2[i1].x - 10 + bullets[4].w/2 > ex - w/2 )
+	   && (ex + w/2 > tama_lv2[i1].x - 10 - bullets[4].w/2)
+	   && (tama_lv2[i1].y + bullets[4].h/2 > ey - h/2 )
+	   && (tama_lv2[i1].y - bullets[4].h/2 < ey + h/2) 
+	   && (tama_lv2[i1].ll != -1)) {
+	   tama_lv2[i1].ll = -1;
+	   p.vit -= TAMALV2P;
+	   infg.stg++;
+	   if(p.vit <= 0) {
+	       infg.stg += 4;
+	       Bom(p.x, p.y);
+	       //	       enemycount += (p.score * ((infg.stg / 128) + infg_level + 1));
+	       p.state = delete_chara;
+	       p.collision = noaction;
+	       p.f = false;
+	       return p;
+	   }
+	}
+
+	if((tama_lv2[i1].x - 5 + bullets[4].w/2 > ex - w/2 )
+	   && (ex + w/2 > tama_lv2[i1].x - 5 - bullets[4].w/2)
+	   && (tama_lv2[i1].y + bullets[4].h/2 > ey - h/2 )
+	   && (tama_lv2[i1].y - bullets[4].h/2 < ey + h/2) 
+	   && (tama_lv2[i1].sl != -1)) {
+	   tama_lv2[i1].sl = -1;
+	   p.vit -= TAMALV2P;
+	   infg.stg++;
+	   if(p.vit <= 0) {
+	       infg.stg += 4;
+	       Bom(p.x, p.y);
+	       //	       enemycount += (p.score * ((infg.stg / 128) + infg_level + 1));
+	       p.state = delete_chara;
+	       p.collision = noaction;
+	       p.f = false;
+	       return p;
+	   }
+	}
+    }
+
+
+
+
+    /*レーザーレベル1------------------------*/
+    for(i1 = 0; i1 < laser_lv1_end + 1; i1++) {
+	n = laser_lv1[i1].r * 128 / 4096;
+	//	var nx = laser_lv1[i1].w + laser_lv1[i1].scale;
+	//	var ny = laser_lv1[i1].h + laser_lv1[i1].scale;
+
+	if ((laser_lv1[i1].x + n*d_x > ex) && (ex + w > laser_lv1[i1].x)
+	    && (laser_lv1[i1].y + n*d_y > ey) && (laser_lv1[i1].y < ey + h)
+	    && (laser_lv1[i1].r != -1)) {
+	    laser_lv1[i1].r = -1;
+	    laser_lv1[i1].y = -1;
+	    p.vit -= LASERLV1P;	    
+	    infg.stg++;
+	    if(p.vit <= 0) {
+		infg.stg += 4;
+		Bom(p.x, p.y);
+		//		enemycount += (p.score * ((infg.stg / 128) + infg_level + 1));
+		p.state = delete_chara;
+		p.collision = noaction;
+		p.f = false;
+		return 1;
+	    }
+
+	}
+    }
+
+
 }