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.

Temas - matiascarpello

61
Hola gente, tengo un juego de plataformas y quiero que cuando un personaje colisione con la escalera se pueda subir y bajar por ella.
Para tal fin, realice este código que va en el evento steep.

if place_meeting(x,y+1,o_escalera) and keyboard_key_press(vk_up)
{
grav = 0;
vsp=0;
}
else
{
grav = 0.7;
}


Bien, lo que dice es que mientras el personaje colisiona con la escalera y se preciona la tecla vk_up, la gravedad es igual a 0 y la velocidad vsp=0.

El problema es que no funciona, es decir, mientras estoy en el aire y preciono la tecla UP el personaje no se queda quieto.

Porque mientras estoy en el aire, pues, quedaría mal que solo con colicionar con la escalera la gravedad sea 0, porque si uno salta y atraviesa la escalera se quedaría pegado.
62
Hola gente, llevo ya varias semanas y no logro poder hacer que mi personaje se cuelgue de una pendiente como en la imagen de abajo.



Veran, mi juego tiene un objeto obj_solid, con el cual se coliciona de forma vertical y horizontal, es decir, lo utilizo como suelo, pared y techo.

Para no perjudicar y producir algun fallo al colicionar con el objeto obj_solid, quiero crear un nuevo objeto y colocarlo en cada una de las esquinas de mi nivel, y si el personaje coliciona con ese borde de la esquina, se quede colgado como en la imagen de arriba.

Vi unos cuantos ejemplos pero todo se vasan en en un único objeto con el que se coliciona con el suelo, pared y colgarse y es frustante porque tengo que cambiar todo el código que me costo mucho adaptarlo para tener una colicion perfecta.

Este vez les dejo mi código del personaje para que se den una idea.

Event create
///Initialize Variables
grav = 0.7;
hsp = 0;
hsp_carry = 0;
vsp = 0;
movespeed = 6;
wspeed=0
jumpspeed_normal = 15;
//jumpspeed_powerup = 10;

jumpspeed = jumpspeed_normal

key_down = 0;


Event steep
//Get the player's input


key_right = keyboard_check(vk_right)
key_left  = -keyboard_check(vk_left);
key_jump  = keyboard_check(vk_space);
key_down  = keyboard_check(vk_down);


//React to inputs
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;

if (place_meeting(x,y+1,obj_wall))
{
   if (key_jump) vsp = -jumpspeed;
}

var hsp_final = hsp + hsp_carry;
hsp_carry = 0;

//Horizontal Collision
if (place_meeting(x+hsp_final,y,obj_wall))
{
    while(!place_meeting(x+sign(hsp_final),y,obj_wall))
    {
        x += sign(hsp_final);
    }
    hsp_final = 0;
    hsp = 0;
}
x += hsp_final;

//Vertical Collision
if (place_meeting(x,y+vsp,obj_wall))
{
    while(!place_meeting(x,y+sign(vsp),obj_wall))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;
63
Hola gente, quiero hacerles una pequeña consulta.

Tengo un juego de plataformas en donde tiene animaciones al caminar si va hacia la derecha o izquierda.

Ahora le añadí una animación para cuando salte, pero necesito que esa animación tenga un xscale-1 para que cuando esta mirando hacia la izquierda la animación del salto mira a la izquierda. Y lo mismo para cuando mira a la derecha.

Por eso quiero saber si hay forma de comprobar a donde mira el personaje.
64
Hola comunidad, tengo una duda y quiero saber como implementarla. Quiero que cuando mi personaje colisione con el borde de una saliente se quede colgado como en la imagen de abajo, y luego al tocar la flecha subir se suba a la plataforma.

Les dejo como ejemplo una imagen del juego Spelunker en donde justamente saque la idea. Con esta imagen seguro me entenderán.



Encontré un ejemplo muy bueno. En dicho ejemplo, tanto el personaje como los bloques tienen un tamaño de 32x32.

Como en mi juego los bloques tienen 96x96 y el jugador 90x90 me puse a adaptar los tamaños y al hacer eso no funciona para nada las coliciones.

Obviamente que al modificar el tamaño de los sprite en centro de gravedad de cada sprite de desconfigura, pero lo modifique proporcional al original y nada.

Les dejo el link del ejemplo para ver si pueden saber el problema.

http://www.mediafire.com/download/r9oxi93ki9adjdd/WallGrab.gmk
65
Hola gente, estoy haciendo un juego de plataformas y hay algo que me molesta para lo que es mi juego.

Seguramente sabrán que en la mayoría de juegos de plataformas, cuando se salta, es posible seguir moviendo al personaje mientras esta en el aire. Para lo que es mi juego, necesito que eso no ocurra, es decir, que el personaje salte, pero mientras esta en el aire al presionar la tecla left o right, no se mueva.

Trate utilizando en el evento steep

if vspeed <0
{
hspeed=0
}

Es decir, si la velocidad vertical speed es menor a cero, la velocidad hspeed será igual a cero, pero no me funciona.
66
Hola gente, yo de nuevo. EL otro día me puse a pensar que todos los juegos que hice fueron sobre un suelo recto.

Entonces me puse a buscar tutoriales en internet y encontre algunas cosas interesantes para poder caminar sobre cualquier tipo de suelo, el problema es que en todos los tutoriales el resultado queda como la primera imagen de abajo, y lo lógico sería el que personaje se incline dependiendo el angulo del suelo con el que esta colisionando.

En las siguientes imágenes entenderán a lo que me refiero.



¿Es posible hacer que el personaje se adapte al terreno? ¿Por que no se hasta que punto es limitado Gamemaker.
67
Preguntas y respuestas / Movimiento de vegetación
Noviembre 29, 2014, 10:55:57 PM
Hola comunidad. Estoy empezando con un proyecto que quise hacer hace bastante, un juego de plataformas 2D.

Mi inquietud por la que creo este tema es porque quisiera saber como poder hacer un efecto parecido en el movimiento de la vegetación al comenzar el video. Sobre todo el movimieto del árbol rosado que se ve en el video.

https://www.youtube.com/watch?v=gzVWiuupiPo

En cuanto a generar la pieza gráfica puedo hacerla igual, yo soy diseñador gráfico así que eso es todo un echo, lo que me intriga es la otra parte, la de programación.

No estoy pidiendo que me resuelvan el problema, solo que me orienten a como llevarlo mejor en gamemaker.
68
Hola comunidad, creo este tema porque no me quedo más remedio. He buscado por todas partes y no logro implementar el siguiente sistema:

Quiero que cuando un personaje supongamos colisione con una pared de la izquierda y si se tiene precionado el boton left, se  deslice suavemente hacia abajo y si se preciona el boton de salto mientras se sigue deslizando que salte hacia el lado derecho como se ve en la imagen de abajo:



A esto se lo conoce como wall jump, es decir salto en la pared. He tratado de hacer mi código pero no da resultado. También he bajado muchos engines que hay en internet pero no pude probar ninguno, puesto que estaban en formato gm6, gm7, gm8, gmk y como yo tengo Gamemak Studio 1.4 me da error puesto que hay muchos códigos que quedaron obsoletos de esas versiónes viejas de Gamemaker.

Lo que si puedo ir adelantandosle es el código de plataforma que tiene mi personaje

En el Evento create
///Iniciación de variables
grav = 0.2;
hsp = 0;
vsp = 0;
jumpspeed = 6;
movespeed = 2;


En en evento steep:
//Teclas asignadas al jugador
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);

//Acción de las teclas
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;

if (place_meeting(x,y+1,obj_piso))
{
    vsp = key_jump * -jumpspeed
}

//Colisión horizontal
if (place_meeting(x+hsp,y,obj_piso))
{
    while(!place_meeting(x+sign(hsp),y,obj_piso))
    {
        x += sign(hsp);
    }
    hsp = 0; //
   
}
x += hsp;

//Colisión vertical
if (place_meeting(x,y+vsp,obj_piso))
{
    while(!place_meeting(x,y+sign(vsp),obj_piso))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;


¿Alguna idea de como implementar este sistema?
69
Hola gente, este tema tiene que ver más que nada sobre una pregunta legal sobre los derechos de autor a la hora de crear un sprite.

Yo quiero hacer un juego para publicarlo en la tienda de Apple y Google Play.

El tema es que estoy haciendo unos sprite inspirados en Goku pequeño, o Goku kid, es más o menos como la imagen que les dejo abajo.



Aclaro que ese sprite no lo hice yo, lo pongo a modo de ejemplo. Mi punto es saber si sería legal utilizar un sprite que se parece bastante a un personaje, en mi caso goku pequeño, porque lo cierto es que el sprite lo hice 100% yo, pero también esta el tema de que se parece a un personaje de una serie que esta protegido por derecho de autor y no quisiera tener algún tipo de inconvenientes.
70
Mercado / Consulta sobre copyright en los sprite
Noviembre 01, 2014, 12:37:44 AM
Hola gente, este tema tiene que ver más que nada sobre una pregunta legal sobre los derechos de autor a la hora de crear un sprite.

Yo quiero hacer un juego para publicarlo en la tienda de Apple y Google Play.

El tema es que estoy haciendo unos sprite inspirados en Goku pequeño, o Goku kid, es más o menos como la imagen que les dejo abajo.



Aclaro que ese sprite no lo hice yo, lo pongo a modo de ejemplo. Mi punto es saber si sería legal utilizar un sprite que se parece bastante a un personaje, en mi caso goku pequeño, porque lo cierto es que el sprite lo hice 100% yo, pero también esta el tema de que se parece a un personaje de una serie que esta protegido por derecho de autor y no quisiera tener algún tipo de inconvenientes.
71
Hola gente, estoy un poco trabado ahora en mi juego porque no se como establecer un color de fondo que sea al azar.

Es decir, no quiero un background al azar, sinó un simple color de fondo al azar.

Entonces, en mi juego, cuando le disparo al enemigo, el color de fondo cambia al azar.
72
Preguntas y respuestas / Ayuda con View
Agosto 07, 2014, 04:14:27 PM
Hola gente, tengo un juego similar a Flappy Bird, y tengo un problema con la view.

Se los explico, en mi caso el personaje es el que se mueve y no el escenario a diferencia de la mayoría de engines. ¿Porque no hacerlo al reves? Pues porque mi juego será por niveles y no un modo infinito como el Flappy Bird Original.

Ahora que ya aclare eso, paso a explicarles con la imagen que dejo abajo.



En la imagen Nº1 pueden ver una idea del juego corriendo, la room es mucho mas larga pero solo dejo lo que se ve en la view.

La view funciona perfectamente, es decir, el personaje siempre va a estar en la misma posición ajustada a la view como ven en la imagen Nº1.

Mi dua es la siguiente. En la imagen 2 pueden ver que el personaje está a punto de colicionar con ese obstaculo.

Lo que hace ese obstaculo es que una vez que el pajaro colicione con el, le aplica un reverse horizontal y por lo tanto el pájaro envés de moverse hacia la derecha lo hará hacia la izquierda.

Y es ahí donde esta mi problema que no puedo resolver. Como se puede ver en la imagen Nº3, al ir hacia la izquierda no ve ve nada en pantalla puesto que el personaje estaba configurado para una view hacia la derecha.

Entonces ¿como intente solucionarlo?

Intente aplicar un if en el evento steep del personaje

if hspeed <0
{
view_xview[0]=x-100
}
else
{
view_xview[0]=x-250
}


Simplemente le indicaba que si la velocidad horizontal es mayor a 0, que quede con la configuración de la view como la tiene por defecto, y si la velocidad horizontal es menor a 0 modificar los valores de la view.

El código funciona pero el problema es que cuando se produce el cambio de view es muy brusco, de golpe se acomoda y no termina siendo la solución.  Realmente queda muy feo. El proceso tiene que ser halgo suave.

¿Algúna idea de como lo puedo solucionar?
73
Preguntas y respuestas / ¿Cómo podría hacer esto?
Agosto 04, 2014, 10:33:52 PM
Hola gente, estoy haciendo un juego y quisiera implementar un sistema para que uno valla biendo cuanto le queda hasta llegar a la meta.

Les dejo una imagen para que entiendan mejor a lo que me refiero. En mi caso no estoy haciendo un juego como supermario, pero edite la imagen a modo de ejemplo para que entiendan lo que busco.



Creo que para hacer esto habría que hacer halgo que mida la distancia del jugador hasta la meta y mientras mas se aserque a la meta se va moviendo la carita del personaje.

¿Es posible hacer esto en gamemaker?

74
Preguntas y respuestas / Problema con sonido
Agosto 04, 2014, 01:10:41 AM
Hola gente, tengo un problema con reproducir un sonido por código.

Tengo el siguiente código en el evento mouse left pressed

if global.coin<800
}
sound_play(sonido_fondo)
}


Mi problema es que cuando hago click el sonido no se reproduce, y en teoría lo tendría que hacer porque la variable global.coin que tengo es menor a 800.
La variable global.coin esta perfectamente configurada, así que el problema no radica de ahí.
¿Que puedo estar haciendo mal?
75
Preguntas y respuestas / Ayuda con un problema
Julio 26, 2014, 09:05:28 PM
Hola gente, quiero implementar lo siguiente en un juego y no se como hacerlo.

Tengo un objeto llamado obj_boton_bloqueado.

Quiero que cuando se haga click sobre ese boton desaparezca y me cree un objeto llamado obj_boton_desbloqueado.

Esto lo se hacer, el problema es que quiero que una vez que se haya hecho click sobre el obj_boton_desbloqueado ya no aparezca nunca más, es decir se tiene que guardar en un archivo ini para que directamente aparezca el obj_boton_desbloqueado.
Pero no se como hacerlo. Ya he leído tutoriales en español, ingles y no logro entenderlo.

¿Me podrían ayudar?

76
Preguntas y respuestas / Ayuda con condicional IF
Julio 22, 2014, 03:46:12 PM
Hola gente, tengo un problema con un código que estoy haciendo. Primero les muestro el codigo:

Tengo un Joystick virtual que es como una palanca, con eso muevo libremente al personaje por la habitación.

El problema es que hay una room en la que necesito que el joystick virtual no esté pero si el personaje. Y ahí es donde se da el problema porque al no estar en la room el objeto joystick me da error, ya que en el evento steep del personaje hay parte del código del joystick y por ese motivo me da error al compilar.

Este es el código del evento steep del que tiene el personaje por si lo quieren ver.

direction = (direction+(sin(degtorad(obj_controller.dStick-image_angle))*12));
speed = obj_controller.lStick / 10; //velocidad de movimiento personaje

image_angle = direction;

x = max(0, min(x, room_width));
y = max(0, min(y, room_height));


Entonces se me ocurrió que capaz que con un condicional if se pueda anular el steep, como por ejemplo:

si objecto joystick existe
{
direction = (direction+(sin(degtorad(obj_controller.dStick-image_angle))*12));
speed = obj_controller.lStick / 10; //velocidad de movimiento personaje

image_angle = direction;

x = max(0, min(x, room_width));
y = max(0, min(y, room_height));
}

si nó
{
no hacer nada o anular steep
}

Como verán, hago lo que puedo con el condicional if, el tema es que no se que aplicar en el else, es decir, como anular el steep o todo el código en caso de que no exista en la room el objeto joystick.

¿Alguna ayuda?
77
Preguntas y respuestas / Ayuda con guardar ini
Julio 21, 2014, 05:43:55 PM
Hola gente, tengo un juego de varios niveles. A lo largo del juego hay monedas que al recogerlas el jugador suma +1 a la variable global.coin.  El problema es que cuando paso de nivel o cierro el juego la variable global.coin vuelve a cero, es decir, se pierde la información.

Seguí un tutorial de en el que decía que hay que usar archivos ini y así lo hice, he creado un objeto obj_guardarcargar en la primera room y le he puesto persistent.

En el evento game start e puesto
ini_open("coins.ini");
global.coin = ini_read_real('global','coins',0)
ini_close();


Y en el evento Game End e puesto
ini_open("coins.ini");
ini_write_real('global','coins',global.coin)
ini_close();


Pero sigue sin funcionar, nunca me guarda la variable global_coin

¿Qué puedo estar haciendo mal?
78
Hola gente, tengo un juego de aventura en el que el personaje va recolectando dinero a lo largo del juego.
El dinero recolectado se va acumulando en la variable global.coin.  El problema es que cada vez que cierro se borra la variable.

Me he fijado de ejemplos de como grabar la variable utilizando archivos ini pero todas son referidas a que se guarde la mejor puntuación, y lo mio es algo distinto, puesto que aquí no se compara si una puntuación es mejor, sino de simplemente guardar los datos de la variable.

¿Cómo podría hacerlo?
79
Hola gente, tengo un juego con un sistema de desbloqueo de nivel.

Cuando el personaje coliciona con la meta se ejecuta este código:

if(room = level_3){ini_open("save.ini"); ini_write_real("niveles","nivel4",1); ini_close();}

Y el el botón que llava al nivel antes bloqueado tengo el siguiente código:

ini_open("save.ini");
n = ini_read_real("niveles","nivel2",0);
ini_close();

if(n = 0)
{
    bloqueado = 1;
    sprite_index = Bloqueado;
}
else
{
    bloqueado = 0;
    sprite_index = spr_2;
}


El problema es que a partir del nivel 6 quiero añadir un requisito más para que se cumpla el desbloqueo del nivel:

Quiero que si global.coin=0 es mayor o igual a tres recién se aplique el código que les deje ahí arriba al principio.

O sea resumiendolo si global.coin=0 es mayor o igual a tres se haga esto:

if(room = level_3){ini_open("save.ini"); ini_write_real("niveles","nivel4",1); ini_close();}

Caso contrario que no se haga nada.

¿Como podría implementar ese condicional?
80
Hola gente, hay una parte en mi juego que necesito que se borre un background. Entonces lo que hice fue en el momento determinado usar el código background_delete(fondo1).

El código funciona perfectamente, el problema es que al reiniciarse el nivel, directamente ya comienza sin el backgroun, y yo pensé que lo lógico sería que si se reinicia la room vuelva a generarse el background.

¿Estoy cometiendo un error al utilizar ese código? ¿Como podría solucionarlo?

Edit: Ya lo solucioné con un simple background_visible [0] = false;