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

436
Para crear una variable global la definis únicamente en el evento CREATE de cualquier objeto y la podes usar en cualquier objeto.

Las variables locales son aquellas que las podes usar únicamente en X objeto que también se definen en el evento CREATE de ese X objeto. No pueden ser usadas desde otros objetos al menos que se especifique el nombre del objeto.

Y por último tenes las variables privadas que se usan únicamente en el evento donde se definieron.

Un ejemplo de las tres variables:

Global:
[gml]global.nombre_variable = "Variable del tipo String";[/gml]

Local:
[gml]nombre_variable = "Variable del tipo String";[/gml]

Privada:
[gml]var nombre variable;
nombre variable = "Variable del tipo String";[/gml]
437
Juegos en desarrollo / Re:Horda Zombie Demo 1.0
Noviembre 06, 2013, 12:44:44 AM
Lo probé, es algo adictivo xD. Está bueno, al final pudiste hacer bien el sistema para que fueran apareciendo los zombies de los dos lados :D
438
Lo que se me ocurre es que ejecutés una alarma y compruebe si image_index == 3, si no que cambie de índice y se vuelva a ejecutar con image_speed = 0. Ej:

[gml]
if (image_index != 3) {
   image_index +=1;
   image_speed = 0;
   alarm[0] = 15;
}
[/gml]

Claro está que en el evento create tendrías que definir que image_index es cero al igual que la velocidad.
439
Lo que puedo ver es que haces muchas comprobaciones, y en una de ellas tenes el valor de Y en 0, es decir que va a comprobar si la distancia de la posición X del personaje y la posición Y = 0 es menor o igual que 64, la verdad a eso no le encuentro mucho sentido.

Tratá de usar un solo distance_to_point con algo similar a esto:

[gml]
if (distance_to_point(obj_player.x,y) <= 160 && distance_to_point(obj_player.x,y) > 32 ) {
    down = 1;
}
[/gml]

Los valores los usé teniendo en cuenta la cantidad de cuadros que hay en la captura que pusiste, es decir, si miden 32, 5 cuadros serían 160. Lo que hice fue comprobar la distancia X del personaje pero manteniendo la distancia Y del objeto a caer, es decir, si la distancia es menor o igual que 160 pero mayor que 32 (para que no caigan cuando estés en el piso de arriba) se active down.
440
Acá te dejo un ejemplo de 39DLL que muestra como hacer un partida online con otra persona, eligiendo así ser host o cliente.

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=1927
441
Uno bueno que es el que uso es www.hostinger.com.ar, es realmente bueno y te dan mucho espacio.
442
Fácil, te creas una cuenta en algún hosting, sea pago o gratis (lógicamente si es pago tenes que comprar un dominio también). Una vez que esté el host funcionando procedes a subir todo por cliente FTP y ya, juego online.
443
Preguntas y respuestas / Re:oleadas zombies
Octubre 31, 2013, 02:04:32 AM
Acá hice un ejemplo bien básico.

https://www.dropbox.com/s/apd7jd6g9ltrwgl/oleadasZombies.gmk

Consiste en que cuando se crean los zombies al azar (en posición y) se activa un marcador que se coloca en 0 cuando se crean todos los zombies, al ponerse ese marcador en 0, en el evento step comprueba si ese marcador está en 0 y la cantidad de zombies es igual a 0, entonces pasa a ejecutarse nuevamente la alarma para la próxima oleada y le suma 1 a numOleada. El numOleada multiplica ese valor por la cantidad de objZombies a crearse, es decir que por cada oleada, el número de zombies aumenta.

El tiempo entre oleada se lo cambias con la variable tiempoOleada cambiando el 30 por el step de tu room (por lo general viene en 30 al menos que se lo cambies, 30 step equivalen a 1 segundo) y el 5 te dice los segundos, es decir que está configurado para un tiempo de 5 segundos, si queres que sea un tiempo de 30 segundos reemplazá el 5 por 30 y ya ;D


[EDIT]

Ahora crea zombies con posición aleatoria en x, es decir que lo crea en una punta o en la otra. Comenté esa parte por si no se entendía ;D
444
Preguntas y respuestas / Re:oleadas zombies
Octubre 31, 2013, 12:27:33 AM
Fácil, haces límites al azar.

Dentro de la función de la alarma definis:
[gml]var xx,yy;[/gml]

Y ahora usas la función random_range() que te permite crear un número al azar comprendido entre X1 y X2. Por ejemplo:

[gml] xx = random_range(25,610);
yy = random_range(50,450);[/gml]
445
Preguntas y respuestas / Re:oleadas zombies
Octubre 30, 2013, 11:59:33 PM
Fácil  ;D

Todo gracias a los buenos amigos Alarmas xD

Primero que nada, tendrías que definir un par de variables,una variable que indique si estás en una oleada o no, una que sea oleada que a esa le definis un número, otra variable que sea la cantidad de zombies estándar y por última X tiempo, este sería el tiempo intermedio para las oleadas. y a empezar con las alarmas. En las alarmas primero que nada tenes que comprobar si la cantidad de objetos zombies es igual a la cantidad que queres, lo que se me ocurre puede ser algo así:

[gml]if (instance_number(objZombie) < numZombie*numOleada) {
       instance_create(posiciónXalAzar,posiciónYalAzar,objZombie);
       alarm[0] = 5; //Este tiene que ser un número chico a sí no aparecen tan salteados los zombies.
} else {
       oleada = 0; //Si se completó la instancia de oleada se pone en 0.
       alarm[0] = tiempoProxOleada   //Acá ponemos para que en X tiempo se vuelva a repetir.
}[/gml]


Básicamente eso es lo que se me ocurre que podes llegar a hacer ;D
446
Preguntas y respuestas / Re:importar codigo a objeto
Octubre 30, 2013, 08:47:07 PM
Acá te dejo un ejemplo que encontré en internet, aunque es con *.txt

http://www.64digits.com/games/index.php?cmd=view_game&id=5643
447
Preguntas y respuestas / Re:sonido en enemogos
Octubre 30, 2013, 08:37:32 PM
Es que el evento step significa pasos, es decir, por cada paso se ejecuta la acción del step, es un evento cíclico, podrías probar con condicionales o una alarma.
448
Preguntas y respuestas / Re:sonido en enemogos
Octubre 30, 2013, 07:34:36 PM
Tenes dos formas de hacerlo.
1) Cargando el archivo de audio directamente en GM.
   Para esta forma cargas el archivo, le asignas el tipo (en lo personal recomiendo del tipo multimedia) y usas esta función:

[gml]sound_play(nombreSonido)
//O si lo haces que se repita siempre...
sound_loop(nombreSonido);[/gml]

2) Cargando el archivo desde un directorio.
    De esta forma podes tener una carpeta con todos los sonidos que utilices y cargarlos:
[gml]zombieSonido = sound_add(working_directory + "/Sonidos/nombreSonido.mp3",0,1)
sound_play(zombieSonido);
// O para hacer que se repita siempre...
sound_loop(zombieSonido);
[/gml]

Si usas la segunda opción tenes que tener en cuenta que para cargar el archivo de audio tenes varias opciones que son la segunda variable de la función (la que está en 0):

0=normal, 1=background, 2=3d, 3=mmplayer

La tercer variable de esa función es para precargar el sonido, estando en 1 se pre carga (o puede tomar valores booleanos, TRUE o FALSE).

Después hay otra opción que es usar alguna DLL pero ya es más complicado y si no vas a hacer un proyecto grande te recomiendo usar las primeras 2 opciones.
449
Nunca he trabajado con GMS en dispositivos android, pero si mal no recuerdo, había un código que era para ajustar X medida a las proporciones que uno quisiera sin tener inconveniente con la resolución del dispositivo. Leete el manual de GMS que debe salir algo. O de última buscá por GMC, ahí siempre uno encuentra algo útil.
450
Preguntas y respuestas / Re:Dudas máscara de colisión
Octubre 27, 2013, 12:47:48 AM
Según tengo entendido las máscaras adicionales eran para objetos estáticos, corríganme si me equivoco. En el caso de que me equivocara supongo que al estar relacionado con el objeto debería de respetar los estándares que tiene en el código.

A demás, si un objeto presenta alguna secuencia de imágenes, para eso GM trae la función de máscaras en la edición de sprites.