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

1471
Aquí hay una explicación y una solución: https://www.yoyogames.com/tech_blog/8
1472
Preguntas y respuestas / Re:Error al disparar
Enero 20, 2015, 04:24:12 PM
Ese código funciona perfectamente en GMS.
¿Qué error se presenta?
1473
Preguntas y respuestas / Re:No me escribe la "ñ"
Enero 19, 2015, 01:48:32 AM
Si, no queda de otra, debes crear otra fuente.
1474
Preguntas y respuestas / Re:Problema paths puertas
Enero 18, 2015, 09:58:53 PM
Muestra el código del activador y el código que hace mover la puerta, porque ese error puede tener muchas causas.
1475
Preguntas y respuestas / Re:No me escribe la "ñ"
Enero 18, 2015, 05:48:19 PM
Si estás seguro de que la fuente incluye la "ñ", abre el cuadro "Font Properties", dando doble click en la fuente, y haz click en el botón All, en la sección "Character Range".
1476
Me imagino que esa función hace algo como:
[gml]
x = objeto.x;
y = objeto.y;
[/gml]
prueba ese código, tal vez no sea necesario usar una librería extra.
1477
Preguntas y respuestas / Re:Problema con draw sprite
Enero 18, 2015, 03:21:53 AM
Usa la función asset_get_index, con la que se puede obtener el indice de un recurso (valor numérico) a partir del nombre (cadena). Cambia la linea [gml]a = "sprnivel" + string(Nivel)[/gml] por esta otra [gml]a = asset_get_index( "sprnivel" + string(Nivel) );[/gml]
En la documentación aparece un ejemplo muy similar a tu código.
1478
Poner niebla es fácil, sólo se usa una función:
[gml]d3d_set_fog( enable, color, start, end );[/gml]
enable tiene que cambiarse por true, color es el color de la niebla, elige el que prefieras, lo normal es que sea del mismo color que el fondo de la room, start indica a qué distancia de la cámara la niebla se empieza a opacar, y end indica a qué distancia la niebla es completamente opaca.
1479
En el editor de rooms, en los bloques invisibles da click derecho y agrega un "Creation Code", define las coordenadas que tendrá el "spawner" en la siguiente room:
[gml]
///Creation Code
x_sig = //x siguiente
y_sig = //y siguiente
[/gml]
al chocar con el bloque se asignan las variables globales:
[gml]
///Colisión
global.x_spawner = x_sig;
global.y_spawner = y_sig;
[/gml]
y en el evento Create del spawner pon:
[gml]
///Create
x = global.x_spawner;
y = global.y_spawner;
[/gml]
1480
Esos valores tendrían que estar en un objeto controlador. ¿Qué método usas para cambiar de room?
1481
Porque GM no está optimizado para funcionar en 3D y además en GM8 el código no es compilado, es interpretado. Para que funcione a una velocidad decente, el juego tiene que estar muy bien optimizado:

-Si los objetos ejecutan largas piezas de código, harán más lento al juego conforme el número de instancias aumente, por eso no se deben poner muchas instancias en la escena y se deben desactivar las que no son visibles o que no son muy importantes. Se debe ver la posibilidad de simplificar el código, también evita usar muchas variables locales (declaradas con var).

-Si los objetos tienen poco código, pero aún así reducen la velocidad, es porque sus modelos tienen demasiados polígonos, una solución es simplificar los modelos, también ayuda hacer invisibles los objetos que no están enfrente de la cámara o que están muy lejanos, poner niebla ayuda a mitigar las apariciones y desapariciones bruscas de los objetos lejanos.

-Desactivar la interpolación de texturas mejora la velocidad, pero sólo en tarjetas de video viejas.

-Disminuiye la resolución del juego, haciendo más pequeña la room o la view.

Una opción más radical, es pasar tu proyecto a ENIGMA (LateralGM); como el código si es compilado, los juegos corren más rápido (yo he conseguido hasta 600 fps en 3D). El problema es que tendrás que modificar mucho código, porque hay muchas cosas que no son compatibles, tal vez lo primero sería comprobar que tu sistema de comunicación con la red es compatible.
1482
Antes de salir de la room guarda las coordenadas iniciales de la otra room usando variables globales:
[gml]
///Cambiar de room

//Posición inicial en la siguiente room
global.x_inicial = //valor
global.y_inicial = //valor

room_goto( room );
[/gml]
en el eveto Room Start pasa esos valores a la posición del personaje:
[gml]
///Evento Room Start
x = global.x_inicial;
y = global.y_inicial;
[/gml]
1483
En Create define una variable para saber cuál es la primera presión del botón del ratón, ejemplo:
[gml]
primer_press = true;
[/gml]
En el evento Left Pressed checa si es el primer click y crea el objeto movimiento_de_carros
[gml]
if( primer_press )
{
    instance_create(movimiento_de_carros, 150, 150)
    primer_press = false;
}
[/gml]
1484
Las funciones de colisión no detectan las instancias por su posición en la pantalla, sino por su orden de creación. Si quieres obtener el id de la instancia más cercana usa la función instance_nearest
1485
En el evento Global Left Pressed activa una variable que indique que el joystick se está usando y guarda la posición del puntero en unas variables, esas coordenadas serán el centro del joystick, en el evento Step o en Global Left Button obtén el ángulo y el desplazamiento del joystick con las funciones point_direction y point_distance, finalmente en el evento Global Left Released indica que el joystick se ha dejado de usar con la variable mencionada anteriormente.