improved Obstacle constructor

This commit is contained in:
dhain 2022-12-13 09:28:57 +01:00
parent eff60389d4
commit ad50d14f8a
2 changed files with 20 additions and 20 deletions

View file

@ -12,30 +12,28 @@ function setup() {
backgroundImage = loadImage(backgroundImagePath); backgroundImage = loadImage(backgroundImagePath);
createCanvas(1000, 1000); createCanvas(1000, 1000);
obstacleOffset = width / 4; obstacleOffset = width / 3;
raspberry = new Raspberry(); raspberry = new Raspberry();
raspberry.image = raspberryImagePath; raspberry.image = raspberryImagePath;
obstacles.push(new Obstacle( obstacles.push(new Obstacle(
new Pipe(width, obstacleWidth, height), new Position(width, 0),
new Pipe(width, obstacleWidth, height), obstacleWidth,
pipeImagePath height,
pipeImagePath,
)); ));
obstacles.push(new Obstacle( obstacles.push(new Obstacle(
new Pipe(width + obstacleOffset, obstacleWidth, height), new Position(width + obstacleOffset, 0),
new Pipe(width + obstacleOffset, obstacleWidth, height), obstacleWidth,
pipeImagePath height,
pipeImagePath,
)); ));
obstacles.push(new Obstacle( obstacles.push(new Obstacle(
new Pipe(width + obstacleOffset * 2, obstacleWidth, height), new Position(width + obstacleOffset * 2, 0),
new Pipe(width + obstacleOffset * 2, obstacleWidth, height), obstacleWidth,
pipeImagePath height,
)); pipeImagePath,
obstacles.push(new Obstacle(
new Pipe(width + obstacleOffset * 3, obstacleWidth, height),
new Pipe(width + obstacleOffset * 3, obstacleWidth, height),
pipeImagePath
)); ));
obstacles.forEach((obstacle) => obstacle.resetPosition(false)); obstacles.forEach((obstacle) => obstacle.resetPosition(false));
@ -50,7 +48,8 @@ function draw() {
obstacle.draw(); obstacle.draw();
obstacle.update(); obstacle.update();
if(obstacle.position.x < -obstacleWidth) { // console.log(obstacle.position.x);
if(obstacle.position.x <= -obstacleWidth) {
obstacle.resetPosition(true); obstacle.resetPosition(true);
} }
}); });

View file

@ -11,10 +11,10 @@ class Obstacle extends Entity {
* Constructs the Obstacle using the top and bottom Pipe * Constructs the Obstacle using the top and bottom Pipe
* (fill is not used here) * (fill is not used here)
*/ */
constructor(pipeTop: Pipe, pipeBottom: Pipe, pipeImagePath: string) { constructor(position: Position, obstacleWidth: number, obstacleHeight: number, pipeImagePath: string) {
super(pipeTop.position, pipeTop.width, pipeBottom.height, 0); super(position, obstacleWidth, obstacleHeight, 0);
this.pipeTop = pipeTop; this.pipeTop = new Pipe(position.x, obstacleWidth, obstacleHeight);
this.pipeBottom = pipeBottom; this.pipeBottom = new Pipe(position.x, obstacleWidth, obstacleHeight);
this.pipeTop.image = pipeImagePath; this.pipeTop.image = pipeImagePath;
this.pipeBottom.image = pipeImagePath; this.pipeBottom.image = pipeImagePath;
@ -42,6 +42,7 @@ class Obstacle extends Entity {
public update(): void { public update(): void {
this.pipeTop.position.x -= this.speed; this.pipeTop.position.x -= this.speed;
this.pipeBottom.position.x -= this.speed; this.pipeBottom.position.x -= this.speed;
this.position.x = this.pipeTop.position.x;
} }
public draw(): void { public draw(): void {