Hola GAMEMAKE@S !!
Me gustaría saber como se puede conseguir que desde un obj_contador compruebe que obj_player ha colisionado con obj_punto.
Todo esto para guardar el numero total de puntos que recoge en el nivel que está jugando, de forma que en el siguiente nivel el contador se reinicialice a 0.
¿Alguna idea?
No es muy común que un objeto verifique una colisión "ajena". Se puede hacer, pero se requiere más código y para lo que quieres hacer, no es neecsario. La gran mayoria de las veces es más fácil y conveniente usar una variable
Suponiendo que cada colisión con un objeto punto sólo cuenta una vez (la primera vez que se hace colisión con cada uno de ellos)
CREATE obj_contador
[gml]
puntos = 0[/gml]
CREATE obj_punto
[gml]activo = true[/gml]
EVENTO COLISION obj_punto vs obj_player
[gml]
if (activo)
{
obj_contador.puntos += 1
activo = false
}
[/gml]
ROOM_START() del obj_contador
[gml]
puntos = 0
[/gml]
En lugar de una variable activo se podría optar por destruír la instancia del objeto puntos después de haber actualizado el contador, pero no sé si esto se pueda hacer en tu juego o quieras conservar las instancias del objeto puntos
OK. Perfecto. Gracias !! ;D
Cita de: penumbra en Agosto 17, 2015, 07:57:23 PM
No es muy común que un objeto verifique una colisión "ajena". Se puede hacer, pero se requiere más código y para lo que quieres hacer, no es neecsario. La gran mayoria de las veces es más fácil y conveniente usar una variable
Suponiendo que cada colisión con un objeto punto sólo cuenta una vez (la primera vez que se hace colisión con cada uno de ellos)
CREATE obj_contador
[gml]
puntos = 0[/gml]
CREATE obj_punto
[gml]activo = true[/gml]
EVENTO COLISION obj_punto vs obj_player
[gml]
if (activo)
{
obj_contador.puntos += 1
activo = false
}
[/gml]
ROOM_START() del obj_contador
[gml]
puntos = 0
[/gml]
En lugar de una variable activo se podría optar por destruír la instancia del objeto puntos después de haber actualizado el contador, pero no sé si esto se pueda hacer en tu juego o quieras conservar las instancias del objeto puntos
Tengo una duda de tu código, penumbra: ¿por qué inicializas la variable
puntos en el evento
create y también en el evento
room start del objeto obj_contador?
Lo que pasa fue que olvidé que al siguiente nivel se tenía que limpiar la variable, entonces agregué el código de ROOM START después y no borré el código de CREATE.