The Cyclist and The Car Processing3 Code
- Rikka Ly
- Sep 30, 2021
- 2 min read
Updated: Jul 24, 2023
Apologies in advance for my code structure. This project was a labour of love.
import processing.sound.*;
SoundFile file;
PImage background, tortoise, hare, gas1, angry, honk;
turtle turtle = new turtle();
ArrayList<bunny> bunnies = new ArrayList<bunny>();
static float bgY = -6000;
static int bgX = -425;
int frame = 0;
boolean check = false;
float slow = 4;
void setup(){
size(1000, 1000);
background = loadImage("bg3.png");
tortoise = loadImage("tortoise.png");
hare = loadImage("hare.png");
gas1 = loadImage("gas1.png");
angry = loadImage("angry.png");
honk = loadImage("honk.png");
file = new SoundFile(this, "honk.wav");
for(int i = 0; i < 4; i++){
bunnies.add(new bunny());
}
bunnies.get(0).setY(600);
bunnies.get(1).setY(900);
bunnies.get(2).setY(1200);
}
void draw(){
frame++;
println(frame);
image(background, bgX, bgY);
image(tortoise, 425, 425);
for(int i = 0; i < 3; i++){
bunnies.get(i).display(hare);
bunnies.get(i).gas(gas1);
}
turtleStage1();
bunnyStage1();
if(frame > 150 && frame < 250){
image(angry, random(550, 555), random(595, 600));
}
if(bgY >= 0){
frame = 0;
bgY = -6000;
}
//saveFrame("gifFrames/road-####.png");
}
void turtleStage1(){
if(frame > 445 && bgX < -322 && frame < 1000){
turtle.left(2);
for(int i = 0; i < 4; i++){
bunnies.get(i).translation(2);
}
}
if(frame == 500){
for(int i = 0; i < 3; i++){
bunnies.get(i).move(2);
}
}
if(frame > 1190 && bgX > -425){
turtle.right(2);
for(int i = 0; i < 4; i++){
bunnies.get(i).translation(-2);
}
}
if(frame == 1300){
bunnies.get(0).setY(1100);
bunnies.get(1).setY(1500);
bunnies.get(2).setY(1600);
}else if(frame == 1625){
file.play();
}else if(frame > 1626 && frame < 1675){
image(honk, 472, 580);
}
if(bgX >= -325 && frame < 1050){
turtle.move(4);
}
if(frame > 1050 && frame < 1190){
turtle.move(3);
}
turtle.move(2);
}
void bunnyStage1(){
if(bunnies.get(0).hareY != 600){
bunnies.get(0).move(2);
}
if(bunnies.get(1).hareY != 900){
bunnies.get(1).move(2);
}
if(bunnies.get(2).hareY != 1200){
bunnies.get(2).move(2);
}
}
class bunny{
int hareY = 1000;
int hareX = 425;
ArrayList<gas> gas = new ArrayList<gas>();
int tintA = 255;
bunny(){
for(int i = 0; i < 4; i++){
gas.add(new gas());
}
}
void display(PImage hare){
image(hare, hareX, hareY);
}
void move(float speed){
hareY -= speed;
}
void left(int speed){
hareX += speed;
}
void right(int speed){
hareX -= speed;
}
void translation(int move){
hareX += move;
}
void setY(int y){
hareY = y;
}
void gas(PImage gas1){
for(int i = 0; i < 4; i++){
gas.get(i).display(gas1, hareX, hareY);
}
}
}
class gas{
int tintA = 255;
float direction = random(-3, 3);
float speed = random(1, 3);
float disperse = random(4, 7);
float x = 50;
float y = 175;
gas(){}
void display(PImage gas1, int hareX, int hareY){
tint(255, tintA);
image(gas1, hareX+x, hareY+y);
tintA -= disperse;
noTint();
x = x + direction;
y = y + speed;
if(tintA < 0){
direction = random(-3, 3);
speed = random(1, 3);
x = 50;
y = 175;
tintA = 255;
}
}
}
class turtle{
turtle(){}
void move(float speed){
race.bgY += speed;
}
void left(int speed){
race.bgX += speed;
}
void right(int speed){
race.bgX -= speed;
}
}
Comments