// // Cloned by Scott Brady on 8 Nov 2022 from World "Pong" by Scott Brady
// // Please leave this clone trail here.
// //---- normal P5 code -------------------------------------------------------
// // constants for player and opponent paddles
let playerPaddle;
// // let aiPaddle;
// // let ball;
// // let playerScore;
// // let aiScore;
// const POP_SOUND = '/uploads/mrprice/mixkit-game-ball-tap-2073.wav';
// const maxScore = 10;
AB.socketStart();
// // function called before game runs
function setup()
{
createCanvas(624, 351);
playerPaddle = new Paddle(26);
// aiPaddle = new Paddle(width - 48);
// ball = new Ball();
// playerScore = new Score(width / 2 - 40);
// aiScore = new Score(width / 2 + 40);
// let popSound = new Audio ( POP_SOUND );
}
function draw()
{
// sendData();
background(0);
playerPaddle.display();
// aiPaddle.display();
// playerPaddle.update();
// aiPaddle.update();
// processAI();
// ball.update(playerScore, aiScore);
// ball.display();
// // sendData(ball);
// ball.hasHitPlayer(playerPaddle);
// ball.hasHitAi(aiPaddle);
// stroke(255);
// line(width/2, 0, width/2, height);
// playerScore.display();
// aiScore.display();
}
// function keyPressed() {
// if (keyCode == UP_ARROW){
// playerPaddle.isUp = true;
// }
// else if (keyCode == DOWN_ARROW){
// playerPaddle.isDown = true;
// }
// }
// function keyReleased() {
// if (keyCode == UP_ARROW){
// playerPaddle.isUp = false;
// }
// else if (keyCode == DOWN_ARROW){
// playerPaddle.isDown = false;
// }
// }
// function audioHandler(instance){
// if (instance == "pop"){
// var a = new Audio( POP_SOUND );
// a.play();
// }
// }
class Paddle {
constructor(x) {
this.x = x;
this.y = height / 2;
this.height = 80;
this.width = 20;
this.isUp = false;
this.isDown = false;
}
display() {
fill(236, 89, 59);
rect(this.x, this.y, this.width, this.height);
}
// move paddle up
up() {
if (this.y > 0){
paddleMoved();
this.y -= 2;
}
}
// // move paddle down
// down() {
// if (this.y < height - this.height){
// this.y += 2;
// }
// }
// update() {
// if (this.isUp){
// this.up();
// }
// else if (this.isDown){
// this.down();
// }
// }
}
// class Ball {
// constructor(){
// this.r = 10;
// this.reset();
// }
// update(playerScore, aiScore) {
// // if the ball hits the top or bottom of the screen, change its direction
// if (this.y < this.r || this.y > height - this.r){
// // sendData(-this.ySpeed);
// this.ySpeed = -this.ySpeed;
// }
// // if the ball goes to the ends of the screen, restart the game
// if (this.x < this.r) {
// aiScore.increase();
// this.reset();
// } else if (this.x > width + this.r) {
// playerScore.increase();
// this.reset();
// }
// this.x += this.xSpeed;
// this.y += this.ySpeed;
// }
// reset() {
// this.x = width / 2;
// this.y = height / 2;
// this.xSpeed = random(3, 4);
// // sendData(Ball)
// let isLeft = random(1) > .5;
// if (isLeft){
// this.xSpeed = -this.xSpeed;
// }
// this.ySpeed = random(-3, 3);
// }
// display() {
// ellipse(this.x, this.y, this.r * 2, this.r * 2);
// }
// hasHitPlayer(player) {
// if (this.x - this.r <= player.x + player.width && this.x > player.x){
// if (this.isSameHeight(player)){
// this.xSpeed = -this.xSpeed;
// audioHandler("pop");
// }
// }
// }
// hasHitAi(ai) {
// if (this.x + this.r >= ai.x && this.x <= ai.x + ai.width) {
// if (this.isSameHeight(ai)){
// this.xSpeed = -this.xSpeed;
// audioHandler("pop");
// }
// }
// }
// isSameHeight(player){
// return this.y >= player.y && this.y <= player.y + player.height;
// }
// }
// class Score {
// constructor(n) {
// this.n = n;
// this.score = 0;
// }
// display() {
// textSize(50);
// textAlign(CENTER);
// text(this.score, this.n, 60);
// }
// increase() {
// this.score++;
// }
// }
// function processAI() {
// let middleOfPaddle = aiPaddle.y + aiPaddle.height / 2;
// if (middleOfPaddle > ball.y){
// aiPaddle.isUp = true;
// aiPaddle.isDown = false;
// }
// else{
// aiPaddle.isDown = true;
// aiPaddle.isUp = false;
// }
// }
function paddleMoved()
{
yPosition = playerPaddle.y;
AB.socketOut ( yPosition ); // server gets this, and sends the data to all clients running this World
}
AB.socketIn = function(yPosition)
{
console.log(yPosition);
// console.log(data);
// ball.update(data.score1, data.score2)
};