Skip to content

Commit

Permalink
Merge pull request ourcade#1 from Truck201/addRecolectable
Browse files Browse the repository at this point in the history
AddRecolectable
  • Loading branch information
Truck201 authored Aug 24, 2024
2 parents 3da223c + 591a603 commit e7f94b8
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 39 deletions.
64 changes: 63 additions & 1 deletion scenes/battle-scene.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,18 @@ export default class BattleScene extends Phaser.Scene {

// Añadir el rectángulo al array
this.noCorrectRects.push(rect);

// Crear el rectángulo pequeño en medio de la barra principal
this.collectibleRect = this.add.rectangle(
keysX, // Posición en X centrada
barraY + 9, // Misma posición Y que la barra principal
20, // Ancho del rectángulo
20, // Alto del rectángulo
0xff0000 // Color rojo para que sea visible
);

// Añadir el recolectable al array
this.collectibles.push(this.collectibleRect);
}

// Crear la barra más pequeña que se mueve 1
Expand Down Expand Up @@ -103,7 +115,7 @@ export default class BattleScene extends Phaser.Scene {

// Inicializar la velocidad de la barra pequeña 2 Roja
this.movingSpeed2 = 3.4;

// Evento para el segundo juego
this.time.addEvent({
delay: 2000,
Expand All @@ -113,6 +125,34 @@ export default class BattleScene extends Phaser.Scene {
},
});

// Inicializar las teclas para el manejo de eventos
this.keySpace = this.input.keyboard.addKey(
Phaser.Input.Keyboard.KeyCodes.SPACE
);
this.keyEnter = this.input.keyboard.addKey(
Phaser.Input.Keyboard.KeyCodes.ENTER
);

// Detectar la pulsación de la tecla 'SPACE'
this.keySpace.on("down", () => this.collectItem(this.movingBar));
// Detectar la pulsación de la tecla 'ENTER'
this.keyEnter.on("down", () => this.collectItem(this.movingBar2));

// Añadir detección de colisión para recolectables
this.physics.add.overlap(
this.movingBar,
this.collectibles,
this.collectItem,
null,
this
);
this.physics.add.overlap(
this.movingBar2,
this.collectibles,
this.collectItem,
null,
this
);
}

update() {
Expand All @@ -121,6 +161,28 @@ export default class BattleScene extends Phaser.Scene {
this.chequearBarra();
}

collectItem(movingBar) {
// Buscar el recolectable que está en la posición de la barra móvil
let collectible = this.collectibles.find((c) =>
Phaser.Geom.Intersects.RectangleToRectangle(
movingBar.getBounds(),
c.getBounds()
)
);

if (collectible && !collectible.isDestroyed) {
collectible.isDestroyed = true; // Marcar el recolectable como destruido
collectible.destroy(); // Destruir el recolectable
if (movingBar === this.movingBar) {
this.score++; // Incrementar el puntaje del jugador 1
this.scoreText.setText("Score: " + this.score);
} else if (movingBar === this.movingBar2) {
this.score2++; // Incrementar el puntaje del jugador 2
this.scoreText2.setText("Score: " + this.score2);
}
}
}

movimientoBarra1() {
// Movimiento de la barra pequeña AZUL
if (this.isMovingRight) {
Expand Down
39 changes: 1 addition & 38 deletions scenes/new-game.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,46 +11,9 @@ export default class NewGame extends Phaser.Scene {

create() {

// Detectar la pulsación de la tecla 'SPACE'
this.input.keyboard.on("keydown-SPACE", this.collectItem, this);
// Detectar la pulsación de la tecla 'ENTER'
this.input.keyboard.on("keydown-ENTER", this.collectItem, this);

// Crear el rectángulo pequeño en medio de la barra principal
this.collectibleRect = this.add.rectangle(
keysX, // Posición en X centrada
barraY + 9, // Misma posición Y que la barra principal
20, // Ancho del rectángulo
20, // Alto del rectángulo
0xff0000 // Color rojo para que sea visible
);

// Habilitar detección de colisión entre las barras móviles y el rectángulo pequeño
this.physics.add.overlap(
this.movingBar,
this.collectibleRect,
this.collectItem,
null,
this
);

this.physics.add.overlap(
this.movingBar2,
this.collectibleRect,
this.collectItem,
null,
this
);

}

collectItem(movingBar, collectibleRect) {
// Lógica para recolectar el rectángulo, puede ser aumentar el puntaje, desaparecer el rectángulo, etc.
collectibleRect.destroy(); // Destruye el rectángulo recolectado
this.score++; // Ejemplo: incrementar el puntaje del jugador
this.scoreText.setText("Score: " + this.score);
}


}


0 comments on commit e7f94b8

Please sign in to comment.