class Tank extends Boxish { PImage img = loadImage("tank/tank_1a.png"); Bullet tankBullet = null; int movecounter ; float SPEED; Tank(int id) { super(random(width),TANK_STARTY+(id * TANK_HEIGHT/4),TANK_WIDTH,TANK_HEIGHT); changeSpeed(); } void changeSpeed(){ SPEED = random(-TANK_SPEEDMAX,TANK_SPEEDMAX); } void move() { movecounter++; if(movecounter >= TANK_TIMETOMOVE) { movecounter = 0; if(random(100) <= TANK_CHANCETOSWITCHDIR) { changeSpeed();; } x += SPEED; } if(x < 0){ x = 0; SPEED=abs(SPEED); } if(x + TANK_WIDTH > width){ x = width - TANK_WIDTH; SPEED=-abs(SPEED); } //FIRE!!! if(tankBullet == null && gamestate != POSTLUDE && gamestate != PRELUDE){ if(f != null && (f.numberOfFallsByPlayer >= 2 || f.hasDroppedOnce )){ fxLasers(); tankBullet = new Bullet(this); } } } void doBullet(){ if(tankBullet != null){ tankBullet.move(); if(tankBullet.checkHit(f) || tankBullet.y + tankBullet.h < 0){ tankBullet = null; } else { tankBullet.draw(); } } } void draw(){ image(img,x-TANK_OFFSET_X,y-TANK_OFFSET_Y); if(DEBUG==1){ strokeWeight(1); stroke(255,0,0); noFill(); rect(x,y,w,h); } } void doParticles(){ for(int c = 0; c < 10; c++){ particlesToAdd.add(new Particle(this)); } } }