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.


Mensajes - Clamud

Páginas: 1 2 3 ... 18
1
Preguntas y respuestas / Re:Creacion de mapas procedural
« en: Septiembre 16, 2020, 09:40:16 pm »
El mapa generado de forma aleatoria se pude guardar en un array 2D o en una ds_grid.
En cada celda del array puedes guardar otro array, ds_list o ds_map que contenga el id de la room que se va a utilizar y otra información como objetos, enemigos de la room, posición de las puertas, etc.

Este es el método que he usado para entrar por el lado correcto de rooms conectadas:
Utilizo objetos "puerta". Cuando el personaje colisiona con la puerta se asignan 4 variables globales: el id de la siguiente room, la posición Y en la que va a aparecer, la posición X y la dirección a la que debe mirar. Cuando el personaje sale de la room, se carga la room indicada en la variable global y en el evento Create el personaje se mueve a la posición indicada por las otras variables globales.
Los siguientes usuarios dieron las gracias a este tema: Momoni

2
Preguntas y respuestas / Re:Forma correcta de hacer cinematicas
« en: Septiembre 16, 2020, 09:01:49 pm »
Es una buena forma. En GMS no existe un método perfecto,  otro método que he visto es reproducir un video, sin embargo, usar timelines y máquinas de estados me parece mejor porque no incrementa el peso del juego.

Me imagino que existen extensiones que permiten hacer animaciones con una interfaz más amigable, pero nunca he usado una extensión de ese tipo.
Los siguientes usuarios dieron las gracias a este tema: Softreal Games

3
Preguntas y respuestas / Re:Como dibujo sprites fuera de la room?
« en: Agosto 30, 2020, 05:56:36 pm »
Encontré dos posibles opciones.

La primera es una dll coloca la ventana de juego dentro de otra ventana (ver imagen adjunta). Pero no encontré una forma de hacer transparente el fondo de la ventana contenedora.
https://yellowafterlife.itch.io/window-freeze-fix

La segunda es tomar una captura de pantalla del escritorio y usarla como imagen de fondo.
https://yellowafterlife.itch.io/gamemaker-display-screenshot
Los siguientes usuarios dieron las gracias a este tema: Alemar5

4
Juegos completos / Re:Aférrate a mí
« en: Agosto 22, 2020, 05:01:18 am »
No entendí bien de qué se trata  :-[
Funciona bien, pero es muy corto. Solo hacen falta algunas indicaciones de las teclas que se deben utilizar, al principio no sabía cómo avanzar.
Los siguientes usuarios dieron las gracias a este tema: dixon

5
Preguntas y respuestas / Re:problema de la view
« en: Agosto 22, 2020, 04:50:13 am »
Si solo utilizas una view, puedes usar una variable que guarde el id del objeto que debe seguir. Cuando presionas el objeto, cambia el id y la view salta a una nueva posición.

Con 2 views, primero debes activarlas. Se puede hacer desde el editor de rooms o con los arrays view_visible y view_enabled. Ejemplo
view_visible[0] = true;
view_visible[1] = true;
view_enabled[0] = true;
view_enabled[1] = true;
Coloca las views en diferentes posiciones dentro de la ventana con view_xport y view_yport.
Establece el tamaño de las views con view_hport y view_wport.
Los siguientes usuarios dieron las gracias a este tema: 8 bits

6
Juegos completos / Re:Idea al azar
« en: Julio 25, 2020, 08:43:52 pm »
Es simple, pero puede ser de utilidad. Para medir su utilidad podemos hacer una mini jam   :P
Los siguientes usuarios dieron las gracias a este tema: dixon

7
General / Re:Game Maker Fronteras
« en: Junio 21, 2020, 12:19:52 am »
Las publicaciones de dixon siempre son muy divertidas.

Crear un lenguaje de programación único y fusión automática de juegos es imposible.
Pero sí hay cosas en las que han trabajado algunas personas, como entornos de programación fáciles de usar y que funcionen en diferentes dispositivos (normalmente están muy limitados) y generación automática de contenido (texturas, personajes, música, niveles). Pero nada funciona mejor que la experiencia y el trabajo duro.

Los videojuegos perderían importancia si existiera algo para crearlos de manera automática.
Los siguientes usuarios dieron las gracias a este tema: dixon

8
Preguntas y respuestas / Re:destruir instancias (solucionado)
« en: Junio 01, 2020, 05:39:40 am »
Que bueno que te ha servido.

other se utiliza dentro de un ciclo with para indicar la instancia que inició el ciclo.
// el objA tiene este código
foo = 0; // variable en instancia de objA

with (objB) // recorrer todas las instancias de objB
{
    foo = 123; // asignar variable a instancia de objB
    other.foo = 123; //asignar variable a instancia de objA
}

other también se utiliza en el evento colisión para obtener el id de la instancia con la que ocurrió la colisión.
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

9
Preguntas y respuestas / Re:destruir instancias (solucionado)
« en: Mayo 31, 2020, 05:09:10 pm »
El problema es que al usar with el código se ejecuta en todas las instancias.
Guarda el id de las rocas para leer sus variables directamente
// guardar ids
r1 = instance_create_layer(x + 0, y + 0, "Instances", roca1);
r2 = instance_create_layer(x + 0, y + 1150, "Instances", roca2);

hspeed = -1;
audio_play_sound(sonido_laser, 0, 0);
image_xscale =random_range(1,1.3)

// step
if(r1.image_index == 0 and r2.image_index == 0) {
    instance_destroy();
}
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

10
Preguntas y respuestas / Re:Varias A.I eligiendo diferentes objetivos
« en: Mayo 31, 2020, 03:05:51 pm »
Pon una variable en el objeto mesa que indique si está ocupada
ocupada = false;

El objeto cliente puede buscar una mesa vacía así
mesaObjetivo = noone; // al principio no hay objetivo

with (objMesa) {// revisar todas las mesas
    if (ocupada == false) {// si una mesa no está ocupada
        other.mesaObjetivo = id; // se convierte en objetivo
        ocupada = true; // ahora está ocupada
        break; // terminar de revisar las mesas
    }
}
Los siguientes usuarios dieron las gracias a este tema: cristopher2545

11
Preguntas y respuestas / Re:Enemigos que apunten
« en: Mayo 29, 2020, 04:33:27 am »
¿Cómo intentaste hacer la función de apuntar?

Usa la función point_direction para conocer el ángulo entre el objeto enemigo y el jugador
angulo = point_direction(x, y, obj_player.x, obj_player.y);
Ese ángulo lo puedes usar para la dirección de movimiento de las balas y para inclinar el sprite del arma.
Los siguientes usuarios dieron las gracias a este tema: Gmes

12
Preguntas y respuestas / Re:Como centrar funciones de dibujo
« en: Mayo 25, 2020, 05:59:10 am »
Usa un script que dibuje un rectángulo centrado. Algo como esto
var xc = argument0;
var yc = argument1;
var w2 = argument2 / 2; //anchura
var wh = argument3 / 2; //altura
draw_rectangle(xc - w2, yc - h2, xc + w2, yc + w2);
Los siguientes usuarios dieron las gracias a este tema: Marth

13
En GMS2 el formato es diferente
https://docs2.yoyogames.com/source/_build/1_overview/3_additional_information/jsdoc.html
Los siguientes usuarios dieron las gracias a este tema: dixon

14
Preguntas y respuestas / Re:Hacer que la view se mueva lentamente
« en: Mayo 23, 2020, 06:23:47 pm »
Para la view debes usar variables que indiquen la posición final y luego desplazar la view poco a poco desde la posición actual hasta la posición final.
Para ello puedes usar la función lerp
https://www.comunidadgm.org/desarrollo-de-scripts/interpolacion-lineal-en-gm8/
view_xview[0] = lerp(x_inicial, x_final, t);
view_yview[0] = lerp(y_inicial, y_final, t);
t += 0.05;
if (t > 1) t = 1;
la variable t va de 0 a 1, incrementando un poco en cada step.

Para hacer el cambio entre rooms lo más fácil es utilizar las transiciones predefinidas. Las transisiciones solo funcionan en GM8, se eliminaron en GMS.
Al cambiar de room, debes guardar en varibles globales la posición en la que debe aparecer el personaje en la siguiente room
if (room == rm0) {//primera room
    if (x > room_width) {//si se sale de la room por la derecha
        transition_kind = 15; //Push from right
        transition_steps = room_speed * 0.5; //duración de la transición
        global.xx = 0; //posición en la que va a aparecer
        global.yy = y;
        room_goto(rm1); //cambiar de room
    }
}
Adjunto un ejemplo.
Los siguientes usuarios dieron las gracias a este tema: OmarMakero

15
Supongo que el archivo está en una carpeta en la que el juego no tiene acceso.
https://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html

En Windows puedes navegar a casi cualquier carpeta, pero en otras plataformas el acceso a archivos es más limitado.
Lo mejor sería que agregues el archivo al proyecto (Included file)
https://docs.yoyogames.com/source/dadiospice/001_advanced%20use/002_including%20files.html
Los siguientes usuarios dieron las gracias a este tema: dixon

Páginas: 1 2 3 ... 18