Hola makeros tiempo sin postear bueno estoy haciendo un juego de plataformas en cual el personaje principal , pueda coger tankes , naves etc , y despues controlar dichos objectos una vez colisona con ellos , algo parecido a mario y yoshi .
He mirado en la buesqueda pero no he encontado informción concreta a dicho tema , alguien podría ayudarme ... Gracias de antemano.
Pos, para mí sería tan sencillo como que el objeto que hace de vehículo tenga una variable booleana, es decir que tome o true o false, dependiendo de si el jugador se sube o no.
Y claro, otra variable, quiza global, que indique si el personaje está conduciendo el vehiculo, para asi no procesar el movimiento, ni las colisiones, hacerlo invisible, etc.
Como dice black_cat, usas variables y bueno cuando acabe la animación cuando entra a la nave, eliminas el objeto player o desactivas por ejemplo y ya con el tanque le pones un if de que si se vuelve true (ósea de que el personaje ya entró) en draw dibuje al player como si estuviera dentro, ya cuando salga , se vuelve en false y con otro if borras el draw y listo.
Perdonen si está algo mal, es que son casi las 3 am y no me da para pensar bien x,d SOLO es para que se de una idea, con ese ejemplo te puedes guiar para hacer los otros
Hare un ejemplo fast de código xd, por ejemplo:
[gml]////OBJ_TANQUE
global.tanque = false; /*puede ser "global.tanque", pero si son muchos tanques a la vez en pantalla lo mejor seria sin usar global porque si no todos los tanques o aviones se ponen como con player dibujado todos al final jaja*/
///esa es una variable para guardar el dato.
///_------------------------------
/// Luego step player
if place_meeting (x,y+1,tapa_tanque) + keyboard_check (vk_down) //ejemplo si esta arriba del tanque mas la tecla que hará ese cambio
{
///si el player esta arriba de la tapa_tanque (ese seria un ejemplo de otro objeto extra por si usas tanque gigante, pero si es directo, pon el objeto tanque nomás)
///luego, puede ser un...
instance_change (obj_player_entrando_tanque,0)
global.tanque = true;
/// si no puede ser un...
instance_create (x,y,obj_player_entrando_tanque)
global.tanque = true;
instance_destroy ();
/// O si no usas nada de eso, impleméntalo en tu maquina de estados, es mejor tener una maquina de estados
/// y le añades la variable true y después desactivas el player que esta afuera del tanque o lo eliminas o nose XD
//---------------------------
///OBJ_TANQUE (Evento STEP): Estableces un if de que si no hay una variable true como la del inicio, no se va a mover o si se va a mover.
if (global.tanque==true)
{
///tus teclas de movimiento o gamepad se activen
}
else // si no nel xd
exit;
///_-----------------------
///Evento draw del objeto tanque:
if (global.tanque=true)
{
/// le puedes poner mas if con varibles por si quiere ponerle si voltea a la izquierda o la derecha, lo que digo es un ejemplo
draw_sprite(player,-1,x,y);
}
[/gml].
Hola muchas gracias por comentar a ambos si , tenía pensado poner esas variables ejem : manejar_tnk = false ; y luego ir comprabando cuando colisione con los tanques , y naves ... if place_meeting ( x,y, obj_tanke) manejar_tnk = true . Cuando pueda compruebo el código y ya comento cualquier duda , gracias a los dos.
Hola amigos ya pude hacerlo , siguiendo el segundo método y creando algunas nuevas variables , colisiono con el tanke al saltar y lo " coge" . Muchas gracias
Cita de: Neodreamer en Julio 14, 2021, 06:47:06 PM
Hola amigos ya pude hacerlo , siguiendo el segundo método y creando algunas nuevas variables , colisiono con el tanke al saltar y lo " coge" . Muchas gracias
me alegro que haya podido amigo, mucha suerte en su proyecto espero pueda acabarlo :)