Yo pondría:
if(combustible=0)
return false;
else
{
combustible=combustible-1;
return true;
}
1) combustible = 0 te dará un error de compilación. La forma de comparar es ==.
2) Como sabes en Java no se puede excluir los negativos de un entero. Por tal razón debe de colocarse:
if (combustible<=0) {
}
Si te fijas, en el método que he puesto más arriba, capto la lógica:
public boolean fly()
boolean puedeVolar = false;
{
// si el combustible es mayor a 0, se podra restar a combustible
// ademas puedevolar se convierte en true, indicando que puede volar
if (getCombustible() >0) {
combustible--;
puedeVolar = true;
}
// aqui puedes imaginar un else vacio, si combustible es < 0
// no le resta a combustible, y devuelve false, ya no puede volar.
return puedeVolar;
}
yo tengo estas variables , combustible , xSpeed , ySpeed , xPos y yPos , todos son int
vale lo que quiero hacer es que si el metodo fly me devuelve true , este ha de restar uno a combustible y modificar la posicion sumandole la velocidad.
Antes que todo, te recomendaría que para el combustible uses un byte (-127 / +128). Un Int tiene un rango de -2,147,483,648 y +2,147,483,647. Un Short -32,768 y +32,767.Lo más sencillo que me imagino, es crear mis métodos para mover el avión:
private void mover() {
xPos++;
yPos++;
}
private void acelerar() {
xSpeed++;
ySpeed++;
}
Luego, desde el método fly:
public boolean fly()
boolean puedeVolar = false;
{
// si el combustible es mayor a 0, se podra restar a combustible
// ademas puedevolar se convierte en true, indicando que puede volar
if (getCombustible() >0) {
combustible--;
mover(); // como hay combustible, llamamos inmediatamente al metodo mover
acelerar(); // lo mismo con acelerar
puedeVolar = true;
}
// aqui puedes imaginar un else vacio, si combustible es < 0
// no le resta a combustible, y devuelve false, ya no puede volar.
return puedeVolar;
}
Otra forma, que es casi lo mismo:
public boolean fly()
boolean puedeVolar = false;
{
// si el combustible es mayor a 0, se podra restar a combustible
// ademas puedevolar se convierte en true, indicando que puede volar
if (getCombustible() >0) {
puedeVolar = true;
}
// aqui puedes imaginar un else vacio, si combustible es < 0
// no le resta a combustible, y devuelve false, ya no puede volar.
return puedeVolar;
}
Luego, desde un método captamos el valor que devuelve fly, si es true, restamos combustible, aumentamos posicion, y aumentamos velocidad:
private void movilizar() {
if (fly() ) {
combustible--;
mover();
acelerar();
}
else {
JOptionPane.
showMessageDialog(null,
"El avion se quedo sin combustible, aterrizara..."); }
}