////James Doyle Project 1 //global date float horizon; float bombX=0, bombY=0, bombDY=0; //no bomb until Y>0 float gravity=1*9.81/frameRate; int guyX=100,guyY=100,guyDX=10,guyDY=5; int dogX=100,dogY=200; int birdX=100; int birdY=100; // Initial position of bird int birdDX=3; int defX=100, defY=600, defDX=20, defDY=10; //def bounces int sunX=10, sunY=100; //position of sun float r=0; float g=0; float b=0; color c; int speed; boolean eastbound=true; void setup() { size(1000,800); smooth(); frameRate(10); speed=(int) frameRate; noCursor(); } void draw() { ///draw everything scene(); guy(); stick(); dog(); puck(); def(); defstick(); bird(); bomb(); } void scene() { ///background sky grass background (0,0,250); fill(255,255,0); ellipse(sunX, sunY, 50, 50); //Sun fill(255,255,255); sunX = (sunX+1) % width; //sun path float sun= (float) sunX / width; sunY =(int)(150-100*sin(PI*sun)); horizon=height/3; rectMode(CORNERS); rect(0,height/3, width, height); fill(0,0,0); text("James Doyle, CST 112, Project 0",10,790); } void guy() { ///guy follows mouse fill(0,0,255); //shirt rectMode(CENTER); rect(mouseX,mouseY, 50,70); fill(255,255,255); //stripe rectMode(CENTER); rect(mouseX,mouseY+18,50,7); fill(255,127,0); //crest ellipseMode(CENTER); ellipse(mouseX,mouseY-9,30,30); fill(255,127,0); //pants rectMode(CENTER); rect(mouseX,mouseY+40,50,25); fill(225,225,225); //left shin rectMode(CENTER); rect(mouseX-12,mouseY+70,20,40); fill(225,225,255); //right shin rectMode(CENTER); rect(mouseX+12,mouseY+70,20,40); fill(255,255,140); //head ellipseMode(CENTER); //////details ellipse(mouseX,mouseY-50,30,30); fill(0,0,0); //helmet rectMode(CENTER); rect(mouseX,mouseY-65,35,10); fill(0,0,0);//left ear flap rectMode(CENTER); rect(mouseX-15,mouseY-55,5,10); fill(0,0,0);//right ear flap rectMode(CENTER); rect(mouseX+15,mouseY-55,5,10); fill(0,0,0); //left eye ellipseMode(CENTER); ellipse(mouseX-4,mouseY-52,3,3); fill(0,0,0); //right eye ellipseMode(CENTER); ellipse(mouseX+4,mouseY-52,3,3); fill(0,0,0); //left skate rectMode(CENTER); rect(mouseX-16,mouseY+85,28,10); fill(0,0,0); //right skate rectMode(CENTER); rect(mouseX+16,mouseY+85,28,10); strokeWeight(1); //left skate blade fill(210,210,210); rectMode(CENTER); rect(mouseX-16,mouseY+92,28,3); fill(210,210,210); //right skate blade rectMode(CENTER); rect(mouseX+16,mouseY+92,28,3); strokeWeight(2); fill(0,0,255); //left arm rectMode(CENTER); rect(mouseX-23,mouseY,10,55); fill(0,0,255); //right arm rectMode(CENTER); rect(mouseX+23,mouseY,10,55); } void stick() { ///attempt at a hockey stick strokeWeight(5); line(mouseX-23,mouseY+18,mouseX+50,mouseY+80);//position of stick strokeWeight(10); line(mouseX+50,mouseY+80,mouseX+70,mouseY+80);//position of blade strokeWeight(2); } void puck() { //puck is on the stick fill(0,0,0); rectMode(CENTER); rect(pmouseX+90,pmouseY+80,15,5);//position of the puck } void def() { //def moves and bounces off walls defDX= defX>50 && defXhorizon && defY0; ///dog follows def strokeWeight(1); fill(150,75,0); rectMode(CENTER); rect(defX-100,defY+100,70,40); //dog body rect(defX-60,defY+80,30,30); //dog head fill(0,0,0); ellipseMode(CENTER); ellipse(defX-57,defY+72,4,4); fill(0,0,0); ellipseMode(CENTER); ellipse(defX-50,defY+72,4,4); fill(150,75,0); //dog nose rectMode(CENTER); rect(defX-40,defY+87,25,13); fill(150,75,0); //left ear triangle(defX-65,defY+65,defX-60,defY+50,defX-55,defY+65); fill(150,75,0); //right ear triangle(defX-55,defY+65,defX-50,defY+50,defX-45,defY+65); fill(155,75,0); //right front leg rectMode(CENTER); rect(defX-75,defY+130,10,20); fill(170,75,0); rect(defX-90,defY+125,10,30); fill(155,75,0); rect(defX-125,defY+125,10,30); fill(170,75,0); rect(defX-110,defY+130,10,20); strokeWeight(2); } void defstick() { strokeWeight(5); //def stick line(defX-23,defY+18,defX+50,defY+80); strokeWeight(10); //def blade line(defX+50,defY+80,defX+70,defY+80); strokeWeight(2); } void bird() { ///bird flies across screen birdX=birdX+birdDX; birdX=birdX%width; birdY=birdY+10-(int)random(20); fill(200,50,100); ellipseMode(CENTER);//bird ellipse(birdX,birdY,40,20); if(birdY>150) { birdY=birdY-5; } else if(birdY<-200) { birdY=birdY-10; } if(bombX>0) { //drops from bird bombX=birdX-5; bombDY=bombDY+gravity; bombY+=bombDY; if(bombY>height) { bombY=0; background(255); } fill(60,60,60); //bomb ellipseMode(CENTER); triangle(bombX-12,bombY-15,bombX+12,bombY-15,bombX,bombY+15); fill(40,40,40); ellipse(bombX,bombY,16,30); } void bomb() { //bomb falls with gravity no bomb if zero void mousePressed() { //drop bomb when mouse is clicked bombX=birdX; bombY=birdY; bombDY=5; } if(abs(guyX-bombX)<30 && abs(guyY-bombY)<30) { background(0); } } void keyPressed() { if(key=='s') { speed-=5; if (speed<1) speed=30; frameRate(speed); } } }