Mayo 19, 2011, 02:47:19 AM Ultima modificación: Mayo 19, 2011, 05:49:05 PM por slampdesign
Buenas, es que tengo una duda con respecto a else, bueno a veces cuando probamos varios valores de una variable se debe usar para el if de cada uno?? es decir, asi?

[gml]if vida=0{instance_destroy()}
else
if vida=1{instance_destroy()}
else
if vida=2{instance_destroy()}[/gml]

? debe usarse asi?(sin el else):

[gml]if vida=0{instance_destroy()}
if vida=1{instance_destroy()}
if vida=2{instance_destroy()}[/gml]

Es que tengo esta duda y creo que una de estas dos formas ocasiona algunos errores.. ?Como se usa?

Else se usa como un separador de opciones diferentes, osea; se usa para decir que si sucede lo contrario a lo establecido suceda la acci?n... A ver, me explico:
[gml] if global.puntos=5{game_end()}
else
{global.puntos+=1}// si los puntos son 5 se acabar?, DE LO CONTRARIO no lo har?. [/gml]
osea... No se usa para separar muchas opciones, si no para decir que si no pasa algo se realice la acci?n.. Espero hacerme explicado.

#2 Mayo 19, 2011, 04:48:23 AM Ultima modificación: Mayo 19, 2011, 04:50:43 AM por brunoxzx
Mmm en el caso de tu codigo no es necesario usar ning?n else, la verdad no se bien como explic?rtelo a ver si explic?ndote lo que hacen tus dos c?digos lo entiendes.

si vida=0{instance_destroy()}
pero si vida no es 0
si vida=1{instance_destroy()}
pero si vida no es 0 ni 1
si vida=2{instance_destroy()}



si vida=0{instance_destroy()}
si vida=1{instance_destroy()}
si vida=2{instance_destroy()}


Como veras no son necesarios los elses pero tampoco estorban.
es como ir a una tienda y preguntar.
Citar
1: TU ---- Cuanto cuesta este perfume?.
2: Se?or de la tienda ---- 80 se?or.
3: TU ----  y ese otro perfume cuesta lo mismo?
4: Se?or de la tienda ---- no se?or no cuesta lo mismo.
5: TU ---- Entonces cuanto cuesta ese perfume?.
6: Se?or de la tienda ---- 120 se?or.
Como veras los comentarios 3 y 4 podr?n ser eliminados y quedar?a bien la conversaci?n.

claro hay casos en los que si altera el resultado, como este.
[gml]if keyboard_check(vk_down){y+=2}else{
if keyboard_check(vk_left){x-=2}}[/gml]
En este caso si presionas abajo y izquierda al mismo tiempo solo se mover? a hacia abajo
o
[gml]if keyboard_check(vk_down){y+=2}
if keyboard_check(vk_left){x-=2}[/gml]
En este caso si presionas abajo y izquierda al mismo tiempo se movera en diagonal.

Porcierto en casos en los que ocupes tantos ifs puedes usar un switch, as?.

[gml]switch (vida)
{
  case 0:
  case 1:
  case 2:
    instance_destroy(); break;
}[/gml]
Puedes investigar en el manual.

Gracias a los dos.. brunoxzx, justamente en los eventos de key press estaba basada mi pregunta XD, gracias


if (condicion1) else (condicion2)

si (condicion1) sino (condicion2)

o sea SI la primer es verdadera  se ejecuta el codigo de la condicion1 SINO es la consicion2
La cosa es que,.... no tengo la menor idea.

http://matuxgames.blogspot.com/