class Player extends Moving { ArrayList bullets = new ArrayList(); ArrayList bossbullets = new ArrayList(); int fireTimer = 0; int score = 0; int blood; int maxBlood; int hit; float bloodPercentage; Player(PVector pos) { super(pos); maxBlood = 10; blood = maxBlood; bloodPercentage = 1; radius = 40; } void fireBullet() { if (fireTimer == 0) { bullets.add( new Bullet(new PVector(pos.x, pos.y), new PVector(4, 0)) ); shoot.play(0); fireTimer = 10; } fireTimer--; } void update() { vel.add(acc); //add acceleration to velocity vel.mult(damp); //multiply velocity by dampening factor (0.9-0.99); pos.add(vel); //add velocity to position (moves character) acc.set(0, 0, 0); //clear the acceleration for the next loop if (pos.x > 755) { pos.x = 755 ; } else if (pos.x < 45) { pos.x = 45; } else if (pos.y > 455) { pos.y = 455; } else if (pos.y < 45) { pos.y = 45; } for (int i = 0; i < bullets.size(); i++) { Bullet b = bullets.get(i); b.update(); for (int j = 0; j < enemies.size(); j++) { Enemy e = enemies.get(j); if (b.collision(e)) { e.boom(); enemies.remove(e); bullets.remove(b); score +=100; } } for (int j = 0; j < twoenemies.size(); j++) { Enemytwo f = twoenemies.get(j); if (b.collision(f)) { bullets.remove(b); int die = f.hitEnemytwo(); f.boom(); if (die == 0) { twoenemies.remove(f); score +=100; hit++; if (hit > 5) { // hit 5 enemies jump to level 3; levelup.play(); state=3; } } } } for (int k=0; k< finalenemies.size(); k++) { Finalenemy ef = finalenemies.get(k); if (b.collision(ef)) { bullets.remove(b); int die = ef.hitfinalEnemy(); ef.boom(); if (die == 0) { finalenemies.remove(ef); score +=100; } } } for (int h=0; h< bosss.size(); h++) { Boss g = bosss.get(h); g.bloodBarofboss(); if (b.collision(g)) { bullets.remove(b); int die = g.hitBoss(); g.boom(); if (die == 0) { bosss.clear(); levelup.play(); state = 5; score +=1000; } } } } } void draw() { image(playimg, pos.x, pos.y); //check //fill(255, 0, 0, 128); //ellipse(pos.x, pos.y, radius * 2, radius * 2); } void hit() { blood --; if (blood ==0) { state = 4; gameover.play(); } bloodPercentage = (float)blood / (float) maxBlood; } void getbonusb() { if (bloodPercentage < 1) { blood ++; bloodPercentage = (float)blood / (float) maxBlood; } } void getbonuse() { score+=300; } }