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

481
Preguntas y respuestas / Re:problemirijillos
Mayo 08, 2016, 04:52:21 AM
No te entiendo en absoluto. Cálmate, mira el teclado, explica todo y correctamente.
482
Autor: NiuWeb
Versión de GM utilizada: GM8.0, no he probado si funciona en anteriores, ni tengo cómo.
Descripción: Una emulación sencillísima de la función lerp() de GMS. No me sé la fórmula de la interpolación lineal, ni tengo idea de cómo trabaja la misma en GMS. Pero lo importante es que hace el mismo trabajo xDD
Códigos:
Función lerp(a, b, amt);
[gml]
///lerp(a, b, amt);
var a, b, amt;
a = argument0;
b = argument1;
amt = argument2;
var w, p;
w = b - a;
p = w*amt;
return a + p;
[/gml]
Argumentos:
a: El primer valor a interpolar.
b: El segundo valor a interpolar.
amt: La cantidad a interpolar.

Ejemplo:
[gml]
lerp(10, 15, 0.5); //Devuelve 12.5
lerp(7, 24, 0.2); //Devuelve 11.4 aprox.
lerp(12, 18, 1.5); //Devuelve 21.
lerp(21, 3, 0.5); //Devuelve 12.
[/gml]

Es muy corto, pero qué se le hace, funciona xD. Espero le pueda ser de utilidad a alguien que aún use GM8 xD
483
Preguntas y respuestas / Re:Juntar dos background.
Mayo 07, 2016, 08:11:59 PM
El background 1 queda sobre el background 0; el background 2 queda sobre el background 1, y así sucesivamente.
Entonces, si quieres que el background de montañas quede sobre el de nubes, puedes escribir:
[gml]
background_index[0] = nubes;
background_index[1] = montanas;
[/gml]
O puedes hacer lo mismo desde el editor de rooms.
484
¿La mayoría?
No sé, pero en las librerías propias del GM sólo he visto una pequeña parte de las funciones/sentencias del GML :S
485
Sólo volví para joder xD
Cita de: VisualGames en Mayo 07, 2016, 04:02:41 AM
No se ustedes pero me siento que soy el unico que se a dedicado a investigar de reojo esto de las D&D
No eres el único. No sé los demás usuarios, pero por lo menos yo escribí la primera línea de código después de haber estudiado, arrastrado y soltado la gran mayoría de acciones que tiene GM. Todos pasamos por ahí, y muchos de nosotros hablamos por experiencia, sabemos que es mejor utilizar el código porque lo hemos comparado, hemos experimentado usando tanto código como DnD, y hemos visto cuál es mejor. Por eso podemos decirlo, no lo hablamos sin pensar.
486
¿Dónde? xD
GIA = Guerra de IAs
IA = Inteligencia artificial
DnD = D&D = Drag & Drop
XD

Lo que pregunto es cómo piensas programar una IA usando sólo DnD xD, no creo que salga nada muy avanzado como para que aguante hacer una GIA con ellas :v
487
¿Una GIA con DnD? Es más, ¿Una IA con DnD? :S
488
Preguntas y respuestas / Re:Duda con monetización
Mayo 06, 2016, 07:44:39 AM
Bueno, sobre la monetización no estoy seguro, pero creo haber leído que YoyoGames permite tener completa libertad sobre los proyectos creados, mientras éstos sean totalmente legales (no estoy seguro de si sea verdad, sólo digo lo que creo que he leído por ahi). Por lo que imagino que esto incluye la monetización.

Sobre el juego en sí, no. Porque la licencia Estándar del programa sólo permite la exportación para la plataforma Windows. Para exportar para Android necesitas la licencia profesional y su módulo Android.
489
Creo que es más fácil usar la id de las instancias. Por ejemplo, declaramos unas variables:
[gml]
global.seleccion = noone;
xx = -1;
yy = -1;
move = false;
[/gml]
Luego, en el evento de mouse global:
[gml]
var inst = instance_position(mouse_x, mouse_y, objeto); //Buscamos alguna instancia en la posición del mouse
if inst != noone //Si la hay {
    global.seleccion = inst; //Seleccionarla
    move = false; //Evitar que los objetos seleccionados anteriormente sigan moviéndose
}
else { //Si no la hay
    if global.seleccion != noone { //Mirar si anteriormente ya se había seleccionado alguna, y si lo hay
        xx = mouse_x;
        yy = mouse_y;
        move = true; //Permitir mover
    }
}
[/gml]
Por último, en el evento <step>:
[gml]
if global.seleccion != noone and move { //Si está seleccionada una instancia y se puede mover
    var obj = global.seleccion;
    var dir = point_direction(obj.y, obj.y, xx, yy);
    obj.x += lengthdir_x(4, dir);
    obj.y += lengthdir_y(4, dir);
}
[/gml]
Poooodría funcionar, no lo he probado.
490
Preguntas y respuestas / Re:pad
Mayo 05, 2016, 06:39:35 AM
Para crear un botón, sólo necesitas configurar las acciones que se deben ejecutar al presionar un punto en la pantalla. Para esto existen infinidades de formas. Lo más básico es con objetos distintos, ubicados en las posiciones deseadas, y en su evento de <Mouse Pressed> o similares programar su comportamiento. Seguimos con la detección de posiciones. Hablo de detectar un clickeo global de mouse, y dependiendo de su posición, ejecutar algo. Esto es más eficiente ya que puede programarse fácilmente desde un mismo objeto. Por último están las Virtual Key, similares al método anterior pero algo más enredadas (enredadas pero fáciles, xD).
Eso con respecto a botones "estáticos", o sea, sólo de clickear.

Para hacer un joystick, es algo más complejo, pero no difícil. Puedes apoyarte de funciones como point_direction(), point_in_rectangle(), lengthdir_x() ó lengthdir_y() para crear algo decente.
491
¿Con "GUI" te refieres a barras de vida, botones y demás cosas en la pantalla?
Es posible, usando las funciones de dibujo comunes y corrientes (tipo draw_rectangle() y sus familiares). Y también se puede apoyar en las vistas, usando las posiciones de éstas para hacer una "GUI que siga la cámara"
492
He reescrito el script, ahora es un poco más corto y eficiente, aunque sigue funcionando exactamente igual :D
493
Preguntas y respuestas / Re:Enlazar dos proyectos
Mayo 03, 2016, 09:25:26 PM
Si es GM8, puedes usar la opción Export resources, del menú Archivo. Si es GMS podrías guardar los recursos que desees mover en una extensión, exportarla e insertarla en el nuevo proyecto.
494
Podrías hacerlo más sencillo de esta forma:
[gml]
ini_open("mapa.ini");
var n = 0;
with (objeto) {
    n += 1;
    ini_write_real(object_get_name(objeto) + string(n), "xpos", x); //Guardamos la posición 'x'
    ini_write_real(object_get_name(objeto) + string(n), "ypos", y); //Guardamos la posición 'y'
    //lo mismo con todas las variables que quieras
}
ini_write_real("propiedades", "cantidad", n);
ini_close();
[/gml]
Y cuando quieras cargar las instancias:
[gml]
ini_open("mapa.ini");
var n = ini_read_real("propiedades", "cantidad", 0);
var xx, yy;
for(var i = 1; i <= n; i += 1) {
    xx = ini_read_real(object_get_name(objeto) + string(i), "xpos", 0); //Cargamos la posición 'x'
    yy = ini_read_real(object_get_name(objeto) + string(i), "ypos", 0); //Cargamos la posición 'y'
    instance_create(xx, yy, objeto);
}
ini_close();
[/gml]
495
Preguntas y respuestas / Re:Actualizador
Mayo 01, 2016, 04:41:58 AM
Se me ocurre que podrías tener en tu servidor dos archivos: Un archivo de texto plano que contenga la versión más reciente del programa, y otro, el instalador/ejecutable del mismo.

Entonces, por medio de http_get() obtienes el contenido del archivo plano, siendo la última versión del juego a modo de cadena, y si ésta es mayor a la actual, que se descargue el ejecutable por medio de http_get_file()