Noticias

¡Ayuda a la Comunidad GM, haz una donación!

* Sponsor

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
Existen muchas formas de programar ese comportamiento. Algunas ideas las puedes obtener de la competencia GIA_01
https://www.comunidadgm.org/guerra-de-ias-(gia)/gia_01-la-carrera-de-los-droides/

La complejidad del código depende de la complejidad de las rutas que debe seguir el personaje. Muestra ejemplos de los nivles.

Puedes encontrar muchos artículos en internet buscando "platformer pathfinding". Aquí hay algunas ideas
https://zackbellgames.com/2015/02/16/pathfinding-pt-2/

2
Preguntas y respuestas / Re: Bufanda con "fisicas"
« en: Julio 22, 2021, 04:10:49 pm »
Se puede usar el sistema de física de GMS. La idea es crear una cadena de segmentos cortos y cubrir con un sprite que se "deforma".

En este artículo se muestran un script para dibujar sprites que parecen flexibles.
https://zackbellgames.com/2014/11/11/sprite-skewing-for-procedural-animation/

Aquí hay ejemplos de plataformeros que usan el sistema de física (del mismo autor)
https://marketplace.yoyogames.com/publishers/303/zbg

3
Preguntas y respuestas / Re: Colisiones "deslizantes" ?
« en: Julio 22, 2021, 02:54:02 am »
Se puede hacer de muchas formas. El método que me parece más fácil, cuando las máscaras de colisión son rectangulares, es que el movimiento se divide en 2 partes, una para cada eje.
Primero desplaza el personaje en el eje X, si detecta colisión que se desplace hasta luna posición en el borde del obstáculo.
Después desplaza el personaje en el eje Y, si detecta colisión también que se desplace hasta quedar en el borde del obstáculo.

Otra opción es pensar que los dos objetos son circulares. Cuando el personaje colisiona con el obstáculo se desplaza en dirección contraria al centro del obstáculo. Esta forma se puede hacer con poco código, pero debes entender un poco de matemáticas vectoriales.

4
General / Re: Game maker, ideas.
« en: Julio 09, 2021, 07:14:17 pm »
Hola! Tengo soluciones para varias de tus preguntas, excepto para las relacionadas con alterar la página web.

¿Cómo logras crear un juego con muchas instancias si has colocado un solo objeto en la room y no puedes usar instance_create por motivos de compatibilidad?
Las instancias podrían estar creadas desde el principio, solo que cambian de apariencia y comportamiento, o podría existir una sola instancia que maneja muchas variables para representar a muchos objetos.

¿Cómo lograrías una colisión entre entidades sin usar sprites?
Se pueden detectar utilizando las funciones de colisión o se puede programar un sistema propio combinando varias técnicas (axis aligned bounding box, matrices, campos de fuerza)

¿Cómo mostrarías una imagen sin usar sprites ni background?
Utilizando las funciones draw, los gráficos podrían ser solo líneas y polígonos. Otra opción es insertar en el código usando un formato como base64 o crear un formato propio.

¿Se puede crear un video juego completo solo con código sin sprites ni background?


Un juego creado solo con códigos, sin sprites ni background ¿pudiese mostrar el sprite original de mario?
Sí, convirtiendo la información de los pixels a texto (por ejemplo con base64)

¿Cómo crearías un juego en game maker sin usar objetos?
Eso parece imposible. Se puede hacer sin poner objetos en el árbol de recursos y crearlos en el código de la room.

¿Cómo crear un juego con un objeto un cuanto pero sin script?
Tal vez con las acciones drag and drop

5
Usar postion_meeting también me parece la mejor opción.
El código se puede hacer más compacto de esta forma
cminas = 0; //cantidad de minas

for(i = x-32; i<=x+32; i+=32)
for(j = y-32; j<=y+32; j+=32)
{
    // No revisar la posición central
    if(i==x and j==y) continue;
   
    // Revisar las otras posiciones
    cminas += position_meeting(i, j, obj_mina);
}

El juego puede funcionar usando solo objetos, pero en algún punto creo que será necesario almacenar información en arrays o ds_grids.

6
Juegos completos / Re:Adiós, capitán.
« en: Diciembre 31, 2020, 06:05:59 pm »
Otro juego con tu estilo característico. La mecánica es muy simple, pero la temática es interesante. El problema es que nunca logro entender el significado completo.
La animación cuando se ahoga me gustó. Deberías aplicar esa calidad de gráficos en un juego más largo.

7
Preguntas y respuestas / Re:Personalizar los numeros de un contador
« en: Noviembre 15, 2020, 09:46:07 pm »
¿Tienes algo programado?

Primero debes crear un recurso fuente, después usar la fuente con draw_set_font y dibujar con draw_text.
Puedes cambiar el color de dibujo con draw_set_color.

8
El problema puede estar en la ruta del proyecto, el nombre del proyecto tiene espacios. Prueba guardando el proyecto con otro nombre.

9
Preguntas y respuestas / Re:Problema con pulsación de teclas
« en: Octubre 06, 2020, 05:29:02 pm »
También puedes poner un conjunto de teclas alternativo, por ejemplo WASD como alternativa a las flechas.

10
En GMS1.4 debes usar las funciones audio_*
La función audio_sound_gain tiene un parámetro para especificar el tiempo que que va a tardar el cambio de volumen en milisegundos. Ejemplo del manual
snd = audio_play_sound(snd_fountain);
audio_sound_gain(snd, 0, 0);
audio_sound_gain(snd, 1, 5000);
En el código anterior el volumen inicia en 0 y va incrementando gradualmente durante 5 segundos.

11
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.

12
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.

13
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

14
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.

15
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.

Páginas: 1 2 3 ... 18

Warning: Parameter 1 to spoiler_buffer() expected to be a reference, value given in Unknown on line 0

Warning: Parameter 1 to custom_report_ob() expected to be a reference, value given in Unknown on line 0