Code in Processing

Hi!

I require your help regarding a problem I’m encountering.

I need to make the ball in my game touch the rects, and I just can’t figure it out
Here is the code;

(Some of the comments are in danish, please don’t mind it haha)

//først variablerne for startskærmen
//Koordinaterne for knapperne
float x1 = 150;
float y1 = 250;
float w1 = 200;
float h1 = 50;
float x2 = 150;
float y2 = 350;
float w2 = 200;
float h2 = 50;
float x3 = 150;
float y3 = 550;
float w3 = 200;
float h3 = 50;

int counter = 0;

//så variablerne for selve spillet
Boolean spilletIGang = false;
//De forskellige farver bliver defineret, så de ikke skal kodes hver gang

//De forskellige farver er blå (colorB), rød, (colorR), gul (colorG), grøn (colorGR)

color colorB = color(0,0,255);
color colorR = color(255,0,0);
color colorG = color(255,204,0);
color colorGR = color(0,255,0);

int score=0;
int highScore=0;

//når man skriver int foran, skabes en heltals-variabel eller flere
int x, y, w, h, speedX, speedY; //egenskaber for bolden
int paddleXB, paddleYB, paddleW, paddleH, paddleS; //egenskaber for ketcherne

//når man skriver boolean foran, skabes sand/falsk variabler
boolean bouncerL, bouncerR;

//firkanter
int yPosBrick = 101;
int yPosBrick1 = 157;

void setup() {
//Stroke
size(500,700);
background(0);
fill(100);
rect(-1,-1,501,60);
textSize(40);
fill(255);
text(“BALL BOUNCER”,100,45);

//knapperne
stroke(0);
fill(100);
rect(150,250,200,50,20);
rect(150,350,200,50,20);

//knappernes tekst
textSize(30);
fill(255);
text(“PLAY”,210,285);
text(“TUTORIAL”,175,385);

//variabler initialiseres for spillet
//Ketchernes placering på canvas sættes og ketchernes størrelse sættes

paddleXB = 175; //x-koordinaten for ketcher
paddleYB = 600; //y-koordinaten for ketcher
paddleW = 150; //bredde på ketcherne
paddleH = 30;
paddleS = 12; //hastigheden på ketcherne

//x,y koordinaterne får bolden til at være i midten i starten af hver omgang.

x = width/2; //width er canvasets bredde til hver tid
y = height/2; //og height er tilsvarende højden

//w,h sætter bredde og højde på eclipsen, som er vores bold

w = 30;
h = 30;

//sætter hastigheden på bolden på hhv. x og y aksen

speedX = 3;
speedY = 3;

}

void draw(){
mousePressed();
if(spilletIGang){
spillet();

}

}

void mouseClicked(){

if(mouseX>x1 && mouseX<x1+w1 && mouseY>y1 && mouseY <y1+h1 && counter<1){
counter++;

//tror vi kan droppe denne her del
/*
background(0);
fill(100);
rect(-1,-1,501,60);
textSize(40);
fill(255);
text(“BALL BOUNCER”,100,45);*/
spilletIGang=true;
}

if(mouseX>x2 && mouseX<x2+w2 && mouseY>y2 && mouseY <y2+h2 && counter<2){
counter++;
//stroke for spillet
stroke(255);
fill(0);
rect(0,0,500,700);
rect(60,100,370,550);
fill(100);
rect(-1,-1,501,60);
textSize(40);
fill(255);
text(“BALL BOUNCER”,100,45);
fill(100);

//Nederste tekst
textSize(30);
fill(0,100,0);
text(“TUTORIAL”,167.5,150);
fill(255);
textSize(20);
fill(0,0,100);
text(“Velkommen til BALL BOUNCER!!!”, 80, 200);
fill(255);
textSize(15);
text("- I BALL BOUNCER skal du prøve at ødelægge ", 80, 240);
text("så mange blokke som muligt, uden at bolden ", 92, 260);
text("rammer bunden eller at blokkene kommer “, 92, 280);
text(“under den stribende linje.”, 92, 300);
text(”- Du skal bruge BOUNCER’en som hjælp til ", 80, 330);
text("at ødelægge blokkene. “, 92, 350);
text(”- For at rykke med BOUNCER’en, skal du bruge ", 80, 380);
text("piletasterne til højde og venstre. ", 92, 400);

textSize(25);
fill(100,0,100);
text(“Held og lykke XD”, 140, 500);

//play knap
stroke(0);
fill(100);
rect(x3,y3,w3,h3,20);

//knappens tekst
textSize(30);
fill(255);
text(“PLAY”,210,585);

}
if(mouseX>x3 && mouseX<x3+w3 && mouseY>y3 && mouseY <y3+h3 && counter<2){
counter++;

//Spillets omridse (den hvide firkant)
stroke(255);
fill(0);
rect(60,100,370,550);

//Viser scoren
textSize(20);
fill(255);
text("Score: " + score, 20,680);
text("Highscore: " + highScore, 310,680);

spilletIGang=true;

}

}

void spillet(){
// stroke for spillet
stroke(255);
fill(0);
rect(0,0,500,700);
rect(60,100,370,550);
fill(100);
rect(-1,-1,501,60);
textSize(40);
fill(255);
text(“BALL BOUNCER”,100,45);

//Nederste tekst
textSize(20);
fill(255);
text("Score: " + score, 20,680);
text("Highscore: " + highScore, 310,680);

//Game over stregen
fill(100);
stroke(100);
for(int i =90; i<width; i+=30){
ellipse (i-40,height-200,10,2);}

//firkanter for spillet

fill(colorGR);
int xPosBrick1 = 60;
for(int i = 0; i<7; i++){
rect(xPosBrick1, yPosBrick1,50,50);
xPosBrick1 = xPosBrick1 + 53;
}

fill(colorR);
int xPosBrick2 = 60;
for(int i = 0; i<7; i++){
rect(xPosBrick2,210,50,50);
xPosBrick2 = xPosBrick2 + 53;
}

fill(colorG);
int xPosBrick3 = 60;
for(int i = 0; i<7; i++){
rect(xPosBrick3, 265,50,50);
xPosBrick3 = xPosBrick3 + 53;

}
fill(colorB);
int xPosBrick = 60;
for(int i = 0; i<7; i++){
rect(xPosBrick, yPosBrick, 50, 50);
xPosBrick = xPosBrick + 53;
}

//Funktionen for at firkanterne rykker ned og stopper ved en given x-værdi
if(yPosBrick < 320){
yPosBrick = yPosBrick + 1;
}

drawPaddle();
movePaddle();
restrictPaddle();
drawCircle();
moveCircle();
bounceOff();
contactPaddle();

}

void contactPaddle() {
//x værdien for bolden skal være STØRRE end x værdien for paddlen, men den skal samtidig også være MINDRE end x for paddle + paddlebredde

if ( x < paddleXB+paddleW && x > paddleXB && y - h/2 < paddleYB + paddleH/2 && y + h/2 > paddleYB - paddleH/2) {

 // if (speedX > 0) {

  speedY = -speedY*1;

//} x + w/2 > paddleXB - paddleW/2

}

}

//denne funktion finder ud af om bolen ramte ketcheren eller ej

void bounceOff() {

if ( y > height - 50 - h/2) { //hvis boldens y position er større end kanvas-højde minus halvdelen af bold-bredden
setup(); //så start spillet forfra
speedX = -speedX;

}

//hvis bolden rammer muren til højre, venstre eller øverste, så skiftes retningen

if ( x > width - 60 - h/2) {
speedX = -speedX;
} else if ( x < 60 + h/2) {
speedX = -speedX;
} else if ( y < 100 + h/2) {
speedY = -speedY;

}

}

//ketcherne skabes

void drawPaddle() {
fill(255);
rect(paddleXB, paddleYB, paddleW, paddleH);
}

//denne funktion sørger for at bolden kan bevæge sig
void moveCircle() {
x = x + speedX2;
y = y + speedY
2;
}

//denne funktion skaber bolden

void drawCircle() {
fill(255);
stroke(250);
ellipse(x, y, w, h);
stroke(100);
}

//vi gør sådan at ketcherne bevæger sig hvis der trykkes til side eller til den anden

void movePaddle() {
if (bouncerL) {
paddleXB = paddleXB - paddleS;
}

if (bouncerR) {
paddleXB = paddleXB + paddleS;
}
}

//denne funktion registrerer, om en ketcher har ramt væggen

void restrictPaddle() {
if (paddleXB - 60 < 0) { //hvis y-koordinaten for venstre ketcher minus halvdelen af ketcherhøjden er mindre end 0
paddleXB = paddleXB + paddleS; //skal ketcheren køre til siden.
}

if (paddleXB + paddleW/0.69 > width) {
paddleXB = paddleXB - paddleS;
}
}

//denne funktion registrerer om brugeren trykker på tasten
void keyPressed() {
if (keyCode == LEFT) {
bouncerL = true;
}

if (keyCode == RIGHT) {
bouncerR = true;
}
}

//denne funktion registrerer om brugeren giver slip på tasten

void keyReleased() {
if (keyCode == LEFT) {
bouncerL = false;
}

if (keyCode == RIGHT) {
bouncerR = false;
}}

//void showScores() {
//fill(255);
//textAlign(CENTER);

//textSize(45);
//text("Score: " + score, width/2, 70);
//textSize(20);
//text("Highscore: " + highScore, width/2, 100);}

Thank you so much in advance for your help!

I want you to fix my machine. It’s a new kind of machine you have never seen before. I’m not going to tell you what’s wrong with it. You have to figure that out for yourself. I will provide the service manual for it, written in a language you don’t understand. Just disregard that. And I want you to do it for free.
Thanks.

Do you get my point?