class upper extends guy{ PImage imgHoverRight[] = new PImage[4] ; PImage imgHoverLeft[] = new PImage[4] ; PImage imgFallLeft ; PImage imgFallRight ; upper(int startx,int starty){ super(startx,starty); imgHoverRight[0] = loadImage("levifrm1_2.png"); imgHoverRight[1] = loadImage("levifrm2_2.png"); imgHoverRight[2] = loadImage("levifrm3_2.png"); imgHoverRight[3] = loadImage("levifrm4_2.png"); imgHoverLeft[0] = loadImage("l_levifrm1_2.png"); imgHoverLeft[1] = loadImage("l_levifrm2_2.png"); imgHoverLeft[2] = loadImage("l_levifrm3_2.png"); imgHoverLeft[3] = loadImage("l_levifrm4_2.png"); imgFallLeft = loadImage("l_leviprefall3.png"); imgFallRight = loadImage("leviprefall3.png"); } void calcMove(){ pixelDeltaX = 0.0; pixelDeltaY = 0.0; //anything over hread ? if(!hasBoxOver(xSquare,ySquare)){ calcRise(); } else{ pickAndMove(); } } int FRAMESOFHOVER = 4; int FRAMESTOHOLD = 5; int currentFrame = (int)random(FRAMESOFHOVER); int timeTilChange = (int)random(FRAMESTOHOLD); void animate(){ if(dumb){ if(lastDirMoved == 1){ img = imgFallRight; }else { img = imgFallLeft; } return; } if(lastDirMoved == 1){ img = imgHoverRight[currentFrame]; } else { img = imgHoverLeft[currentFrame]; } timeTilChange --; if(timeTilChange <= 0){ timeTilChange = FRAMESTOHOLD; currentFrame++; if(currentFrame >= FRAMESOFHOVER){ currentFrame = 0; } } } void checkIfDumb(){ //println("checking for "+destBoxX+" "+destBoxY ); int testy = destBoxY; while(testy >= 0 && !hasBoxOver(destBoxX,testy)){ testy--; } if(testy < 0){ dumb =true; } } boolean hasBoxOver(int x, int y){ int checky = y - 1; if(getWorldContentsSafely(x,checky) == WALL){ return true; } return false; } void calcRise(){ destBoxX = xSquare; destBoxY = ySquare; float currentPixelX, currentPixelY; float destPixelX, destPixelY; while(destBoxY >= 0 && !hasBoxOver(destBoxX,destBoxY)){ destBoxY--; } currentPixelX = LEFTOFWORLD+(xSquare*BOXSIZE); currentPixelY = TOPOFWORLD+(ySquare*BOXSIZE); if(destBoxY < 0){ //FALLEN OUT OF top screamup(); isDoomed = true; destPixelX = LEFTOFWORLD+(destBoxX*BOXSIZE); destPixelY = 0-BOXCOUNT*BOXSIZE; } else { destPixelX = LEFTOFWORLD+(destBoxX*BOXSIZE); destPixelY = TOPOFWORLD+(destBoxY*BOXSIZE); } float fractionPerFrame = (FRAMESPERROUND-TURNSTEP); pixelDeltaX = (destPixelX - currentPixelX) / fractionPerFrame; pixelDeltaY = (destPixelY - currentPixelY)/ fractionPerFrame; // println("pixelDeltaY:"+pixelDeltaY+" currentPixelY:"+currentPixelY+" destPixelY:"+destPixelY ); } }