class invader{ float x,y,originX,originY; int dir=1; float speed, speedIncrement; int yStep; int distanceAllowed = 60; boolean alive = true ; int id = -1; int myTime = 0; int frameInterval = 200; boolean frameOne = true; invader(int _x, int _y, int _id, float _s, float _si, int _ys){ x=originX=_x; y=originY=_y; id = _id; speed = _s; speedIncrement = _si; yStep = _ys; } void update(){ if(alive){ move(); drawMe(); } } void move(){ x += speed*dir; //if(id==20){ // println(x+"__"+originX); // println((abs(originX-x)>distanceAllowed)); //println("x="+x+" s+d:"+speed*dir); //} //Si llegamos al punto que hay que cambiar de dirección... if(abs(x-originX)>distanceAllowed){ dir = -dir; y += yStep; speed += speedIncrement; } } void drawMe(){ if(millis() - myTime > frameInterval){ myTime = millis(); frameOne = !frameOne; } if(frameOne){ image(invadersFrameOne,x,y); } else { image(invadersFrameTwo,x,y); } } //GETs y SETs void setX(int _x){ x=_x; } void setY(int _y){ y=_y; } float getX(){ return x; } float getY(){ return y; } void kill(){ alive = false; } boolean isAlive(){ if(alive)return true; else return false; } }