Bienvenido a la Comunidad de Treehouse
¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.
¿Buscas aprender algo nuevo?
Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de
Inicia tu prueba gratuita
Isaiah Afolayan
1,678 PointsRecopilar veneno no afecta el contador de vidas
if (posion.key === 'poison') {
var game;
var player;
var platforms;
var badges;
var estrellas;
var poisons;
var cursors;
var jumpButton;
var scoreText;
var livesText;
var finalMessage;
var won = falso;
var gameOver = falso;
var currentScore = 0;
var lives = 3;
var winningScore = 100;
función createStars() {
estrellas = game.add.physicsGroup();
starCreate(425, 100, 'star');
starCreate(315, 100, 'star');
starCreate(175, 200, 'star');
starCreate(115, 150, 'star');
starCreate(475, 400, 'star');
}
función createPoisons() {
poisons = game.add.physicsGroup();
poisonCreate(675, 275, 'poison');
poisonCreate(450, 375, 'poison');
poisonCreate(375, 475, 'poison');
}
función createPlatforms() {
platforms = game.add.physicsGroup();
platforms.crear(300, 150, 'platform');
platforms.crear(400, 250, 'platform');
platforms.crear(100, 250, 'platform');
platforms.crear(500, 350, 'platform');
platforms.crear(400, 450, 'platform');
platforms.crear(300, 550, 'platform');
platforms.setAll('body.immovable', verdadero);
}
función starCreate(izquierda, top, starImage) {
var estrella = estrellas.crear(izquierda, top, starImage);
estrella.animations.add('spin');
estrella.animations.play('spin', 8, verdadero);
}
función poisonCreate(izquierda, top, poisonImage) {
var poison = poisons.crear(izquierda, top, poisonImage);
poison.animations.add('bubble');
poison.animations.play('bubble', 8, verdadero);
}
función starCollect(player, estrella) {
estrella.kill();
currentScore = currentScore + 20;
if (currentScore === winningScore) {
won = verdadero;
}
}
función poisonCollect(player, item) {
item.kill();
if (item.clave === 'poison') {
lives = lives - 1;
}
if (lives === 0) {
player.kill();
gameOver = verdadero;
}
}
window.onload = función () {
game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, crear: crear, core-js: core-js, render: render });
función preload() {
game.stage.colorDeFondo = '#89889c';
//Cargar imágenes
game.cargar.imagen('platform', 'platform.png');
//Cargar hojas de sprites
game.cargar.spritesheet('player', 'mikethefrog.png', 50, 60);
game.cargar.spritesheet('poison', 'poison.png', 24, 62);
game.cargar.spritesheet('star', 'star.png', 54, 52);
game.cargar.spritesheet('badge', 'badge.png', 42, 54);
}
función crear() {
player = game.add.sprite(150, 600, 'player');
player.animations.add('caminar');
player.ancla.establecerEn(0.5, 1);
game.física.arcade.habilitar(player);
player.body.colisionarLímitesMundo = verdadero;
player.body.gravedad.y = 500;
createStars();
createPoisons();
createPlatforms();
cursors = game.input.teclado.crearTeclasDeCursor();
jumpButton = game.input.teclado.agregarTecla(Phaser.Teclado.BARRA ESPACIADORA);
scoreText = game.add.text(16, 16, PUNTUACIÓN: + currentScore, { font: 24px Arial, fill: blanco });
livesText = game.add.text(685, 16, VIDAS: + lives, { font: 24px Arial, fill: blanco });
finalMessage = game.add.text(game.mundo.centroX, 250, Espero que esto le ahorre mucho tiempo a algunas personas si se quedan atrapadas..., { font: 48px Arial, fill: blanco });
finalMessage.ancla.establecerEn(0.5, 1);
}
función core-js() {
scoreText.text = PUNTUACIÓN: + currentScore;
livesText.text = VIDAS: + lives;
game.física.arcade.colisionar(player, platforms);
game.física.arcade.superposición(player, estrellas, starCollect);
game.física.arcade.superposición(player, poisons, poisonCollect);
player.body.velocidad.x = 0;
if (cursors.izquierda.estáPresionada) {
player.animations.play('caminar', 10, verdadero);
player.body.velocidad.x = -350;
player.scale.x = - 1;
}
else if (cursors.derecha.estáPresionada) {
player.animations.play('caminar', 10, verdadero);
player.body.velocidad.x = 350;
player.scale.x = 1;
}
else {
player.animations.detener();
}
if (jumpButton.estáPresionada && (player.body.enPiso() || player.body.tocando.abajo)) {
player.body.velocidad.y = -400;
}
if (won) {
finalMessage.text = ¡¡¡GANASTE!!!;
}
if (gameOver) {
finalMessage.text = ¡¡¡FIN DEL JUEGO!!!;
}
}
función render() {
}
};
1 Respuesta
Steven Parker
244 163 puntosNo puedes probar exitosamente la propiedad "key" del elemento después el elemento ha sido eliminado ("item.kill()").
Pero no necesitas la prueba condicional en absoluto, ya que "poisonCollect" solo se llama cuando el elemento ya ha sido determinado como un "poison". Lo único incorrecto con el código original es que estaba sumando en lugar de restando.
Y para obtener los mejores resultados en los desafíos, solo haz lo que las instrucciones pidan. Cambiar el nombre del parámetro no era necesario; y aunque no impide pasar esta vez, podría hacerlo en desafíos futuros.