Modify a text file: $/2203-moving.pde
$/2203-moving.pde
//// CST112 - BAM - hero moves diagonally; jump to mouse position when clicked. float bamW=30, bamH=40, bamR=10; // Size of creature; float bamM=1.0; float bamX=0, bamY=0; // Position of creature. float bamDX=2, bamDY=1; // Speed (diagonally). int sunX,sunY,sunR; void setup() { size(640,480); reset(); } void reset() // Reinitialize all values // { bamW=30; bamH=40; bamR=10; // Size of creature; bamM=1.0; bamX=0; bamY=0; // Position of creature. bamDX=2; bamDY=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); 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(255,0,255); // Purple head. ellipseMode(RADIUS); ellipse( bamX+bamW/2, bamY-bamR, bamR, bamR); fill(255,0,0); // Red shirt rectMode(CORNER); rect( bamX, bamY, bamW,bamH ); stroke( 0, 0, 255 ); // Blue legs ); strokeWeight(6); float legY; legY= bamY+bamH; // Top of legs. line( bamX+2, legY, bamX-random(15), legY+30 ); line( bamX+bamW-2, legY, bamX+bamW+random(15), legY+30 ); strokeWeight(4); float armY; armY= bamY+5; // Top of arms. line( bamX, armY, bamX-random(10), armY+25 ); line( bamX+bamW, armY, bamX+bamW+random(10), armY+25 ); strokeWeight(0); } void moveHero() //// { bamX= (bamX + bamDX) % width; bamY= (bamY + bamDY) % height; text( "bamY: "+bamY, 10, height-20); } void mousePressed() //// Jump here, when click { bamX= mouseX; bamY= mouseY; } void keyPressed() //// Which key was pressed? { if (key == 'X') bamDX= bamDX + 1; // Faster in DX. if (key == 'x') bamDX= bamDX - 1; // Slower in DX. if (key == 'Y') bamDY= bamDY + 1; // Faster in DY. if (key == 'y') bamDY= bamDY - 1; // Slower in DY. if (key == '+') bamH= bamH * 1.25; // Make 25% taller if (key == '-') bamH= bamH * 0.75; // Make 25% smaller if (key == 'H') bamR++; // Head bigger/smaller if (key == 'h') bamR--; if (key=='r') reset(); }