Mercurial > hg > Members > e085737 > sample
view paper_shooting/resources/enemy.js @ 25:158b846e3874
paper
author | <e085737> |
---|---|
date | Mon, 14 Feb 2011 16:37:16 +0900 |
parents | |
children | 943490f525c5 |
line wrap: on
line source
createEnemy = function(node, sgroot, w, h){ if(node.frame > 300 && node.main.child.length < 4){ var enemy = new sgroot.createSceneGraph1("Enemy"); enemy.xyz[0] = 145; enemy.xyz[1] = 0; enemy.xyz[2] = 0; enemy.scale = 2.0; enemy.angle[0] = 90; enemy.life = 10; enemy.combat = sgroot.list['Player']; enemy.bullet = sgroot.list['Enemy_bullet']; enemy.my_bullet = sgroot.list['my_bullet']; enemy.set_move_collision(enemy_move, enemy_collision_2d); node.main.addChild(enemy); this.frame = 0; node.set_move_collision(createEnemy2, no_collision_idle); } } createEnemy2 = function(node, sgroot, w, h){ if(node.frame > 300 && node.main.child.length < 4){ var enemy = new sgroot.createSceneGraph1("Enemy001"); enemy.xyz[0] = 145; enemy.xyz[1] = 0; enemy.xyz[2] = 0; enemy.scale = 2.0; enemy.angle[0] = 90; enemy.life = 10; enemy.combat = sgroot.list['Player']; enemy.bullet = sgroot.list['Enemy_bullet']; enemy.my_bullet = sgroot.list['my_bullet']; enemy.set_move_collision(enemy_move, enemy_collision_2d); node.main.addChild(enemy); this.frame = 0; node.set_move_collision(createEnemy, no_collision_idle); } } enemy_move = function(node, sgroot, w, h){ var theta = (node.frame)*0.01; var radian = Math.sin(theta); node.xyz[0] -= 0.2; node.xyz[2] = 65 * radian - 65; if(0 == node.frame%30){ var bullet_speed = 1; var bullet = new sgroot.createSceneGraph1("red"); bullet.xyz[0] = node.xyz[0]; bullet.xyz[1] = 65 * -radian + 65; bullet.xyz[2] = node.xyz[1]; bullet.dx = -bullet_speed; bullet.dy = 0.0; bullet.dz = 0.0; bullet.scale = 0.3; bullet.set_move_collision(bullet_move2, no_collision_idle); node.bullet.addChild(bullet); } } enemy_collision_2d = function(node, sgroot, w, h){ for(num in node.my_bullet.child){ var dx = node.my_bullet.child[num].xyz[0] - node.xyz[0]; var dy = node.my_bullet.child[num].xyz[1] + node.xyz[2]; var dz = node.my_bullet.child[num].xyz[2] - node.xyz[1]; var ddx = dx*dx; var ddy = dy*dy; var ddz = dz*dz; //var r = Math.sqrt(ddx+ddy+ddz); var r2 = ddx+ddy+ddz; if(r2 < 100){ node.life--; node.remove(node.my_bullet.child[num]); if(node.life < 0){ for(var num=0; num < 30; num++){ node.scale += 0.1; } node.remove(node); } } } } machida_collision = function(node, sgroot, w, h){ for(num in node.my_bullet.child){ var dx = node.my_bullet.child[num].xyz[0] + node.xyz[2]; var dy = node.my_bullet.child[num].xyz[1] - node.xyz[1]; var dz = node.my_bullet.child[num].xyz[2] - node.xyz[0]; var ddx = dx*dx; var ddy = dy*dy; var ddz = dz*dz; //var r = Math.sqrt(ddx+ddy+ddz); var r2 = ddx+ddy+ddz; if(r2 < 2500){ node.life--; node.remove(node.my_bullet.child[num]); if(node.life < 0){ node.set_move_collision(machida_up, no_collision_idle); } } } } machida_collision2 = function(node, sgroot, w, h){ for(num in node.my_bullet.child){ var dx = node.my_bullet.child[num].xyz[0] + node.xyz[2]; var dy = node.my_bullet.child[num].xyz[1] - node.xyz[1]; var dz = node.my_bullet.child[num].xyz[2] - node.xyz[0]; var ddx = dx*dx; var ddy = dy*dy; var ddz = dz*dz; //var r = Math.sqrt(ddx+ddy+ddz); var r2 = ddx+ddy+ddz; if(r2 < 2500){ node.life--; node.remove(node.my_bullet.child[num]); if(node.life < 0){ var game = new sgroot.createSceneGraph1("Game"); game.xyz[0] = 20; game.xyz[1] = 0; game.xyz[2] = -50; game.angle[0] = 90; game.scale = 0.4; var clear = new sgroot.createSceneGraph1("Clear"); clear.xyz[0] = -20; clear.xyz[1] = 0; clear.xyz[2] =-80; clear.set_move_collision(no_move_idle, no_collision_idle); game.addChild(clear); sgroot.setSceneData(game); node.remove(node); } } } }