Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Silver_light

Páginas: 1 2 3 4 5 ... 23
31
Cuando dices "borrar de los clientes" te refieres a limpiar la lista de clientes alojada en el Servidor
O hacer que las instancias en todas las pantallas desaparezca?


Lo siento, no puedo descargar el editable ni probarlo, puesto que ahora uso Linux pero a lo mejor puedo darte una mano.

32
Preguntas y respuestas / Re:¿como hacer un temporizador?
« en: Abril 25, 2017, 01:41:52 am »
Un método sencillo que puedes utilizar es descontar una variable a través de una alarma.

Es decir, declaras en el evento create una variable, pongamosle que la quieras llamar "tiempo".
tiempo = 100 
Entonces tienes 100 segundos para hacer algo, o esperar a que se acaben.
Luego, para que se vaya descontanto deberían iniciar una alarma, que haga el trabajo de ir descontandola. Para ello es necesario que hagas una llamada a cualquier alarma, en este caso usariamos alarm[0] pero puede ser cualquiera que te acomode mejor.
tiempo = 100
alarm[0] = 1
Ya con eso pondrías a andar el evento "alarm[0]=1" el cual debiera ejecutar un código para ir restando la variable tiempo.
Entonces creas el evento alarm[0] dentro del mismo objeto y colocas:
tiempo = tiempo -1 
Con eso te aseguras de que en algun momento se haga 0.

Ahora, para que se repita la alarma, es decir, para que se vuelva a descontar el temporizador , es necesario hacer otra llamada a la alarma. Creamos entonces un bucle dentro de la alarma para que se repita una y otra vez, haciendo la llamada con alarm[0] = room_speed, lo que haría que cada segundo se vuelva a ejecutar. Por consecuente se restará 1 al temporizador y volverá a llamar a la alarma.
tiempo  = tiempo -1
alarm[0] = room_speed

Finalmente solo debes colocar la condición necesaria para que cuando llegue a cero ocurra algo.
if (tiempo > 0){
       tiempo  = tiempo -1
       alarm[0] = room_speed
}else // tiempo es 0
game_end()

En este caso, cuando la alarma llegue a cero, se termina el juego, pero puedes siempre cambiarlo por otra cosa.

saludos!

33
Juegos en desarrollo / Re:Spatial Legacy
« en: Abril 28, 2016, 04:12:16 am »
Graficamente se vé bastante bueno.
Aunque evitaría hacer que se solape el personaje por el frente. Esto se arregla fácilmente poniendo menos profundidad a los tiles en una capa aparte. (Imagen adjunta).

Y ya que gozas de la fácilidad(o tal vez, no? jaja) hacerlos en 3D para luego pasarlo a imágenes, como recomendación, no estaría mal que hicieras el movimiento 8 direcciones, porque a decir verdad, se vé un poco mal si mueves en diagonales.
  Ultimo, cuida las faltas de ortografia, si pensas en hacer un juego que tenga dialogos, o a lo sumo, que cuente parte de la historia, puede que le quite seriedad o incluso que derrumbe el ambiente.

saludos!

34
Preguntas y respuestas / Re:Borrar una imagen con el dedo
« en: Abril 09, 2016, 07:30:03 pm »
Eso se hace con surfaces a las cuales se les aplica bm_substract cambiando el blend mode en la superficie.
En todo caso tendrias que dibujar el dibujo de enfrente en la superficie para poder borrarla como antes mencioné.

Acá hay un link bastante informativo sobre como borrar parte de una surface:

http://www.comunidadgm.org/preguntas-y-respuestas/borrar-parte-de-una-surface/msg113894/#msg113894

Solo bastaría adaptarlo para que siga al cursor en este caso.
Esa es la mejor forma de hacerlo.

Saludos!

35
Preguntas y respuestas / Re:Plataforma ascendente/descendente
« en: Junio 07, 2015, 05:45:34 am »
Yo me descargué este ejemplo hace una semana en la sección de Descargas del foro:

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=83

Es bastante completo, incluye además plataformas en diagonal , horizontal.
Aunque esté hecho para  :GM5: se puede abrir perfectamente en un  :GM8: sin problemas.
Saludos!

36
Preguntas y respuestas / Re:Sprite redondo.
« en: Junio 07, 2015, 05:37:21 am »
Si es un objeto redondo entonces deberías calcular la distancia entre el centro del sprite y el radio de la circunferencia del sprite.

Por ejemplo, verificas las distancia DIST entre el centro del sprite y el cursor.
if (point_distance(x,y,mouse_x, mouse_y) <= DIST){
 // acciones }

37
Juegos en desarrollo / Re:Ilíada Espacial
« en: Junio 05, 2015, 04:28:03 am »
Jajaja, como sea, parece que solo tuve un mal dia  XD

Bien, ahora con el juego: Llegué hasta el jefe final, la fase 15, creo. Lo que no supe fué como derrotarle, aunque deduzco que debían hacerse con las bombas rojas, puesto que el disparo convencional le recargaba la vida o esa fue mi impresión.
   En concordancia con lo anterior, creo que el factor de Aleatoriedad afecta de manera negativa al juego en si, puesto que podrías estar "fácilmente" 2 minutos esquivando disparos y esperando a que se genere un arma especial para recién lograr hacer daño. Esto me pasó, por ejemplo en la fase 7 u 8, no recuerdo bien, en el área del espacio donde el jefe es una nave que está situada en el borde de la pantalla del lado izquierdo y la única manera de dañarlo es usando el arma especial. Por lo que el factor de beneficio x habilidad no se aplica. Consecuentemente no importa qué tan bien juegues o hayas aprendido a jugar con las mecánicas que tiene el juego, el factor de aleatoriedad jugará en contra por el hecho de que solo, si tienes una mala racha, en un buen periodo de tiempo no saldrá un arma especial y deberás esperar a que suceda. Ahora... combinando dicho suceso, más el hecho de que ahora los enemigos resisten mas ( o bien, tienen mas vida) hacen que el juego se vuelva un poco monótono al estar esquivando disparos y esperando "a que toque una buena".

Ya, con otro tema, una sugerencia, es con respecto al cursor que muestra el enemigo seleccionado. Bueno, este solo se muestra cuando está encima, por desgracia los enemigos tienden a moverse y se quita la información, por lo cual solo puede visualizarse una milésima de segundo o bien, podrías perseguirlo con el cursor para ver la información pero no creo que el objetivo del juego sea pickear naves con el ratón XD o bien, tardas tratando de leer la información de una nave, que ya te llegan miles de disparos.
En cuanto a esto mi sugerencia es que aparezca en el borde superior izquierdo la información del último enemigo señalado con el cursor  :D

Hmmm, bueno, creo que no hay más por decir. Si me olvidé de algo lo editaré  XD
Saludos!

38
Juegos en desarrollo / Re:Ilíada Espacial
« en: Junio 04, 2015, 06:08:14 pm »
Hola de nuevo (?

Pues no sé que clase de balanceo le hiciste, pero deduzco que aumentaste el recalentamiento del arma?  No lo sé...

Solo se que no puedo pasar más allá de´segundo nivel ahora  XD y eso que lo jugué bastante rato :-X
 

39
Preguntas y respuestas / Re:Crear una global por instancia.
« en: Mayo 29, 2015, 11:29:40 pm »
Ah, ya, super claro

Gracias!  :D

40
Preguntas y respuestas / Re:Crear una global por instancia.
« en: Mayo 27, 2015, 10:09:39 pm »
Primero que nada, agradezco a todos por las respuestas!  :D

A mi ahora pensando, me surgen dudas, quieres que se guarde esa información para la próxima vez que entres al juego??. Esos objetos son siempre los mismos en la room, es decir, en la room1  5 enemigos de tipo talcual. Room2 7 enemigos tal cual.
Pues poner hacer un .ini, con el nombre de la room y la cantidad de objetos tirados, si supera la cantidad de enemigos que no tire mas, si es menos, que suelte alguno con alguna probabilidad, por ejemplo, 5 --100%, tiran 1,  al 75%, tiran 2. al 50%, y así sucesivamente.
O si tienes diferente tipos de enemigos y de objetos, el ini con esta estructura
[ROOM1]
enemigo = 1
enemigo2= 0
enemigo3=4    (siendo esto la cantidad de objetos, suponiendo que haya varios del mismo objeto)
Si solo hubiera 1 por objeto, podrias poner false o true.
Si también quisiera que se guardara al cerrar el juego, pero claro, eso creo que lo tendré cubierto. Sino pregunto luego xD

El sistema que se me ocurre, con suficiente robustez para evitar problemas como ids repetidas, es usar una ds_list para cada room y un ds_map para acceder a las listas.

Primero se crea el mapa
global.mapa = ds_map_create();
Al entrar a una room se revisa si no está en el mapa, entonces se agrega y se crea una lista para esa room
if( not ds_map_exists( global.mapa, room ) )
ds_map_add( global.mapa, room, ds_list_create() );
Eso lo debe hacer un objeto controlador antes de que las demás instancias ejecuten el siguiente código
if ds_list_find_index( global.mapa[?room], id )
soltar_objeto = false;
else
soltar_objeto = true;
En el código anterior se revisa si el id se encuentra en la lista creada para la room actual, si es así, la instancia ya soltó un objeto y la variable se hace false, en caso contrario la variable es true.
Al destruir un enemigo debe agregar su id a la lista
ds_list_add( global.mapa[?room], id );

Dejame ver si entiendo, lo que hace es crear un mapa, los cuales van de a pares, no?
Entonces se crea una entrada con el nombre del room, en donde el valor no es más que una lista dinámica?

Me perdí en la parte donde se utiliza esta notacion "global.mapa[?room]" qué significa específicamente? En mis tiempos no se utilizaba (?) XD


41
Preguntas y respuestas / Re:Crear una global por instancia.
« en: Mayo 27, 2015, 06:11:45 pm »
Hola que tal. :D
Bueno mi idea es hacer que los enemigos dentro del juego suelten un determinado objeto, una única vez al matarlos.
Por lo que tenía en mente usar una variable global booleana para saber si ha soltado o no el ojbeto. Pero claro, necesitaría una variable global para cada instancia de un determinado objeto.

Ese es mi problema :-[


42
Preguntas y respuestas / Crear una global por instancia.
« en: Mayo 27, 2015, 04:09:38 pm »
Hola a todos, mi pregunta es sencilla:
¿Se puede crear una variable global única para cada instancia de un determinado objeto?
Si es posible, de qué forma?

Saludos!

43
Ah, ya. Si ese es el caso entonces creo que está bien utilizar variables globales de la forma que pensaba hacerlo.
Siempre creí que era un poco exagerado usar tantas globales pero no por lo visto.

Voy a ver cómo implemento el sistema que tengo en mente, que me pareció buena idea usar arrays.

Como fuera, gracias por las respuestas!  :D

44
Hola a todos, quería saber cómo hacer para que los enemigos te dropeen, hmm, te lancen un objeto una única vez y luego al volver al escenario, esté el enemigo de nuevo pero, que al matarlo, ya no suelte más items.

Pensaba en aplicar una variable global, pero claro, no sé cuánta persistencia tenga dicho tipo de variable dentro de la memoria. Puesto que si se almacenan hasta que finaliza el juego entonces, creo yo, ocuparía demasiado tener una variable global por cada enemigo dentro del juego.

Cuál sería la forma mas optima? :D

45
Juegos en desarrollo / Re:Ilíada Espacial
« en: Mayo 25, 2015, 01:01:30 am »
Opresor! deja de ignorar mi reclamo (???XD

Es que no sé, me parece injusto que teniendo 5 vidas el enemigo siga un patrón de arriba abajo y me tire disparos de recalentamiento y no te deje mover en lo absoluto, es que ni eso, ni reaccionar se puede. Y claro, debes esperar 5 minutos para que se te acaben todas las vidas y puedas perder el juego.  :(

Pues no sé, de todas formas trataré de jugar el nuevo a ver si comento algo, de nuevo, Jaja  XD Suerte! 

Páginas: 1 2 3 4 5 ... 23