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 - Clamud

76
En el objeto que crea las instancias agrega una variable que guarde el id.
[gml]
// Create
ultima_instancia = noone;
[/gml]
[gml]
// Alarma (o evento donde se crean las instancias)
ultima_instancia = instance_create(...);
[/gml]
77
Funciona bien, es divertido, pero es un plataformero común, no tiene algo que lo haga destacar.
Al principio se siente un poco dificil, pero no es por los niveles, sino porque el personaje se desliza demasiado en el piso y la distancia mínima que puede caminar es un poco grande.
78
Preguntas y respuestas / Re:Versión de Android
Junio 15, 2020, 05:58:14 PM
Puedes modificar la versión de SDK, que a su vez modifica el API level, pero no estoy seguro cómo se relacionan las versiones entre los paquetes. Por default es 9. Las versiones por default deberían tener la mayor compatibilidad en los dispositivos actuales.
https://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/android%20tab.html
79
Me parece buena idea. El problema es que parece que nadie tiene tiempo suficiente para implementar esas funciones en el servidor.
80
Se puede hacer de muchas formas. Debes explicar a detalle el comportamiento de la cuerda para poder darte una respuesta concreta.

Busca "gamemaker grappling hook" en Google y aparecerán algunos tutoriales
https://forum.yoyogames.com/index.php?threads/pendulum-swing-grapple-hook.50382/
https://zackbellgames.com/2014/11/11/sprite-skewing-for-procedural-animation/
81
Hay varios ejemplos en internet, pero no logré encontrar uno hecho en GM8, sin embargo, gran parte del código debe ser compatible
[spoiler]
https://friendlycosmonaut.itch.io/dialoguesystem
https://marketplace.yoyogames.com/assets/422/colored-draw-text-custom
https://marketplace.yoyogames.com/assets/2347/jason-text-engine
https://marketplace.yoyogames.com/assets/6533/atex
https://marketplace.yoyogames.com/assets/1965/bbtextbox
[/spoiler]

La mayoría de sistemas utilizan instrucciones dentro del texto, que están marcadas con caracteres especiales. El texto se va leyendo letra por letra, cuando se encuentra un caracter especial se lee la instrucción y se cambia la forma de dibujar el texto. Las coordenadas de cada letra se obtienen sumando las anchuras y alturas de las letras anteriores.
82
Que bueno que te ha servido.

other se utiliza dentro de un ciclo with para indicar la instancia que inició el ciclo.
[gml]
// 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
}
[/gml]

other también se utiliza en el evento colisión para obtener el id de la instancia con la que ocurrió la colisión.
83
Preguntas y respuestas / Re:Problema con draw text
Junio 01, 2020, 05:27:50 AM
El sprite transparente sirve para definir el área en la que se puede hacer clic, verdad?
Puedes obtener el tramaño del texto con string_width y string_height. Después cambia la escala de la instancia par que todo el texto quepa en su área.
Ejemplo:
[gml]
// create
draw_set_font(fontX);
draw_set_halign(fa_center);

wSprite = 16; // anchura del sprite
wText = string_width("Mensaje a dibujar"); //anchura del texto

image_xscale = wText / wSprite; // ajustar escala
[/gml]
Para probar que la escala es correcta, usa un sprite sin transparencia primero (no olvides poner draw_self en el evento draw)
[gml]
// draw
draw_self();
draw_text("Mensaje a dibujar");
[/gml]
84
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
[gml]
// 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();
}
[/gml]
85
Mejor usa un editor externo como Aseprite
86
El problema de usar solo lengthdir es que van a atravesar las paredes.

¿Cómo son las paredes y los objetos? danos una idea de sus propiedades, si solid = true, cómo es su máscara de colisión etc.

Para mover muchas instancias juntas sin colisionar he utilizado un sistema en el que se define un área circular alrededor de cada instancia. Si las áreas de dos instancias se empalman, se desplazan en direcciones contrarias para que las áreas dejen de estar empalmadas. Como resultado parece que las instancias se deslizan suavemente cuando chocan.

Hay varias técnicas de búsqueda de caminos. Si las paredes están alineadas a una cuadrícula, puedes usar el algoritmo A* que ya está implementado en GMS (mp_grid functions)
https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/motion%20planning/index.html
87
Pon una variable en el objeto mesa que indique si está ocupada
[gml]
ocupada = false;
[/gml]

El objeto cliente puede buscar una mesa vacía así
[gml]
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
    }
}
[/gml]
88
Preguntas y respuestas / Re:Enemigos que apunten
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
[gml]
angulo = point_direction(x, y, obj_player.x, obj_player.y);
[/gml]
Ese ángulo lo puedes usar para la dirección de movimiento de las balas y para inclinar el sprite del arma.
89
Preguntas y respuestas / Re:destruir instancias
Mayo 29, 2020, 04:23:24 AM
Lo siento, no entendí bien la explicación. ¿Podrías poner un dibujo de lo que quieres lograr?
90
Usa un script que dibuje un rectángulo centrado. Algo como esto
[gml]
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);
[/gml]