////CST112 ////Professor Martin ////Samir Khater -- 2/5/2012 int horizon; int sunX=540; void setup(){ size(640,480); horizon= height/2; initialize(); } void initialize() //// init all values { samirX=100; samirY=200; samirDX=2; samirDY=1; samirW=30; samirH=40; samirR=10; } void draw() { drawScene(); moveHero(); drawHero(); } void keyPressed(){ if (key == 'b' || key == 'B') { bombX = random(width); bombY = 10; } else if (key == 'r' ) // 'r' key resers game { initialize(); } } void mousePressed() //// Jump here, when clicked { horizon= height/3 + (int) random(height/2); sunX= width/10 + (int) random(width-width/5); samirX= mouseX-2*samirH; samirY= horizon; } void drawScene() { background(80,180,255); // sky strokeWeight(0); fill(100,255,110); // grass rectMode(CORNERS); rect(0,horizon, width, height); smooth(); fill(255, 255, 0); // yellow sun ellipse(sunX, 65, 60, 60); //// Score, instrs, etc. strokeWeight(0); fill(255, 0, 0); text("Click to move the hero!", 10, 10); } void drawHero() //// Draw him { strokeWeight(0); smooth(); fill(0,0,255); // Blue head. ellipseMode(RADIUS); ellipse( samirX+samirW/2, samirY-samirR, samirR, samirR); fill(255,150,0); // Orange shirt rectMode(CORNER); rect( samirX, samirY, samirW,samirH ); stroke( 0, 0, 255 ); // Blue legs strokeWeight(6); float legY; legY= samirY+samirH; // Top of legs. line( samirX+2, legY, samirX-random(20), legY+20 ); line( samirX+samirW-2, legY, samirX+samirW+random(20), legY+20 ); strokeWeight(8); float armY; armY= samirY+9; // Top of arms. line( samirX, armY, samirX-random(10), armY+25 ); line( samirX+samirW, armY, samirX+samirW+random(10), armY+25 ); fill(0); } void moveHero() //// Make the hero bounce off the wall. { samirX += samirDX; samirY += samirDY; if (samirX > width-samirW-9 ) samirDX= -samirDX; if (samirX < 0+samirW/2 ) samirDX= -samirDX; samirY += samirDY; if (samirY > height-samirH-20 ) samirDY= -samirDY; if (samirY < horizon-samirH ) samirDY= -samirDY; }