studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java colors breakout

java - programacion - Probando si los colores son iguales



manual de programacion android pdf (1)

Use Color.X.equals(c) para sus casos if que son como c == Color.X . Está probando si los objetos son la misma instancia, en lugar de si se consideran iguales entre sí.

También podría usar c.equals(Color.X) como lo hizo para Color.RED , sin embargo, muchas personas prefieren la otra forma de protegerse contra una NullPointerException para casos donde c es null .

Estoy trabajando en la tarea de Breakout de las conferencias de Stanford en iTunes U (todavía bastante verde) y me encontré con un gruñido. Estoy tratando de establecer un valor de puntos para los diferentes ladrillos de colores para que pueda calcular un puntaje, pero mi ifs no parece funcionar. Tengo la sensación de que getColor () no devuelve el valor que creo que es; Creé una etiqueta de estado para mostrar lo que está devolviendo, pero todavía no puedo descubrir cómo probar eso. Es más que probable que sea algo simple que me falta o que aún no conozco.

Aquí hay un fragmento del bit en el que estoy trabajando:

if (collider != null && collider != paddle) { remove(scoreLabel); vy = -vy; Color brickColor = collider.getColor(); add(new GLabel("" + collider.getColor(), 10, 12)); double temp = brickVal(brickColor) * scoreMultiplier; score += Math.abs(temp); addScoreboard(); remove(collider); } } private double brickVal(Color c) { if (c.equals(Color.RED)) { return 10.0; } else if (c == Color.ORANGE) { return brickVal = 8.0; } else if (c == Color.YELLOW) { return brickVal = 6.0; } else if (c == Color.GREEN) { return brickVal = 4.0; } else if (Color.CYAN.equals(c)) { return brickVal = 2.0; } else if (c == Color.MAGENTA) { return brickVal = 1.0; } else { return 1.0; } }

Si necesitas el código completo, házmelo saber.