float heroW=30, heroH=40, heroR=10; // Size of creature; float heroM=1.0; float heroX=0, heroY=0; //position of creature float heroDX=2, heroDY=1; // Speed (diagonally). int sunX,sunY,sunR; void setup() { size(640,480); reset(); } void reset() // Reinitialize all values // { heroW=30; heroH=40; heroR=10; // Size of creature; heroM=1.0; heroX=0; heroY=0; // Position of creature. heroDX=2; heroDY=1; // Speed (diagonally). sunX= width-100; sunY= 50; sunR= 50; } void draw() //// Move and draw hero (and scene). { drawScene(); moveHero(); drawHero(); } void drawScene() { background(200,220,255); //// 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(100,0,255); ellipseMode(RADIUS); ellipse( heroX+heroW/2, heroY-heroR, heroR, heroR); fill(random(205),random(250),random(200)); rectMode(CORNER); rect( heroX, heroY, heroW,heroH ); stroke( 0, 0, 255 ); // Blue legs ); strokeWeight(6); float legY; legY= heroY+heroH; // Top of legs. line( heroX+2, legY, heroX-random(1), legY+30 ); line( heroX+heroW-2, legY, heroX+heroW+random(1), legY+30 ); strokeWeight(4); float armY; armY= heroY+5; // Top of arms. line( heroX, armY, heroX-random(1), armY+25 ); line( heroX+heroW, armY, heroX+heroW+random(1), armY+25 ); strokeWeight(0); } void moveHero() //// { heroX= (heroX + heroDX) % width; heroY= (heroY + heroDY) % height; text( "heroY: "+heroY, 10, height-20); if (heroX>630) { heroDX= -heroDX; } else if (heroX<0) { heroDX = -heroDX; } if (heroY>400) { heroDY= -heroDY; } else if (heroY<170) { heroDY = -heroDY; } } void mousePressed() //// Jump here, when click { heroX= mouseX; heroY= mouseY; }