Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - n0k

16
Después de mucho investigar y ver que no llegaba a algo muy claro, he visto en youtube que hay un vídeo que es clave, y es fácil de entender. Así que allí está lo necesario, no hace falta que reinventemos la rueda. XD
17
Saludos comunidad, quiero pedir perdón de antemano por el texto largo, pero creo que esto es interesante, en este caso uso GM2, pero el GM vale también para ello supongo. Es un juego plataformas a lo que se hace referencia aquí, pero valdría para cualquier tipo de juego.

Se puede obviar todo el texto hasta el punto 2 que es el importante ciertamente.

Desde hace tiempo mi cabeza quiere cambiar la forma de hacer las colisiones en los juegos, porque es diferente chocar contra un tile, que contra un objeto, ya que podemos chocar con un objeto y colocar el tile encima para verlo de una manera determinada y esconder el objeto donde en realidad se posa o choca el personaje. Creo que muchos usamos este sistema y no es mal sistema. Lo que pienso es lo siguiente, ante todo perdón por el texto largo:

1- Siempre es más sencillo y creo que es básico usar el place_meeting, o el place_free, para cualquier juego. Cada desarrollador tiene sus manías, pero esto es un "must know" siempre, y si quieres chocar con las cosas, hacer acciones y demás se usa siempre.

Pero aquí viene el punto 2 y lo que me está matando la vida(no literalmente).

2- Desde hace una semana he estado mirando la opción de chocar contra unos tiles con la forma del suelo, rampas, digamos un tileset básico de choque, el cual será el que no se vea, de forma que no se creen 100 objetos para caminar por una habitación y chocarse y usar tiles para el choque y tiles que se verán. Después obviamente, los objetos de choque siguen siendo los mismos, no se quitan solo se crean menos objetos con los que chocar.

Aquí empieza el desarrollo de la idea:

tenemos unos tiles con el nombre "collision" por ejemplo, con las formas de las colisiones, ya sabéis por ejemplo cubos.

Obtenemos el id así: tilecolission = layer_get_id("collision")

El problema lo tengo aquí: no sabría bien como hacer para que se choque, tenga gravedad y no afecta al salto y demás, ya que si intentas saltar pero estás tocando el tile no saltarías, porque no estás en un place_meeting y no puedes tomar como referencia un place_free, sería una locura... estoy un poco ofuscado, porque esto me quita el sueño sin coña  :-[.

Con el place_meeting es sencillo que salte y demás porque se encuentra con un objeto y toma toda su mask para ello, y no tienes que tener en cuenta un tile para decirle salta, pero ahora estás en el suelo, pero ahora no... pero con un tile, mh... es otra movida...

¿Alguien ha conseguido que esto funcione o se lo ha planteado si quiera?

A ver si entre todos podemos sacar un código limpio para poder usarlo en nuestros proyectos.

Un abrazo gente.
18
Preguntas y respuestas / Re:Velocidad en el aire
Marzo 09, 2015, 03:50:08 PM
Ahhh, ok ya he entendido, es que no estoy utilizando aun los sprites o imágenes, pero en realidad eso da igual, pero entiendo. Estuve varios días pensándolo, creo que se que pasa ahí. Un saludete. Gracias por la respuesta
19
Juegos completos / Re:[Android] Running Guy
Marzo 09, 2015, 01:17:01 PM
Solo con ver las imágenes ya me gusta. Descargando y probando. A uno se le alegra el cuerpo cuando ve el trabajo bien hecho  :D FELICIDADES MAESTRO
20
Preguntas y respuestas / Re:Velocidad en el aire
Marzo 05, 2015, 04:19:28 AM
Perdona, la verdad es que así se verá mas claro.

////////////////////GRAVEDAD Y FRICCION//////////////////
if (!place_meeting(x, y+1, obj_suelo) == true){ //El objeto no se encuentra en el suelo
    vsp+= grav; //El objeto esta cayendo
    if (lkey == false) && (rkey == false){
        hsp = max(0, abs(hsp) - air_frict)*sign(hsp);
    }
    //Si el objeto no se esta moviendo, a continuacion, retardaremos el objeto con el AIR_FRICTION dado hasta que se detenga(0)
}

if (!place_meeting(x, y+1, obj_suelo) == false){ //El objeto esta en el suelo
    jsp = 0; //El objeto ha dejado de saltar.
    if (lkey == false) && (rkey == false){
        hsp = max(0, abs(hsp) - gnd_frict)*sign(hsp);
    }
    //Si el objeto no se esta moviendose, a continuacion, retardar el objeto con el GND_FRICTION dado hasta que se haya detenido (0)
}

Esto siguiente ocurre en el aire, quiza esta lioso, o no es la manera correcta de hacerlo, y esto solo debería ser para cuando estoy tocando suelo no?

if (!place_meeting(x, y + 1, obj_suelo)){
    if(rkey){
        hsp += ac_spd;
        if (hsp >= max_spd){
            hsp = max_spd;
        }
    }
   
    if(lkey){
        hsp += -ac_spd;
        if(hsp <= -max_spd){
            hsp = -max_spd;
        }
    }
}
21
Preguntas y respuestas / Velocidad en el aire
Marzo 05, 2015, 04:08:25 AM
Buenas, tengo una duda que me ha surgido y que no consigo aclarar en mi cabeza. Salto a un lado, a una velocidad, y en el mismo aire pongamos en el punto máximo, si pulso el lado contrario, tiene tanta velocidad de vuelta que es capaz de volver a donde inicio el salto antes de caer.

Mi idea es por lógica de juego, poder volver un poco hacia atras. Pero no de nuevo al inicio del salto.

Tengo rozamiento que me frena en el aire y gravedad, pero si pulso el lado contrario, no quiero volver con tanta velocidad.
22
Buenos días desde Madrid. Creo que el problema es que coincide la posición de movmimiento con el bloque, con la posición de movimiento de tu personaje. Es decir, para asegurarte de que no es por eso, intenta poner un numero más bajo en la colisión, y si queda con un espacio entre tu personaje y el bloque, lo podrás mover aunque no golpee del todo, y sabrás que es por eso. Hay que ir descartando de lo más sencillo, a lo más complejo.
Ya nos comentarás como salió el experimento.  :D
23
Juegos completos / Re:Super create box multiplayer
Febrero 26, 2015, 11:05:54 PM
 XD vaya tela, más bobo no puedo ser XD
24
¿Pero si eliges el mismo objeto y quieres que la pared sea diferente al suelo? creo que no he entendido a lo que te refieres  ???
25
Juegos completos / Re:[Android]Pixel Ninja Temple
Febrero 25, 2015, 05:06:25 PM
Muy interesante, :) bajando y probando. 8)
26
Juegos completos / Re:Super create box multiplayer
Febrero 25, 2015, 04:53:58 PM
Podrias resubirlo para descargarlo y probarlo? muchas gracias, un saludo.
27
Era una tontería que nos pasa a los novatos, quizá no sea la opción más acorde con el problema, lo que hago es lo siguiente:

Al pulsar la tecla derecha y me encuentro con un muro le pongo la gravedad y velocidad vertical a 0, de forma que si mantengo esa tecla y hay muro se quedara "pegado".

Lo que no se si tengo bien aunque funciona es lo siguiente:
-Para subir y bajar le doy a la posición "Y", un menor o igual al subir con el tecla que pulso, al bajar un mayor o igual. ¿Hago bien en variar la posición de mi objeto para moverlo, o debería darle una velocidad vertical?
28
Gracias por tu respuesta :)
29
Preguntas y respuestas / Agarrarse a la pared y trepar
Febrero 24, 2015, 02:36:52 PM
Saludos, soy nuevo en game maker, y he conseguido montones de avances con mucho esfuerzo, pero hay algo que no acabo de conseguir. Se trata de conseguir que el personaje se quede pegado a una pared cuando pulse la tecla en la dirección contra esa pared y subir y bajar. Solo he conseguido subir y bajar, pero le sigue afectando digamos la gravedad, y por mucho que cambio la dirección de la gravedad hacia el lado de la pared, no lo consigo. También he intentado quitar la gravedad, pero así se queda flotando. Alguien puede ayudarme? un saludo a todos! :)

SOLUCIONADO: Ya lo he solucionado, era una tontería, jajajajajaja. Saludos a todos. Si alguien quiere saber como lo escribo y explico sin problemas, que nadie supo responder :)