//// hero moves diagonally and jumps to mouse position when clicked. float jackW=30, jackH=40, jackR=10; // Size of jack; float jackM=1.0; float jackX=0, jackY=0; // Position of jack. float jackDX=2, jackDY=1; // Speed int sunX,sunY,sunR; void setup() { size(640,480); reset(); } void reset() // Reinitialize all values // { jackW=30; jackH=40; jackR=10; // Size of jack; jackM=1.0; jackX=0; jackY=0; // Position of jack. jackDX=2; jackDY=1; // Speed sunX= width-100; sunY= 50; sunR= 50; } void draw() //// Move and draw jack and scene. { drawScene(); moveHero(); drawHero(); } void drawScene() { background(200,220,255); int nextline=1; text( "Click to reposition.", 10, 12*nextline++); text( "Change speed with keys: X, x, Y, y.", 10, 12*nextline++); text( "Change size with with keys: +, -, M, m.", 10, 12*nextline++); text( "Reset key: r.", 10, 12*nextline++); //// Sun. fill(255,255,0); noStroke(); ellipse( sunX,sunY, sunR,sunR ); //// Grass at bottom; noStroke(); fill(100,255,100); rect(0,height/4, width,height); } void drawHero() //// Draw him { strokeWeight(0); fill(0,0,0); // black head. ellipseMode(RADIUS); ellipse( jackX+jackW/2, jackY-jackR, jackR, jackR); fill(200,200,100); // yellow shirt rectMode(CORNER); rect( jackX, jackY, jackW,jackH ); stroke( 90, 200, 150 ); // light green legs ); strokeWeight(6); float legY; legY= jackY+jackH; // legs. line( jackX+2, legY, jackX-random(15), legY+30 ); line( jackX+jackW-2, legY, jackX+jackW+random(15), legY+30 ); strokeWeight(4); float armY; armY= jackY+5; // arms. line( jackX, armY, jackX-random(10), armY+25 ); line( jackX+jackW, armY, jackX+jackW+random(10), armY+25 ); strokeWeight(0); } void moveHero() //// { jackX= (jackX + jackDX) % width; jackY= (jackY + jackDY) % height; text( "jackY: "+jackY, 10, height-20); } void mousePressed() //// click to jump { jackX= mouseX; jackY= mouseY; } void keyPressed() //// key increases or decrease { if (key == 'X') jackDX= jackDX + 1; // Faster in DX. if (key == 'x') jackDX= jackDX - 1; // Slower in DX. if (key == 'Y') jackDY= jackDY + 1; // Faster in DY. if (key == 'y') jackDY= jackDY - 1; // Slower in DY. if (key == '+') jackH= jackH * 1.25; // Make 25% taller if (key == '-') jackH= jackH * 0.75; // Make 25% smaller if (key == 'H') jackR++; // Head bigger/smaller if (key == 'h') jackR--; if (key=='r') reset(); }