public void run() { // boolean frame=Clock.frame; counter++; if (life != 0) { life--; image = ani[counter / 5 % 4]; if (life >= 0) image = ani[8]; if (life > 2) image = ani[7]; if (life > 4) image = ani[6]; if (life > 6) image = ani[5]; if (life > 8) image = ani[4]; // Clock.waitFor(frame=!frame); // if(Clock.dead)break; if (life < 0) { // vX*=.98;vY*=.98; x += vX; y -= vY; } if (life == -200) { vY = vX = 0; life = 10; x += 4 - round(8 * random()); y += 4 - round(8 * random()); } for (VisibleObject en : Room.enemies) { if (Collisions.collides(this, en)) { ((Enemy) en).damage(Element.WATER, 3); ((Enemy) en).vMultiplier = .00001f; } } if (life >= 0) return; for (Wall wal : Room.walls) { // if (vY==0&&vX==0)break; if (Collisions.collides(this, wal)) { vY = vX = 0; life = 10; x += 4 - round(8 * random()); y += 4 - round(8 * random()); // AudioPack.playAudio("BExplosion2.wav",0.05); AudioPack.playClip(boom); if (wal.damagable) { ((DamageableWall) wal).life -= 5; // if // (Jump.kraidLife<=0&&Jump.countdown<0){Jump.countdown=500; // AudioPack.playAudio("Ima Firen Mah Lazor!.wav",0.1); // } } } } // out.println(life); } else dead = true; }
public void run() { // boolean frame=Clock.frame; if (life != 0) { counter++; vY -= .07; int p = (counter / 3) % 8; image = ani[p]; if (life > -1) { image = ani[min(life, 8) / 2 + 8]; } // Clock.waitFor(frame=!frame); // if(Clock.dead)break; life--; if (life < 0) { x += vX; y -= vY; } else return; /* * if (!(x>0&&x<Jump.WIDTH&&y>0&&y<Jump.HEIGHT)&&life<0){vY=vX=0; * life=60; w=h=16; x-=round(10*random()); y-=round(10*random()); * //AudioPack.playAudio("BExplosion2.wav",0.05); * AudioPack.playClip(boom); } */ boolean collided = false; for (int i = 0; i < Room.walls.size(); i++) { Wall wal = Room.walls.get(i); if (vY == 0 && vX == 0) break; if (Collisions.collides(this, wal)) { collided = true; if (wal.damagable) { ((DamageableWall) wal).life -= 40; // if // (Jump.kraidLife<=0&&Jump.countdown<0){Jump.countdown=500; // AudioPack.playAudio("Ima Firen Mah Lazor!.wav",0.1); // } } } } if (Collisions.collides(this, Player.player)) { collided = true; Player.damage(40); } if (collided) { double offset = Math.PI * ((80 * random()) % 8) / 4; Room.projectiles.add( new RockProjectile(x, y, (float) cos(offset) * 3, (float) sin(offset) * 3)); Room.projectiles.add( new RockProjectile( x, y, (float) cos(offset + PI * 2 / 3) * 3, (float) sin(offset + PI * 2 / 3) * 3)); Room.projectiles.add( new RockProjectile( x, y, (float) cos(offset + PI * 4 / 3) * 3, (float) sin(offset + PI * 4 / 3) * 3)); life = 12; w = h = 11; x -= round(vY * random()); y -= round(vX * random()); vY = vX = 0; // AudioPack.playAudio("BExplosion2.wav",0.05); AudioPack.playClip(boom); } } else dead = true; }