added collision between circle and square

This commit is contained in:
Mees Roelofsz
2023-11-24 13:30:10 +01:00
parent 1d77afd763
commit eb0466083b

View File

@@ -1,15 +1,19 @@
size = 10; const size = 10;
radius = size/2; radius = size/2;
cirX = 500 cirX = 500
cirY = 300; cirY = 300;
xmax = 1000; const width = 1000;
ymax = 600; const height = 600;
speed = 3; speed = 3;
squareX = 100;
squareY = 100;
const squareSize = 100;
// the function setup() is called once when the page is loaded // the function setup() is called once when the page is loaded
function setup() { function setup() {
// create a canvas element and append it to the body // create a canvas element and append it to the body
createCanvas(xmax, ymax); createCanvas(width, height);
frameRate(1200); frameRate(120);
// disable the outline of shapes // disable the outline of shapes
noStroke(); noStroke();
} }
@@ -18,19 +22,27 @@ function keyPressed() {
if (keyIsDown(LEFT_ARROW) && cirX > 0+radius) { if (keyIsDown(LEFT_ARROW) && cirX > 0+radius) {
cirX -= speed; cirX -= speed;
} }
if (keyIsDown(RIGHT_ARROW) && cirX < xmax-radius) { if (keyIsDown(RIGHT_ARROW) && cirX < width-radius) {
cirX += speed; cirX += speed;
} }
if (keyIsDown(UP_ARROW) && cirY > 0+radius) { if (keyIsDown(UP_ARROW) && cirY > 0+radius) {
cirY -= speed; cirY -= speed;
} }
if (keyIsDown(DOWN_ARROW) && cirY < ymax-radius) { if (keyIsDown(DOWN_ARROW) && cirY < height-radius) {
cirY += speed; cirY += speed;
} }
} }
function collision() { function object_collision() {
var squareCenterX = squareX + squareSize / 2;
var squareCenterY = squareY + squareSize / 2;
var distance = dist(cirX, cirY, squareCenterX, squareCenterY);
if (distance < squareSize / 2 + radius) {
squareX = random(0, width - squareSize);
squareY = random(0, height - squareSize);
}
} }
// the function draw() is called every frame // the function draw() is called every frame
@@ -41,6 +53,7 @@ function draw() {
// draw a circle at the mouse position // draw a circle at the mouse position
circle(constrain(cirX,0+radius,xmax-radius), constrain(cirY,0+radius,ymax-radius), size); circle(constrain(cirX,0+radius,width-radius), constrain(cirY,0+radius,height-radius), size);
square(100,100,100,10); square(squareX,squareY,squareSize);
object_collision();
} }