Sí, el doble signo igual se usa para comparar, el signo sencillo para asignar. Ten en cuenta que En game maker:
if (subir_vida == 1) también se puede escribir if (subir_vida)
if (subir_vida == 0) también se puede escribir if (!subir_vida)
Sobre lo que mencionas de indicar cuándo es verdadera y cuando falsa
IF (subir vida)
{
el código que pongas aquí se ejecuta si subir_vida es 1 (verdadero)
}
ELSE
{
el código que pongas aquí se ejecuta cuando subir_vida es 0 (falso)
}
Cuando ocurre una colisión, el código se puede poner en cualquiera de los dos objetos involucrados en la colisión. Como yo lo haría sería:
EN CREATE del objeto jugador
subir_vida = 0
En EVENTO COLISIÓN del objeto con el que chocas (item, pared, etc)
obj_jugador.subir_vida = 1 <---- llamas a la variable del objeto jugador desde el objeto item
En STEP del objeto jugador
if (subir_vida)
{
salud += 5;
subir_vida = 0
}
El código de colisión y el de step puede ponerse en cualquiera de los dos objetos, pero tienes que se cuidadoso al llamar las variables, saber cuáles son locales y cuales no. Por ejemplo, si quieres subir la vida del jugador desde el objeto item
en STEP del objeto item
if (obj_jugador.subir_vida)
{
obj_jugador.salud += 5;
obj_jugador.subir_vida = 0
}
if (subir_vida == 1) también se puede escribir if (subir_vida)
if (subir_vida == 0) también se puede escribir if (!subir_vida)
Sobre lo que mencionas de indicar cuándo es verdadera y cuando falsa
IF (subir vida)
{
el código que pongas aquí se ejecuta si subir_vida es 1 (verdadero)
}
ELSE
{
el código que pongas aquí se ejecuta cuando subir_vida es 0 (falso)
}
Cuando ocurre una colisión, el código se puede poner en cualquiera de los dos objetos involucrados en la colisión. Como yo lo haría sería:
EN CREATE del objeto jugador
subir_vida = 0
En EVENTO COLISIÓN del objeto con el que chocas (item, pared, etc)
obj_jugador.subir_vida = 1 <---- llamas a la variable del objeto jugador desde el objeto item
En STEP del objeto jugador
if (subir_vida)
{
salud += 5;
subir_vida = 0
}
El código de colisión y el de step puede ponerse en cualquiera de los dos objetos, pero tienes que se cuidadoso al llamar las variables, saber cuáles son locales y cuales no. Por ejemplo, si quieres subir la vida del jugador desde el objeto item
en STEP del objeto item
if (obj_jugador.subir_vida)
{
obj_jugador.salud += 5;
obj_jugador.subir_vida = 0
}