diff --git a/webdev/basicbullet.js b/webdev/basicbullet.js new file mode 100644 index 0000000..08f4c9d --- /dev/null +++ b/webdev/basicbullet.js @@ -0,0 +1,54 @@ +class bullet { + //Een constructor voert eerst de code uit die er in staat voordat de rest van de class wordt uitgevoerd. + constructor(targetx, targety, radius, speed) { + //"This" moet gebruikt worden om de variabelen aan te maken in de class en het zorgt er voor dat de variabelen niet alleen in de constructor gebruikt kunnen worden, + //maar ook in de rest van de class + this.targetx = targetx; + this.targety = targety; + this.x = 500; + this.y = 100; + this.radius = 10; + this.speed = speed; + + + + this.directionX = null; + this.directionY = null; + if ((this.directionX === null) || (this.directionY === null)) { + this.directionX = this.targetx; + this.directionY = this.targety; + } + + this.projectile = createVector(600, 100); + // Calculate the initial direction + this.direction = createVector(this.targetX - this.projectile.x, this.targetY - this.projectile.y); + this.direction.normalize(); + + this.projectile.add(p5.Vector.mult(this.direction, this.speed)); + } + + + + + draw() { + //push en pop zorgen er voor dat de code tussen push en pop een eigen canvas heeft. Dus dat er meerdere projectielen tegelijk kunnen zijn. + fill(0, 255, 0); + circle(500, 500, this.radius); + + // Set the initial position of the projectile to the player's position + + + + if (dist(this.projectile.x, this.projectile.y, this.directionX, this.directionY) <= this.radius) { + hit = true; + } + else if (this.projectile.x < 0 - 10 || this.projectile.x > width + 10 || this.projectile.y < 0 - 10 || this.projectile.y > height + 10) { + bounceX = this.projectile.x; + bounceY = this.projectile.y; + shot = false; + } + + } + + +} \ No newline at end of file diff --git a/webdev/game.js b/webdev/game.js index 9881609..ef2ef3d 100644 --- a/webdev/game.js +++ b/webdev/game.js @@ -72,9 +72,7 @@ let playerPosX = 500; let playerPosY = 300; let bullets = []; let playerSpeed = 5; -let radius = 20; -let myBullet = new bullet(); - +let radius = 40; async function Movementloop() { if (booleanArray[1]) { @@ -108,11 +106,15 @@ function setup(){ createCanvas(1250, 600); frameRate(244); // disable the outline of shapes + myBullet = new bullet(); + noStroke(); } // the function draw() is called every frame function draw(){ + keyPressed() + myBullet.draw(playerPosX, playerPosY, 10, 5); // clear the background with a transparent black color background(0,0,0,10); diff --git a/webdev/index.html b/webdev/index.html index c2f686e..2f3bd0a 100644 --- a/webdev/index.html +++ b/webdev/index.html @@ -9,7 +9,7 @@ - + diff --git a/webdev/js/basicbullet.js b/webdev/js/basicbullet.js deleted file mode 100644 index df80929..0000000 --- a/webdev/js/basicbullet.js +++ /dev/null @@ -1,42 +0,0 @@ -class bullet { - //Een constructor voert eerst de code uit die er in staat voordat de rest van de class wordt uitgevoerd. - constructor(targetx, targety, radius, speed) { - //"This" moet gebruikt worden om de variabelen aan te maken in de class en het zorgt er voor dat de variabelen niet alleen in de constructor gebruikt kunnen worden, - //maar ook in de rest van de class - this.x = targetx; - this.y = targety; - this.radius = radius; - this.speed = speed; - - // Set the initial position of the projectile to the player's position - let projectile = createVector(this.x, this.y); - this.x = directionX; - this.y = directionY; - - // Calculate the initial direction - direction = createVector(targetX - projectile.x, targetY - projectile.y); - direction.normalize(); - -} - - - - -draw() { - //push en pop zorgen er voor dat de code tussen push en pop een eigen canvas heeft. Dus dat er meerdere projectielen tegelijk kunnen zijn. - fill(255, 0, 0); - circle(500, 500, 5); - projectile.add(p5.Vector.mult(direction, shotSpeed)); - if (dist(projectile.x, projectile.y, directionX, directionY) <= this.radius) { - hit = true; - } - else if (projectile.x < 0 - 10 || projectile.x > width + 10 || projectile.y < 0 - 10 || projectile.y > height + 10) { - bounceX = projectile.x; - bounceY = projectile.y; - shot = false; - } - -} - - -} \ No newline at end of file