Hola, soy nuevo en GM y en el foro, leí dos preguntas que formularon otros compañeros, pero la verdad no es exactamente lo que busco.
Les cuento que logre en esta semana que es la primera en el mundo de GM.
Crear un objeto que al colisionar con mi personaje el objeto desaparece y el player recibe una modificación el la variable velocidad asignada a speed, es lo único que se de variables al momento.
Estoy creando un juego en el cual necesito que un objeto por llamarle "Bonus" al colisionar con objeto "Player" el bonus se destruye y el player se mueve el doble de rápido. En el juego hay una sola room, por lo cual el personaje solo se mueve ahí dentro, y a lo que yo aspiro es:
Que en un lugar aleatorio (pero no encima de otro, o sea en los pasillos) se cree un bonus. Como ese bonus me da velocidad y dura 6 segundos de efecto sobre el player, me interesa que el bonus aparezca cada 26 segundos sobre un lugar aleatorio en el room como antes mencioné, y que si no es colisionado con el personaje en 5 segundos, sea destruido y se vuelvan a contar 26 segundos o 20 da igual luego lo editaré.
Se que esto posiblemente lleve código y yo ese sector no lo utilicé, asi que si me quieren hacer leer sobre las herramientas que utilizarán mejor, porque la verdad no quiero crear un juego en base a lo que otros crearon y yo solo copié.
Mientras mas explicado que hace cada palabra del código (si alguien puede hacerlo, supongo que si) mejor.
Bueno pensé un poco, y una alternativa para alguien que no sabe código es esta.
Creo mas de un objeto, a cada uno lo configuro con dos alarmas, uno para que sea creado y otro para que sea destruido, lo pongo para que sea creado en lugares donde yo tengo pensado que quedarían bien, por ahora números fijos, cuando después aprenda, usaré variables. Aun no se como crear un loop para que si creo 4 objetos, estos se destruyan y creen continuamente según las alarmas, porque solo me hacen caso 1 vez, o sea se crean esperan el tiempo se destruye y luego????
SI me pueden ayudar en esto ultimo les agradezco
Te podrías crear otra alarma que corra cada X tiempo (el que tu definas) y que lo que haría es chequear si tienes 4 de tus objetos en pantalla.
En caso de tenerlos no harías nada y en caso de no tenerlos pues los crearías...
Lo de comprobar el número de instancias de tu objeto creo que se hace con
Syntax:
instance_number( obj );
Saludos
Lo que pides es sencillo, pero ahorita ando algo escaso de tiempo. En estos casos es útil usar un objeto controlador, este objeto (invisible y generalmente persistente) se encargaría de crear los objetos bonus.
Para posicionar los objetos bonus en un lugar vacío, hay que usar la función place_empty() o place_free(). Pero ojo, estas funciones se basan en la máscara de colisión, que a su ve está definida (generalmente) por el sprite del objeto. El objeto bonus no se puede crear a si mismo, esto es lógico, por lo que se usa el objeto controlador, pero el objeto controlador (en este caso) debe de tener asignado el mismo sprite que el objeto bonus, para que el objeto controlador pueda evaluar colisiones yencontrar (o no) un lugar vacío (pasillo)
Si el lugar está vacío, ahí se crearía un objeto bonus. El objeto bonus debe tener un evento de alarma (alarma iniciada en su evento CREATE) en el cual el objeto se destruye a los tantos segundos. No puedo especificar más que ando corto de tiempo. Saludos