Noticias

¡Ayuda a la Comunidad GM, haz una donación!

* Sponsor

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

Páginas: 1 2
1
Juegos completos / Re: Agua pal pueblo
« en: Junio 08, 2021, 06:30:40 pm »
Me parece excelente el juego, cero que cumple con el objetivo de concienciar, los diálogos me parecen los justos y la movilidad no se siente tosca de ningún modo. Lo único malo que me pasó fue que me quedaron ganas de seguir trayendo agua.

2
Desarrollo de Scripts / Re: point_distance y point_direction
« en: Junio 05, 2021, 09:16:47 am »
jojojo, un par de scripts solo para practicar, me da gusto que los compartas. Tengo un par de tips.

La primera cuestión, es que en ambos scripts estás usando el valor absoluto, en el caso de calcular la distancia no es necesario usarlo, puedes tratar quitandolo y no va a alterar tu código, eso es por que al elevar un número al cuadrado se vuelve positivo. Otra cosa es que en ese script usas la función power, me parece que game maker tiene una función sqr que eleva al cuadrado directamente, pero si no, no es necesario usarla puedes hacer la multiplicación allí de corrido, te digo por que seguro es un poquititín más optimo que usar la función de power que al ser más general, seguro come más.

En el script de calcular la dirección encuentro varios comentarios que podrían serte de utilidad. El primero sería que en el if de cuando la medidadX es 0, ya le pongas un return que mande 90 grados si es para arriba y -90 si es para abajo, creo que eso se vería más pro que el truquillo que usaste xp, igualmente está bien.

Otro de optimizan sería que no utilices strings para nombrar los cuadrantes, entiendo que lo haces por legibilidad pero cuando menos lo consideraría una mala practica y es poco menos eficiente el comparar cadenas que simplemente números, y también guardarlas. Lo mejor si quieres legibilidad seria hacer un enumerador, y poner para una entrada para cada cuadrante, si no pues usar números, al fin y acabo eso son. También me da algo de curiosidad que hayas decidido añadir lo del chequeo de cuadrantes en dos partes, cuando pudiste haberte evitado todo eso y directamente hacer las sumas de ángulos, literal esos 8 if se podrían transformar en 4 y sin hacer comparaciones innecesarias.

Por último y lo más importante creo, es que también con esto de usar los valores absolutos te pierdes de algo interesante en el script que devuelve el ángulo y es que la función del arcotangente también sirve para valores negativos!, concretamente cubre los cuadrantes 1 y 4, de modo que si quitas esos valores absolutos solo tendrías que hacer un if para revisar si está del lado derecho o del izquierdo (en los cuadrantes 2 y 3) y en tal caso sumarle los 180 grados.

mmm también existe una función llamada arctan2, que ya funciona para todos los cuadrantes, pero bueno esa ya sería como algo de trampa si lo que quieres hacer es entrarle a lo manual.

3
Preguntas y respuestas / Re:MANTENER NUMERO DE OBJETOS EN ROOMS
« en: Febrero 21, 2018, 07:07:40 am »
Puedes hacer persistentes las rooms pero no seria recomendable ya que tienes que darle estudio a esa funcion para poderla trabajar si no te liaras del todo  ;D
Pero si es una muy buena opción.... En mis tiempos este era el modo por defecto para hacer eso. No hay que dar tanto estudio nomas le das click a la opción de room persistene (en settings de el editor de rooms) y ya cuando salgas de una room esta se mantendrá tal y como la dejaste.

4
Preguntas y respuestas / Re:nueva actualizacion de 1.4
« en: Febrero 21, 2018, 07:03:04 am »
Vieron la nueva actualizacion del 1.4 quitaron la ex`portacion a windoms8, windons phone8, tizen haha supongo que esta sera la ultima :-X
¿Pero alguien realmente apuntaba a alguno de esos exportes? Nunca he visto un tizen en mi vida. Windows 8 acepta el exporte de windows normal y windows phone está fuera de desarrollo desde hace varios meses... Y lo peor que si se quieren bajar una versión más vieja nomas le dan click a las release notes y allí hay link a las últimas 10 versiones....

5
Preguntas y respuestas / Re:Crear una Room de forma diferente
« en: Febrero 19, 2018, 09:09:21 pm »
por cierto yo mismo estoy haciendo mi herramienta para crear objectos 3D pero mi pregunta es como guardo esos objectos como si fuera hecho en una room predeterminada XD
Si esa es tu pregunta deberías hacerla en un nuevo tema y siendo muy especifico en cuanto a que deseas guardar. La cosa puede variar entre usar buffers o simples archivos .ini.

Jajajaja Bueno amigos les dire la verdad para ser un developer in 3D no se necesita un unity3D o otros motores porque todos pueden tener solo herramientas que facilitan las cosas y eso lo que hace es que los demas creen unos juegos mas cacas que los que hay ahora, se que eso favorece al programador pero esto que tambien es un reto que me coloque en hacer una combinacion de minecraft con mi serie favorita the walking dead hecho en game maker luego podre probar otro motor si comienza a tener apoyo pero solo es un reto.  ;D
Si habiendo un tractor decides usar el martillo y cincel de gm para hacer un túnel es tú decisión  ;).

6
Preguntas y respuestas / Re:Crear una Room de forma diferente
« en: Febrero 18, 2018, 06:05:53 am »
Pues hay un editor de rooms que se ve muy bueno, pero es re-caro se llama pushed.


Por otra parte estoy con @Yuzo las herramientas 3d que hay disponibles actualmente son incomparables con el nivel que tiene GM (aquí lo digo para mal de gm). Hacer 3d en game maker es un reto puede ser """divertido"""" y con shaders se podrían hacer cosas de nivel pero en mi opinión no vale la pena más que para experimentación y aprendizaje (aprender 3d con gm te obliga a ciertas cosas manuales que a veces es necesario conocer y que también te pueden ayudar con el 2d (juegos isometricos o 2.5d o efectos) ).

7
Juegos completos / Re:Rabbit's Quest [Estilo 8-bit]
« en: Febrero 18, 2018, 05:19:50 am »
Oigan no he podido salir de el segundo cuarto. Hay un mensaje que dice. "Something is blocking the door" y ya, no sé que más hacer, me pasé varios minutos jugando y nada encontré que me pudiera sacar de allí  :o...

8
Juegos en desarrollo / Re:Gravity Box
« en: Enero 16, 2018, 08:35:28 pm »
Lo poco que entendi (ya que no entendi muy bien como lograr los objetivos XD) se me hizo bastante interesante, muy buenos graficos, las mecanicas se me hicieron curiosas, musica agradable y tiene soporte para controles genericos y de playstation, hacen falta que hayan mas juegos con ese soporte, como que ya enfada jugar con puras teclas :v
De hecho, eso de los inputs genéricos debería venir con soporte por defecto en todo juego moderno y más cuando los controles de play 4 los detecta como tales. He pensado en hacer una librería simple para que los joysticks queden configurados de una y el jugador pueda seleccionar siempre el tipo de control que va a usar. Para que ni el juego más simple tenga la excusa de que nomas se juega con teclado.

¿como que no haz entendido como lograr los objetivos? el objetivo es poner una caja en el centro siempre xP, aunque a veces necesitas llaves...

@codarck: Ya vas disfruta!

9
Preguntas y respuestas / Re:No se que hacer
« en: Enero 06, 2018, 04:21:13 pm »
Creo que es cierto lo que dice yokaiworld pero supongo que tambien puedes pedir a alguien que exporte por tí.

10
Preguntas y respuestas / Re:¿Esto no produce un bucle de memoria?
« en: Enero 06, 2018, 03:30:15 am »
Si siempre se guarda en el mismo archivo no se consumirá más memoria.
Pues lo tengo como "guardar.sav" ¿no estaré creando infinitamente ese archivo? ya que no tengo ningún comprobante que elimine el ultimo "guardar.sav", por eso creo que este código esta incompleto, por el bucle.
Sí hombre, eso solo reemplaza el archivo no habrá ningún problema... como ya dijo @Clamud.

¿Pero porque no pones mejor una alarma que guarde tu juego cada cierto tiempo? no creo que sea optimo guardar el juego en cada colisión, o tal vez que si colisionas sí guarde pero no pueda guardar más de una vez cada 5 segundos, algo por allí...

11
Buenas somnus, yo tuve está misma duda años atrás para lo granaderos de GravityBox. Ahora publiqué el juego échale un vistaso! http://www.comunidadgm.org/juegos-en-desarrollo/gravity-box/.

Hay varios puntos, para empezar hay dos soluciones para dar a un objetivo con un tiro parabólico. La una haciendo que el ángulo sea constante pero se dispare más lento o rápido y la otra es haciendo que la velocidad sea constante y solo se cambie el ángulo al correcto para dar al objetivo. Por supuesto, ambas pueden fallar dependiendo del objetivo.

Tenemos la ecuación de movimiento parabólico (sin cosas locas como fricción del viento u gravedad no constante):
Código: [Seleccionar]
x=x0 + v*cos(d)*t;
y=y0 + v*sin(d)*t + 1/2*g*t^2;
La parte horizontal es un polinomio que se divide en dos partes independientes una de la otra, la una constante "x0" y la otra lineal "v*cos(d)*t". "x0" indica la posición inicial y la parte lineal indica la posición a través del tiempo que es una linea recta descrita por el componente horizontal  "cos(d)" del ángulo en que se disparó, la velocidad "v" y el tiempo "t".

En la parte vertical tenemos un polinomio en principio más o menos igual al otro, excepto que aquí usamos la componente vertical del ángulo "sin(d)". También la cosa cambia porque aquí se usa la fuerza aceleratoria de la gravedad que es descrita por el producto cuadrático "1/2*g*t^2". Este es un polinomio cuadratico.

(aquí me salgo del tema, pero...) Las aceleraciones son cuadraticas porque si la velocidad cambia la posicion del objeto a traves del tiempo, la aceleracion cambia la velocidad del objeto a traves del tiempo. Entonces si lo vemos desde la perspectiva de la posicion esto es el cambio de un cambio ¡algo cuadratico!.

Lo que tenemos que hacer es encontrar el ángulo con que tendría que ser lanzada la bala para dar en el blanco. O bien la velocidad con que tendría que ser lanzada, así que no nos sirve de nada el tiempo. Hay que juntar las dos ecuaciones de tal modo que nos deshagamos del tiempo. Nos queda lo siguiente:

Código: [Seleccionar]
//Primero despejamos el tiempo (t) en la primera ecuación
x=x0 + v*cos(d)*t;
x-x0=v*cos(d)*t;
t=(x-x0)/(v*cos(d));

//Ahora reemplazamos t en la segunda...
y=y0 + v*sin(d)*(x-x0)/(v*cos(d)) + 1/2*g*( (x-x0)/(v*cos(d)) )^2;
//igualamos a 0:
y0-y0 + v*sin(d)*(x-x0)/(v*cos(d)) + 1/2*g*( (x-x0)/(v*cos(d)) )^2=0;

Y bueno haciendo algo de álgebra ::
Código: [Seleccionar]
//simplificamos mágicamente
(y0-y) + tan(d)*(x-x0) + g/(2(v^2)) * (x-x0)^2 * ( (tan(d)^2) + 1) = 0;
//Hacemos el producto:
(y0-y) + tan(d)*(x-x0) + g/(2(v^2)) * (x-x0)^2 + g/(2(v^2)) * (x-x0)^2 * tan(d)^2  = 0;
dividiendo entre (x-x0):
(y0-y)/(x-x0) + tan(d) + g/(2(v^2)) * (x-x0) + g/(2(v^2)) * (x-x0) * tan(d)^2 = 0;
//ahora acomodamos y observamos que (y0-y)/(x-x0) es la tangente del ángulo (a) entre el punto inicial y el objetivo

así que taran! nos queda la ecuación cuadrática final:
g/(2(v^2))*(x-x0) * tan(d)^2 + tan(d) + tan(a) + g/(2(v^2)) * (x-x0)  = 0;
donde:
A= g/(2(v^2))*(x-x0);
B= 1;
C= g/(2(v^2))*(x-x0) + tan(a);




De allí listo, usando la formula general salen dos soluciones, una o ninguna. Si te salen 2 una te da una parábola muy alta, así como disparando al cielo y esperando a que caiga mil años después en el punto exacto y la otra bajita y más directa. Todo eso está aquí (con algo de historia y un poco más claro) en el foro de matemáticas en que me ayudaron años atrás http://rinconmatematico.com/foros/index.php?topic=77776.msg310558#msg310558.

Y bueno si creías que ya todo había terminado, pues no! aún queda la solución de si ya tienes el ángulo bien definido pero quieres variar la velocidad para dar al enemigo:

usando la ecuación cuadrática final anterior:
Código: [Seleccionar]
g/(2(v^2))*(x-x0) * tan(d)^2 + tan(d) + tan(a) + g/(2(v^2)) * (x-x0)  = 0;
Luego solo cambiando de lugar haciendo álgebra:
g/(2(v^2))*(x-x0) * tan(d)^2 + g/(2(v^2)) * (x-x0)  = - tan(d) - tan(a) ;
g/(2(v^2)) * (x-x0) * ( 1 + tan(d)^2 ) = - tan(d) - tan(a) ;
g/(2(v^2))  = (-tan(d) - tan(a)) / ( 1 + tan(d)^2 * (x-x0) ) ;
1/2*g/(v^2)  = (-tan(d) - tan(a)) / ( 1 + tan(d)^2 * (x-x0) ) ;
v^2=(g/2)/ (-tan(d) - tan(a)) / ( 1 + tan(d)^2 * (x-x0) );

Al final nos queda esto:
v = sqrt( ( g*( 1 + tan(d)^2 * (x-x0) ) )/  (-2 * (tan(d) + tan(a)) )  );

HAY QUE RECORDAR QUE tan(d) es distinto a tan(a), tan(a)=(y-y0/x-x0) es la tangente del ángulo entre tú y el objetivo. Mientras que tan(d) es la tangente del ángulo al que disparas.

Suerte!

12
Para empezar tu código no hace múltiples objetos, puedes usarlo cuantas veces quieras y no tendrás ningún problema de miles de instancias, la función draw_sprite dibuja un sprite en la pantalla durante el step o frame actual y nada más, como el evento draw gui se ejecuta todos los steps o frames entonces tus sprites son dibujados cada frame.

Ahora de que tu método no es nada optimo no lo es, lo natural sería tener sprite de un solo corazón partido en cuatro y re-dibujarlo cuantas veces sea necesario para llenar la vida, pero bueno para hacer tú codigo un poco más optimo sin cambiar nada solo tienes que ponerlo así:

draw_sprite(spr_HUD_Vida_Red_Heart, 12-global.vida,72,16)

if global.vida <= 0
{
    global.vida_npc = 0
    effect_create_above (ef_explosion,x,y,0,c_purple);
    audio_play_sound (snd_Risa_Malvada,50,false);
    instance_deactivate_object(obj_Bola_Orbital_Triple);
    instance_deactivate_object(obj_Bola_Orbital_Estrella);
    instance_deactivate_object(obj_Escudo_Protector);
    instance_deactivate_object(obj_Rayo_Esfera);
    instance_deactivate_object(obj_Tiempo);
    instance_deactivate_object(obj_Modo_Contra_Reloj);
    instance_deactivate_object(obj_NPC_Espectador_amigo);
    instance_deactivate_object(obj_NPC_Cazador_amigo);
    instance_deactivate_object(obj_NPC_Caminante_amigo);
    instance_deactivate_object(obj_NPC_Caminante_Amigo_Plataforma);
    instance_deactivate_object(obj_NPC_Merodeador_amigo);
    instance_deactivate_object(obj_NPC_Centinela_amigo);
    instance_deactivate_object(obj_NPC_Infernal_amigo);
    instance_destroy()
}

13
Juegos en desarrollo / Re:Gravity Box
« en: Diciembre 09, 2017, 08:11:09 pm »
Jaja gracias TheWood y los siento por lo de tus amigos  :-X, mínimo ahora te doy razones para que consigas  XD.

Contestando a tus preguntas:
Respecto al sonido del fuego, estoy de acuerdo, luego el juego se llena de molotovs y se rejunta todo, en un principio con una sola bomba sonaba decente. Así que en todo caso veremos como cambiar esa molestia.

Respecto a lo de los lanza molotovs en otras gravedades, es completamente apropósito, se supone que te motiva (obliga) a cambiar de gravedad, al principio no encontrábamos buenas razones para esto y terminamos por añadirlos a ellos. Lo de las llaves creemos termino por solucionar el problema y las distintas formas en el escenario ayudan también a motivar al cambio, pero no estamos del todo seguros.

14
Preguntas y respuestas / Re:¿Como se compran cosas en GM;S?
« en: Diciembre 07, 2017, 09:01:50 am »
Creo que tu pregunta está mal formulada. No son cosas lo que quieres comprar, sino licencias.

Pues efectivamente GMS 1 dejó de comercializare. Una pena, porque GMS 2 no tiene nada de novedoso que a merite pagar una exorbitante cantidad de dinero que es lo que cuestan sus licencias.

Realmente, no hay ningún juego en GMS 2 que no lo puedas hacer con GMS 1.

GMS 2 no ha evolucionado en francamente nada. Solo tuvo un lavado de cara y algún que otra función novedosa pero nada del otro mundo.

La verdad que es una pena que no siguieran vendiendo el gms:1 un poco más de tiempo. Pero respecto a los cambios, hubo cientos de mejoras de gms:1 a gms:2 y yo estoy seguro que vale la pena actualizar, especialmente porque gms:2 sigue en desarrollo y vendrán mucho mejores cosas que eran imposibles de hacer en esa vieja coraza escrita en delphi que tenia gms:1 y que llevaba arrastrando y tratándose de quitar desde hace años, hasta donde sé era la misma fuente escrita para gamemaker 1 con miles de parches...

15
Oh ok, sí acabo de verlo, el link que das a la referencia en https://bygdle.xyz/gamemaker/manual/ es difícil de diferenciar de un título y no lo vi la primera vez.

Entonces por mail platicamos para organizar como trabajaremos. Por cierto que vi que existe la posibilidad de traducir gms:2 mediante paquetes de idioma. Eso sí, no recuerdo donde lo leí, pero es algo a considerar si se logra terminar este manual. Me emociona que se traduzca esto, la verdad que a mi me ayudo muchísimo el manual en español que está traducido y creo que es de la versión 6.1 jaja, que chido poder ayudar. Bueno en todo caso buenas noches, yo creo que ya mañana veo el tema (te mando un mp).

Páginas: 1 2