Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

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


Temas - yottaomi

Páginas: 1
1
Juegos completos / LSN
« en: Octubre 24, 2019, 12:39:31 pm »


LSN


Otro


GM: Studio

Un paseo onírico.




https://yottaomi.itch.io




Lo hice para la jam. Pero lo publico tarde.

2
¿Cómo puedo obtener las coordenadas de un carácter específico dentro de una cadena?

Por ejemplo, en la cadena "esto es un mensaje", conocer las coordenadas de "m".

En concreto lo quiero saber para no tener que preocuparme de cuando hacer un salto de línea.
Por ejemplo, si la cadena es mayor que el ancho de un cuadro de texto, que automáticamente haga el salto de línea.


Y a colación de esto, ¿se puede saber si una palabra completa va a ocupar más espacio que el ancho del hipotético cuadro de texto?
Es decir, que no haga el salto de línea en medio de una palabra, sino justo antes.

3
Preguntas y respuestas / El panel táctil del portatil reinicia el juego
« en: Octubre 05, 2019, 02:18:32 am »
Lo del título.
Al utilizar el panel táctil del portatil sobre la pantalla del juego, como cuando se aumenta el zoom de una página web,  el juego se reinicia.

No lo he configurado para que funcione así. ¿Sabéis cual es el motivo por el que ocurre?

4
Preguntas y respuestas / Game Maker MMO
« en: Junio 27, 2019, 12:55:34 pm »
¿Es posible hacer con Game Maker un juego tipo MMO, estilo Pokémmo o Habbo Hotel?

Es decir, Crear un sitio Web  desde el que puedan jugar numerosas personas al mismo tiempo e interactuar entre ellas, utilizando Game Maker como motor.

5
General / [Solucionado]Vistas en Undertale
« en: Mayo 04, 2019, 03:04:40 pm »
¿Alguien conoce las dimensiones de las vistas de Undertale aPantalla Completa?

Sé que en el Overworld el View in Room es de  320 * 240 y el Port on Screen de 640 * 480, y en Batalla de 640 *480 en ambos campos.
Pero al expandir la pantalla,  se ve distorsionado. En el original creo que se comprimen los laterales.

Pues eso, ¿tengo que buscar un redimensionado por defecto que ofrezca el motor, o es una escala distinta?

6
Preguntas y respuestas / Colisión en Plataformas[Resuelto]
« en: Marzo 14, 2019, 01:18:18 pm »
Buenos días.

Tengo un problema con las colisiones y es que no consigo que:
a) El objeto jugador no reduzca su caída por estar junto al objeto que forma el suelo (por supuesto no estando encima suyo, solo a un lado).
b) El objeto jugador no quede solapado con el objeto suelo(obj_wall).

Puedo evitar una, pero no las dos a la vez:

Si utilizo este script, al chocar con el objeto (obj_wall) en el aire, el (obj_jugador) se desliza poco a poco hacia abajo, como si estuviera algo pegado, pero no solapado:
///Procesar movimiento
pm = place_meeting(x+hsp,y+vsp,obj_wall);
cl = collision_line(x,y,x+hsp,y+vsp,obj_wall,0,0);

if (pm or cl) {
    //Comprobando colision horizontal
    for(var i=0;i<abs(hsp);i++){
        if (place_meeting(x+sign(hsp),y,obj_wall)) then break;
        x += sign(hsp);
    }
    //Comprobando colisión vertical
    for(var i=0;i<abs(vsp);i++){
        if (place_meeting(x,y+sign(vsp),obj_wall)) then break;
        y += sign(vsp);
    }
    hsp = 0;
    vsp = 0;
}


Y si utilizo este, al colisionar con las esquinas del (obj_wall) se queda atrapado en estas:
// Horizontal collision
if (place_meeting(x+hsp,y,obj_wall))
{
    //sign 1/-1 positive or negative
    while(!place_meeting(x+sign(hsp),y,obj_wall))
    {
        x += sign(hsp);
    }
    hsp = 0;
}


// Vertical collision
if (place_meeting(x,y+vsp,obj_wall))
{
    //sign 1/-1 positive or negative
    while(!place_meeting(x,y+sign(vsp),obj_wall))
    {
        y += sign(vsp);
    }
    vsp = 0;
}

Si hace falta poner más código avisadme. Sólo he puesto el de las colisiones.

7
Preguntas y respuestas / Instancia aleatoria
« en: Mayo 25, 2018, 05:49:30 pm »
Perdón por preguntar tanto, pero he intentado buscar una solución a este problema y no encuentro una que funcione.
La pregunta es, como hago para que las instancias del objeto alien (en un juego estilo space invaders) disparen (de una en una) y lo haga una instancia aleatoria cada vez, a un tiempo relativamente aleatorio (que disparen de vez en cuando, pero cada poco tiempo, sin ser este una cantidad concreta).

8
Preguntas y respuestas / [SOLUCIONADO]Agujerear una instancia
« en: Mayo 19, 2018, 01:36:56 pm »
Mi duda surge de los bunkers del juego space invaders. Como en el original, ¿es posible con game maker agujerear de algún modo los bunkers pudiendo disparar a través de la grieta originada, sin destruir por completo la instancia y que las partes intactas sigan protegiendo?

9
Estoy intentando recrear el movimiento de las naves enemigas de space invaders, pero no consigo que bajen al mismo tiempo.

Hice varios intentos y aquí dejo uno de los más simples y menos engorrosos, con el el cual lo único que consigo es que cada fila vertical baje a un mismo tiempo, pero no todo el conjunto. Es decir, que bajan únicamente las naves que entran en contacto con el extremo de la pantalla, el resto espera a llegar.

(Este es código del objeto <parent>):

Create:
     move = 1;                //Cuando es 1 permite el movimiento lateral
     down_move = 0;      //Cuando es 1 permite el movimiento hacia abajo
     dir = 1;                   //Dirección horizontal: 1=derecha, 0=izquierda

Alarma[1]:
     move = 1;

Alarma[2]:
     down_move = 0;

Step:
//Movimiento Horizontal
     //Movimiento a la Derecha
if move = 1  and  dir = 1{        //Si move está accionado y la dirección es derecha
    move = 0;
    alarm[1] = 15;
    x += 12;
}

     //Movimiento a la Izquierda
if move = 1 and dir = 0{         //Si move está accionado y la dirección es izquierda
    move = 0;
    alarm[1] = 15;
    x -= 12;
}

     //Movimiento Vertical
if x >= room_width-32 and down_move = 0{    //Bajar al llegar al extremo derecho y cambiar dirección a izquierda
    dir = 0;
    down_move=1;
    alarm[2]=30;
    y += 32;
}

if x <= room_width-room_width+32 and down_move = 0{    //Bajar al llegar al extremo izquierdo y cambiar a dirección a derecha
    if dir = 0{dir=1;}
    down_move=1;
    alarm[2]=30;
    y += 32;
}

Espero no haberlo escrito de un modo innecesariamente complejo.

Por si no quedó claro la pregunta es, ¿qué hago para que bajen y se muevan lateralmente a un mismo tiempo?

10
Preguntas y respuestas / [SOLUCIONADO] Evento alarma reiniciado
« en: Abril 26, 2018, 03:00:15 pm »
Tengo un problema con el evento alarma. Y es que al colisionar un obj_bala con un objeto_enemigo, he escrito que la alarm[0] destruya tras un segundo el obj_enemigo, para que durante ese tiempo aparezca un sprite de la instancia del obj_enemigo destruida. Y funciona bien.
El problema surge cuando antes de que pase ese segundo impacta otra bala reiniciando la cuenta atrás de la alarma.

Pues eso, ¿dónde está el problema y cómo lo soluciono?


Aquí dejo el código:

obj_enemigo:
Alarma[0]:
     instance_destroy();

Colisión con obj_bala:
     alarm[0] = room_speed;
     with other instance_destroy();     //Destrucción del obj_bala

11
Preguntas y respuestas / [SOLUCIONADO] Objetos solapados
« en: Marzo 13, 2018, 02:13:52 pm »
Hola.

La pregunta es breve. Y es que al moverse el objeto principal hacia un objeto muro (obj_wall), ambos quedan solapados y no puedo mover el objeto principal a ninguno de los lados. ¿Cuál es el problema?

El código de movimiento es este:

key_right   =   keyboard_check(vk_numpad6);
key_left    =   keyboard_check(vk_numpad4);

//Movimiento horizontal
//Derecha
if key_right
{   
    if  hspeed < 8
    {
        hspeed += 0.5;
    }
}
if key_right = 0
{
    if hspeed > 0
    {
        hspeed -= 0.5;
    }
}

//Izquierda   
if key_left
{
    if hspeed > -8
    {
        hspeed -= 0.5;
    }
}
if key_left = 0
{
    if hspeed < 0
    {
        hspeed += 0.5
    }
}


Y aquí el de colisión horizontal:

wall        =   place_meeting(x+hspeed,y,obj_wall);

if wall
{
    while(!place_meeting(x,y+sign(vspeed),obj_wall))
    {
        y += sign(vspeed);
    }
    vspeed = 0;
}
Con este código el juego se cuelga.

E incluso traté de poner uno mucho más simple para el movimiento:

if key_right {hspeed = 8;}
if key_left   {hspeed = 8;}
if key_right and key_left = 0 {hspeed = 0;}

Y para la colisión:

if wall
{
hspeed=0;
}

Pero con este ocurre que aunque no se cuelga, el objeto se queda unido también a la pared.


Las mascaras del sprite principal y el del objeto pared están en automático y preciso.

El cambio de imagen o de sprite no tienen que ver con el problema ya que de momento deje en exclusiva el sprite en parado, el cual solo tiene una imagen.


Como ya pregunté, ¿donde está el problema?


12
Preguntas y respuestas / Saltos precisos
« en: Marzo 08, 2018, 01:50:41 pm »
Hola.

Estoy creando un plataforma de estilo Super Mario Bros. original, de hecho lo estoy intentando imitar al pié de la letra, pero con mi propio código, y tengo dudas con los saltos.

El caso es que no sé como crear un salto, por así decirlo coherente.
 
Por citar los puntos que veo más importantes, busco:
-Que el salto no se detenga hasta que deje de pulsar el botón de salto o hasta que llegue a una determinada altura, p.ej. el doble de la altura del personaje (que creo que es la máxima altura que alcanza Super Mario después de usar un champiñón).
-Y que al comienzo del salto tenga más velocidad vertical y que a medida que vaya avanzando, esta velocidad vaya disminuyendo, primero más sutilmente y de forma más brusca al final.

Básicamente busco las mismas mecánicas que en dicho juego.

De momento este es el código que he escrito para el salto:

//Movimiento vertical

key_jump    =   keyboard_check(vk_space);
ground        =   place_meeting(x,y+vspeed,obj_wall)

if key_jump
{
    if vspeed >= -12
    {
        vspeed -= 0.75;
    }
}
if key_jump = 0
{
    if vspeed <= 16
    {
        vspeed += 1;
    }
    if ground
    {
        vspeed = 0;
    }
}

Con esto el salto queda tosco, no tiene límite vertical positivo, y además el salto comienza lento y aumenta su velocidad con el tiempo, consiguiendo lo contrario de lo que quiero.


Por otro lado tengo un pequeño problema con los sprites. Y es que al cambiar el sprite de salto al sprite en el suelo, hay como cierto retraso desde que el objeto entra en contacto con el suelo, hasta que cambia al sprite adecuado.

Aquí dejo el código que utilicé para el cambio del sprite.

ground      =   place_meeting(x,y+vspeed,obj_wall)
if !ground
{
    sprite_index = spr_salto;   
}


Les agradecería una respuesta explicita a los puntos que he tratado con el tema del salto o que tal vez me recomienden algún tipo de script para la aceleración, o lo que os parezca más adecuado.

Gracias de antemano.

Páginas: 1