first commit
parent
06ebb91fe0
commit
dd7415da12
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Sketch</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
|
||||
<script src="libraries/p5.min.js"></script>
|
||||
<script src="libraries/p5.sound.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script src="sketch.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"include": [
|
||||
"*.js",
|
||||
"libraries/*.js",
|
||||
"/home/luna/.vscode-oss/extensions/samplavigne.p5-vscode-1.2.7/p5types/global.d.ts"
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,145 @@
|
|||
//VARIABLE SETUP
|
||||
|
||||
let x = 0;
|
||||
let y = 0;
|
||||
let x2 = 0;
|
||||
let y2 = 0;
|
||||
let ballX = 0;
|
||||
let ballY = 0;
|
||||
let ballSpeedX = 0;
|
||||
let ballSpeedY = 0;
|
||||
let vec;
|
||||
let ballD = 50;
|
||||
let paddleWidth = 5;
|
||||
let paddleHeight = 150;
|
||||
let button;
|
||||
let score1 = 0;
|
||||
let score2 = 0;
|
||||
//CHANGING THE VARIBLES TO THEIR DEFAULT VALUE AND MAKING A VECTOR FOR THE BALL
|
||||
|
||||
function setup() {
|
||||
createCanvas(windowWidth, windowHeight);
|
||||
resetSketch();
|
||||
|
||||
}
|
||||
|
||||
function resetSketch() {
|
||||
frameRate(60)
|
||||
if (!button) {
|
||||
button = createButton('Reset');
|
||||
}
|
||||
button.size(250);
|
||||
button.position(width / 2, height / 2);
|
||||
button.center('horizontal');
|
||||
button.hide()
|
||||
button.mousePressed(resetSketch);
|
||||
x = width / 2 - 900;
|
||||
y = height / 2 - 75;
|
||||
x2 = width / 2 + 900;
|
||||
y2 = height / 2 - 75;
|
||||
ballX = width / 2;
|
||||
ballY = height /2;
|
||||
vec = createVector(random(-1, 1), random(-1, 1));
|
||||
vec.normalize();
|
||||
ballSpeedX = vec.x * 8;
|
||||
ballSpeedY = vec.y * 8;
|
||||
}
|
||||
|
||||
function draw() {
|
||||
background(255);
|
||||
|
||||
|
||||
//CHECKING IF W OR S IS PRESSED DOWN TO MOVE THE LEFT RECTANGLE
|
||||
|
||||
if (keyIsDown(87) && y > 0) {
|
||||
y -= 10
|
||||
};
|
||||
|
||||
if (keyIsDown(83) && y < height - 150) {
|
||||
y += 10
|
||||
};
|
||||
clear();
|
||||
fill(0, 0, 0);
|
||||
rect(x, y, paddleWidth, paddleHeight);
|
||||
|
||||
//CEHCKING IF I OR K IS PRESSED DOWN TO MOVE THE RIGHT RECTANGLE
|
||||
|
||||
if (keyIsDown(73) && y2 > 0) {
|
||||
y2 -= 10
|
||||
};
|
||||
|
||||
if (keyIsDown(75) && y2 < height - 150) {
|
||||
y2 += 10
|
||||
};
|
||||
rect(x2, y2, paddleWidth, paddleHeight);
|
||||
|
||||
//CREATING THE BALL AND GIVING IT SPEED IN A RANDOM DIRECTION
|
||||
|
||||
ellipse(ballX, ballY, ballD);
|
||||
ballX = ballX + ballSpeedX;
|
||||
ballY = ballY + ballSpeedY;
|
||||
|
||||
//IF THE BALL HITS THE TOP OF BOTTOM THEN BOUNCE OFF
|
||||
|
||||
if (ballY < 0 || ballY > height) {
|
||||
ballSpeedY *= -1
|
||||
};
|
||||
|
||||
//CREATES A LINE IN THE MIDDLE
|
||||
|
||||
stroke(0)
|
||||
strokeWeight(1)
|
||||
line(width / 2, height, width / 2, 0)
|
||||
|
||||
//CHECKS THE DISTANCE BETWEEN THE BALL AND THE RECTANGLES SO THE BALL WILL BOUNCE OFF IF THEY ARE TOUCHING.
|
||||
|
||||
if (ballY > y && ballY < y + paddleHeight && ballX < x + paddleWidth + ballD / 2 && ballX > 0 && ballX < width) {
|
||||
vec = createVector(random(-1, 0), random(-1, 1));
|
||||
vec.normalize();
|
||||
ballSpeedX = vec.x * -8;
|
||||
ballSpeedY = vec.y * -8;
|
||||
}
|
||||
|
||||
if (ballY > y2 && ballY < y2 + paddleHeight && ballX > x2 + paddleWidth - ballD / 2 && ballX > 0 && ballX < width) {
|
||||
vec = createVector(random(0, 1), random(-1, 1));
|
||||
vec.normalize();
|
||||
ballSpeedX = vec.x * -8;
|
||||
ballSpeedY = vec.y * -8;
|
||||
}
|
||||
|
||||
//CHECKS IF THE PLAYER HAS WON OR LOST
|
||||
|
||||
|
||||
if (ballX > width + 30) {
|
||||
fill(0)
|
||||
textSize(32)
|
||||
text('Player 1 Wins!', width / 3 + 90, height / 2 - 25)
|
||||
score1++
|
||||
button.show()
|
||||
frameRate(0)
|
||||
}
|
||||
|
||||
if (ballX < -30) {
|
||||
fill(0)
|
||||
textSize(32)
|
||||
text('Player 2 Wins!', width / 2, height / 2 - 25)
|
||||
score2++
|
||||
button.show()
|
||||
frameRate(0)
|
||||
};
|
||||
|
||||
// SHOWS THE SCORE FOR THE EACH PLAYER
|
||||
textSize(32)
|
||||
text(`Score: ${score1}`, width / 4, height - 25)
|
||||
text(`Score: ${score2}`, width - 500, height - 25)
|
||||
|
||||
//PRINTS WHICH PLAYER IS WHICH
|
||||
|
||||
text('Player 1', width / 4, height - 920)
|
||||
text('Player 2', width - 500, height - 920)
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue