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

661
No hay una función en GMS para eso, tal vez se puede con una extensión, pero creo que no es bueno forzar al jugador a usar un brillo de pantalla determinado (tal vez es sensible al brillo de la pantalla o quiere ahorrar batería).
662
Hacer un RTS es muy difícil, deberías comenzar con algo más sencillo, pero si quieres continuar estudia sobre pathfinding.
663
El código es más fáicl si se diseñan todas las rooms para conectarse entre sí, de forma que no exista la posibilidad de quedar atorado al cambiar de room.

El primer paso es guardar los identificadores de las rooms en una lista o en un array. Se puede hacer manualmente o de forma automática con un script como este: http://www.gmlscripts.com/script/map_rooms
Esta es una versión modificada que usa una lista, en tu versión no debes agregar las rooms que no son niveles de juego:
[gml]
///list_rooms( list_id );

var lista, i; //variables locales
lista = argument0; //lista a usar
i = room_first; //primera room en el arbol de recursos

while room_exists(i) { //mientras hay rooms que agregar
   ds_list_add( lista, i ); //agregar room
   i = room_next(i); //siguiente en el arbol de recursos
}
[/gml]
Esta sería la forma de usar el script:
[gml]
global.rooms = ds_list_create();
list_rooms( global.rooms );
[/gml]

Después agrega rooms aleatorias a un array 2D y coloca al personaje en una de esas celdas, supongamos que el mundo mide 11x11 rooms:
[gml]
randomize(); //semilla aleatoria
global.n = ds_list_size( global.rooms ); //numero de rooms
for( i=0; i<11; i+=1 ) // 11 x 11
for( j=0; j<11; j+=1 )
{
   global.mundo[i,j] = ds_list_find_value //room
   ( global.rooms, irandom(global.n) ); //aleatoria
}

//coordenadas en el mundo
global.x_mundo = 5;
global.y_mundo = 5;

//coordenadas en la room que sigue
global.x_sig = 123;
global.y_sig = 123;

//ir a la siguiente room
room_goto( global.mundo[ global.x_mundo, global.y_mundo ]);
[/gml]

En el evento Create o en Room Start mueve el personaje a las coordenadas indicadas anteriormente:
[gml]
x = global.x_sig;
y = global.y_sig;
[/gml]

En el evento Step del personaje debes revisar si se sale de la room y por dónde (izquierda, derecha, arriba o abajo). En cada caso se debe ejecutar un código diferente:
[gml]
//si sale por la izquierda
global.x_mundo -= 1; //room a la izquierda
global.x_sig = room_width; //entra por la derecha
room_goto( global.mundo[ global.x_mundo, global.y_mundo ]);
[/gml]
664
Si está en el evento Step debes quitar esto timeline_position = 0;
665
Preguntas y respuestas / Re:AUDIO 3D en Android
Julio 05, 2017, 07:05:42 PM
Tal vez solo funciona con auriculares.
666
¿El primer bloque de código se ejecuta en Create?
667
En la mayoría de juegos con wall jump, además de asignar la velocidad vertical también se asigna la velocidad horizontal de modo que es difícil regresar al mismo muro sin tocar el muro que está al otro lado.
668
Puedes sumar un valor para que se desplace hasta donde se necesita.
[gml]
background_y[2] = view_yview[0] * 0.7 + algo;
[/gml]
669
La función cambia el volumen de uno de los sonidos en el árbol de recursos, por ejemplo, si bajas el volumen de un recurso llamado snd_disparo, sonará con bajo volumen las próximas veces que se reproduzca, los demás sonidos no se alteran. Para modificar el volumen de todos los sonidos usa sound_global_volume(value).
670
Por lo menos esto está en español
http://www.dazlog.com/manual_GM/El_joystick.htm
671
http://www.dazlog.com/manual_GM/Funciones_basicas_de_sonido.htm
Para cambiar el volumen debes usar sound_volume( index, value ).
:GM8: no trae funciones para pausar sonido, pero puedes usar una extensión (http://gmtoolbox.com/).
672
Yo intenté participar el año pasado, pero no terminé el juego. Podría crear algunos sprites, pero lo que mejor se hacer es programar. Me gustaría hacer equipo con un buen programador y con un buen escritor.
673
Abre la ventana de Global Game Settings, desde el árbol de recursos o desde el menú Resources -> Change Global Game Settings. Hay una pestaña para cada plataforma de compilación, ahí se pueden cambiar los iconos y las imágenes de fondo cuando carga.
674
Podemos empezar con elgir cómo se orienta la cámara. Se usan dos métodos:

1. Indicar la posición (xfrom,yfrom,zfrom) y el punto al que mira (xto,yto,zto).

2. Indicar la posición y dos ángulos; uno de los ángulos es la dirección de la cámara en el plano horizontal y el otro ángulo es la inclinación en un plano vertical. Esos ángulos tienen muchos nombres, pero podemos usar los de la imagen (pitch y jaw). De todas formas se debe calcular el punto (xto,yto,zto) para usarlo en la función de proyección.



Después se debe encontrar un sistema de coordenadas locales de la cámara, luego convertir las coordenadas del mouse en un vector en el espacio de la cámara, ese vector se debe convertir a un vector en coordenadas de la escena y por último proyectar el vector en los objetos o en el piso. Agregaré esa información en futuros mensajes.
675
Podrías cambiar de posición el extremo de la línea. Si el personaje está agachado, el extremo es (x,y), y si está de pie, el extrem es (x,y-10).