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.

Temas - Jangse

21
En algunos juegos antiguos, que no usaban el scroll, el personaje cuando llegaba al final de una pantalla (o nivel) aparecía en la siguiente manteniendo su posición. Es decir, si una room tenía unas plataformas (y estabamos en la superior), el personaje en la siguiente room aparecía en esa plataforma (la superior). Nuestro personaje guardaba su posición de la pantalla anterior y la mantenía en la nueva pantalla.

Pongo un ejemplo de un juego MSX que todos conoceréis:

http://www.youtube.com/watch?v=69TpJpqW7D8

Supongo que habrá que crear alguna variable que guarde la posición del jugador de la room o pantalla anterior ¿No?

¿Es complicado hacerlo en GML?
22
Trasteando con el GML, voy consultando el tema de ciclos, bucles, sentencias y pequeñas porciones de código. Y aunque aún no he llegado al tema de los arreglos o matrices, no se que utilidad pueden tener en GM. O si vosotros las utilizáis mucho.

Y otra pregunta...

¿Que es mejor?

-Grandes porciones de código GML en pocos eventos.
-Trozos pequeños de código en muchos eventos.

Es que a veces veo ejemplos que sube la gente, y los códigos GML tienen un buen puñado de líneas.

Saludos!
23
General / ¿Lo que mas te ha costado aprender de GM?
Febrero 03, 2014, 09:11:17 PM
Pues sí, lanzo esta pregunta para ver que os ha costado mas aprender con este software.

Esta claro, que la programación deber ser lo mas complicado. Pero claro, para quien domine otros lenguajes, el GML deber ser supersencillo.

A mí, lo que mas se me atraganta (aparte de ir aprendiendo GML poco a poco) es saber poner el código en el orden correcto entre eventos. Osea, un orden de los mismos. Por que al poner código en las rooms, en los eventos de personajes, en scripts, etc...si no se hace bien, el juego da error.

No se...¿A vosotros que os da mas problemas a la hora de crear un vídeo juego?
24
Bueno, ya tengo otro lío otra vez. Cuando me empiece a meter con los plataformas ya será para temblar...

El personaje dependiendo de la room donde se encuentre tiene una determinada velocidad. Osea:

speed = 4

Y el código completo de movimiento a la izquierda es:

EVENT STEP

if place_snapped(32,32)
{
    if keyboard_check(vk_left)
    {
        sprite_index = spr_heroe_left;
        direction = 180;
        speed = 4;
    }
}


Pues iluso de mí, había pensado utilizar la sentencia switch de esta manera:

EVENT CREATE

switch (room)

{
    case PLAYA : obj_heroe.speed = 8;break;
    case Nivel_3: obj_heroe.speed = 16; break;
    default: obj_heroe.speed = 4;break;
}


Echo esto, ¿Nuestro código en el evento step lo deberíamos modificar a?:

speed = obj_heroe.speed;

ó

speed = obj_heroe.room;

He probado varias combinaciones. Pero nuestro personaje se mueve muy lento. No a la velocidad de 8 ó 16 del switch

¡¡¡Ya la tengo otra vez liada!!!  >:( XD
25
Hola de nuevo!

Tanto leyendo el manual o post del foro, recomiendan no sobrecargar el evento Step. Por el tema que satura la velocidad del juego. Pero yo, por mas que miro los otros eventos, solo veo este sitio para poner el grueso de nuestro código GML.

Por que claro, en el evento Create se ponen cuatro cosas (Creación de variables o algún movimiento mecánico del enemigo) . Por que es un evento que solo se repite una vez. El Alarm, es eso alarmas y tal. Es decir, no podemos liarnos a meterles Whiles, ifs y demás. Y el Draw, pues eso para dibujar cosas en pantalla y tal. Los otros eventos ya son de tipo teclas, ratón algunos modificadores de rooms.

Y claro, normalmente, un vídeo juego lleva mucho código. Esta claro que este lo repartimos en distintos Eventos. Pero el grueso de ese código solo veo una ubicación y es el Step.

Igual estoy diciendo un sacrilegio y debo ordenar conceptos. Pero cuando veo listados enormes de GML esta claro que no van a ir en un evento Alarm o Draw, digo yo ¿No...?

Alguien me comentó en el foro, que no recomendaban usar nuestros patrones de movimiento en el Step. Pero he podido ver a gente que domina bastante el tema (Por ejemplo Jucarave) que normalmente los pone en el Step.

Por que si no, sería interesante hacer una lista de que poner y no poner en Step. Si no, queda todo muy ambiguo. Y más para los que aprendemos y pensamos que no hacemos algo correcto.
26
Pues eso...

Tengo realizado el típico código para esto. Es decir, tenemos 3 vidas y 100% de energía. Dependiendo el tipo de enemigo, uno resta energía y otro nos quita una vida por colisión.

Cuando la energía llega a cero nos restan una vida. Hasta que tenemos cero vidas y cero energía. Entonces mi código funciona bien. Pero el problema es este:

- Se da el caso que colisionamos con el enemigo que nos resta una vida con solo tocarnos. Entonces, se muestra cero vidas y en muchos casos 100% de energía o menos. Y claro, me gustaría que al llegar a cero vidas nos mostrara como un contador que fuera descendiendo la energía de golpe y acabara el juego.

No tiene mucho sentido tener cero vidas y con la barra de energía a tope ¿No?

Tengo este código en event Step:

if  lives := 0 then
    begin
        health := 0;
        show_message('Game Over. Puntos: ' + string(score));
        game_restart();
    end;



En el event Draw, esta el código que muestra los valores de Vida, Energía, Puntos, etc...

draw_text(view_xview[0]+32,view_yview[0]+440,'Energia: ' + string(health));
draw_text(view_xview[0]+32,view_yview[0]+460,'Vidas: ' + string(lives));



Tampoco entiendo por que la función draw_text tiene como argumento final string ¿No debería ser una variable numérica?
27
Me han surgido unas dudas...

Me gustaría saber cual es la metodología correcta para programar los eventos y acciones (GML) en GM. Por ejemplo, cuando ponemos el evento de colisión con el enemigo. Se puede poner event colisión en el enemigo contra nosotros. O bien, poner el event colisión en nuestro personaje pero que colisiona contra el enemigo. A la postre, es lo mismo ¿Pero cual es la forma correcta?

Otra duda, es, donde poner el control de vidas, puntos, energía ¿En el objeto personaje? ¿O crear otro objeto controlador? Por que hay gente que pone este control en el personaje. Pero luego tiene un lío de narices cuando cambia de room y tal (Como le paso a un servidor). Por eso, me gustaría saber si hay un patrón donde es mejor ubicar estas cosas.

Por que según lee uno, mucha gente pone el código en un step, otros en un draw o en un create. Y uno no sabe donde poner el suyo.

Saludos!
28
Estudiando el GML, se puede caer en el error de crear código que ya existe como función. Normalmente, dependiendo del vídeo juego que vayamos a crear se necesitaran unas u otras. La cosa está, que sí, me leo las funciones pero no me imagino como se pueden implantar en un juego. La mayoría de ellas vienen con una descripción de una línea y se me hace complicado.

Me gustaría saber, cuales son las que mas se utilizan. Supongo, que muchos de vosotros, algunas de ellas ni las habréis utilizado.

Ya sé, que cuando se hace una pregunta de estas en el foro se suele responder: 'Todo esta en el manual'. Y es cierto. Pero no vendría mal, tener un apartado en el foro sobre funciones. Para mí, importantisimas. Y con algunos ejemplos prácticos en la utilización de un vídeo juego.

Esta claro, que hay muchas que son muy fáciles o evidentes. Pero otras, cuesta ver la aplicación práctica si no es con ejemplos.

Cada uno podría poner una función y explicarla de la mejor manera posible con un ejemplo con código. Como titulo al post, se podría poner el nombre de esa función y entre corchetes su clasificación (Teclado, movimiento, rooms, etc...).

Dentro de la sección de Funciones.Se podría crear 5 o 6 subforos para dividir dichas funciones.

No sé, yo creo que es buena idea.

29
Estoy haciendo un maze. Utilizo los eventos predefinidos y las acciones con códigos GML. Pues bien, gracias al usuario Black_Cat ya conseguí que el personaje se moviera por la cuadricula. Pero ahora, he creado a un enemigo que le pongo como acción que nos siga. Para eso utilizo en el event step:

action_potential_step(obj_heroe.x,obj_heroe.y,1,0);

Y bueno...nos sigue de una forma un poco errática. Osea, evitando los muros y tal. Pero no lo hace de 32x32. Si no, de forma mas "libre".

Cuando nosotros nos metemos entre los pasillos (ya que el maze hay espacios sin muros) al enemigo le cuesta entrar. Supongo, por no estar alineado en el grid como nosotros.

He ido probando cosas con el if y el place_snapped(32,32) pero no consigo frutos. Intentaba meter un código parecido de nuestro personaje principal al enemigo. Pero veo que no cuela... :'(
30
Me gustaría ver como se aplica (o en que es bueno aplicarlo) un ciclo for en GM. Osea, para que se suelen utilizar en un vídeojuego. Gracias!
31
Estoy estudiando el event draw. Y por lo que veo, hay cosas que solo funcionan si van dentro de el.
Osea, si en un objeto en su event step o collision hacemos: draw_text no funcionara.

Para que lo haga, hemos de meter esa condición o código en un event draw de ese objeto.

Entonces como se haría (en GML) para que al colisionar un objeto A y uno B, mostrara un mensaje en pantalla (con draw_text).

Yo había pensado poner este código en un event draw del objeto A (No os riais...!!!  :-[):

if (obj_A) ev_collision with (obj_B) then
    draw_text ('lo que sea...');


Que en mi surrealista lógica sería:

Si el objeto A colisiona con el objeto B entonces escribe en pantalla 'lo que sea...'

Pero el editor de Game Maker ni se lo cree...


Es que todavía no le cojo el truco a lo que se puede y no se puede con este lenguaje. Yo tiendo a scriptear con Pascal. Pero bueno, es lo menos. El problema, creo, que no me permite ejecutar ese código.
32
Pues empiezo a tener mis dudas. Por que declaro variables locales en el personaje, y luego, si creo un objeto controlador (donde van vidas, scores, energia, draws, etc...) no me reconoce ni una.

O como otra opción, colocar los controles de vida de personaje (puntuaciones y demas) en él.

No entiendo que mucha gente crea un nuevo objeto controlador para llevar marcadores ¿No es mejor crearlo todo dentro de nuestro objeto personaje jugador? Así, las variables si pueden ser locales.

Si se empieza a crear objetos para cada cosa del juego, entonces, deberemos por norma crear todas las variables globales ¿No es así?.
33
Estoy con el GML y entre estos dos eventos me surgen dudas. Me gustaría saber que acciones son las correctas que deben ir a esos eventos.

Con el Create lo normal es definir variables. Y en Step los movimientos del personaje y acciones que se repiten durante la ejecución del juego. Por lo tanto, en Create pocas acciones pueden ir no ¿No?

Ademas, si es un enemigo en Create van los movimientos. Pero si es el personaje principal, los movimientos van en Step.

Dependiendo el objeto me surgen dudas en que evento colocar el código o acciones ¿Hay alguna regla fija?

También hay usuarios que meten todo en Step. Osea, colisiones, movimientos, IA, etc...¿Es aconsejable?

Saludos!
34
Pues tengo esta duda  ???

Cuando se utiliza el GML, se recurre al botón de Exacute code para ir poniendo funciones y código. Pero no sé cuando se deben dejar de utilizar los event por defecto y hacerlo todo en código. Me explico...

Estoy haciendo un laberinto. Los movimientos del personaje están en el event STEP. Osea, todos ellos (left, right, up y down). No he recurrido a los event keyboard.

En la colisión con los muros si he recurrido al event collision y he puesto un execute code de:

motion_set(360,0)

La duda me surge ahí...

¿No debería haberlo hecho todo por código? Osea, eliminar el event collision y hacer todo eso en un step. De no ser así ¿Para que están entonces las funciones collision? Por que con un motion_set lo he arreglado todo.

La gente que habitualmente programa juegos con GML ¿Que eventos utiliza?

Es que tengo un lío mental de que códigos podemos poner en los eventos step y cuales no.

¿Recomendáis no utilizar ningún D&D y en cambio sí los event predefinidos?

Es que he notado que un simple botón de D&D no solo lleva una línea de código, si no que puede llevar varias. Y claro, es en esa construcción de líneas donde yo fallo. Y eso, no lo aprendo solo mirando el manual y la explicación de sus funciones. Si no, que es la combinación de estas lo que dan un simple botón de D&D ¿No?
35
Preguntas y respuestas / Ajustar al grid con GML
Diciembre 26, 2013, 08:21:26 PM
Hola!

Pues antes de preguntar (y que aun no domino GML) le he estado dando vueltas. Y también me he mirado el tema de funciones y tal. Pero claro, no sé cual aplicar o en que evento situarla.

Quiero que el personaje al parar se sitúe correctamente en el grid (32x32). De esa forma, no se queda trabado entre los muros del laberinto. Hace tiempo me salio por medio de D&D. Pero con GML no me aclaro.

En el evento step he creado este code:

if keyboard_check(vk_left) then x-=4;
if keyboard_check(vk_right) then x+=4;
if keyboard_check(vk_up) then y-=4;
if keyboard_check(vk_down) then y+=4;


Y por lo que he leído hay que utilizar la función:

move_snap(hsnap,vsnap)

En otro vídeo que he visto primero lo chequean con:

if (place_snapped(32,32))

Pues todo esto no se como ubicarlo para que funcione  :-[
36
Creo que hace un tiempo lo pregunte. Pero no se explico bien como se conseguía este efecto (o yo no lo entendí). Me refiero paso a paso para aprendices absolutos  XD

Ahora estoy jugando algunos juegos con emuladores. Para inspirarme y tal. Por aquella epoca (juegos años 80/90) se basaban en plataformas, run and gun y shooter maps. Que a la postre, son lo que mas me gustan. Cuando vinieron las consolas de 16/32 bits, ya se empezó con las 3D y me aburrí como un enano. Esta claro que son muy buenos juegos y tienen un enorme público. Pero claro, para gustos los colores.

Viendo esos vídeo juegos de los años 80/90 de la NES, la SNES, MAME, etc...(que algunos son mas difíciles que los actuales  :-[) me gusta el efecto de vídeo scanline. Osea, que no se ve el color plano. Si no, dividido por esas franjas semi invisibles que dividen los pixels.

Algo como esto pero aplicado en Gamemaker: http://www.pixelsmil.com/2011/04/tutorial-anade-scanlines-tus-imagenes.html

Saludos y buenas fiestas!
37
Preguntas y respuestas / Algo liado con el GML
Septiembre 23, 2013, 09:24:26 PM
Todavía ando mas liado que la pata de un romano con el GML. Se supone, que aunque suelen decir que es fácil, se necesitan unos fundamentos de programación para pillar el truco. Por que poner un simple 'execute code' para mi no es programación. Bueno, si lo es, pero muy básico.

Leyendo el manual aclaran que es una mezcla entre C++ y Delphi. Pero claro, estos lenguajes tienen su sintaxis definida. En cambio, en GML, no se cuales son todos los comandos que se pueden usar. Si claro...los for, if, return, etc. Eso están claros ¿Pero cuales mas se pueden usar y como?

En el manual, te pone los básicos. Pero supongo que debe tener muchas mas sentencias o sintaxis.

Esta claro que tengo ganas de utilizar GML. Pero tengo la duda que solamente poder utilizar el 20% del mismo si no conozco toda la sintaxis que acepta el GML.

38
Estoy haciendo el típico juego de maze para novatos integrales. Y me surge la duda de como activar este tipo de enemigo. Osea, que este durmiendo (Como el famoso dragón en su cueva) y cuando estamos cerca de la entrada se despierte y nos empiece a perseguir como un mal bicho.

Como de IA no tengo ni idea, la persecución que haría el dragón seria con la acción Step Avoiding. De la pestaña Move.

Había pensado que se chequeara nuestro personaje con un pixel dentro de una coordenada. Pero seria demasiado preciso. Entonces se podría crear un objeto, ponerlo delante de la puerta de la cueva y hacerlo invisible. Cuando se hiciera la colisión el dragón se pondría de malas pulgas y nos perseguiría.

Algún consejo para llevar esto a cabo?
39
Cuando hacemos los primeros juegos con GM nos conformamos con que se pongan los puntos, vidas, barras de energia, etc...en la esquina superior izquierda y ya nos vale. Pero me gustaría que mi juego tuviera un aspecto mas profesional y se eliminara la ventanita de guindous y que se creara un marco en el mismo.

Me refiero a esto (El marco azul es lo que rodea la escena). El marco azul se queda fijo y se desplaza la pantalla dentro de el. Este marco también incluye los marcadores y otras cosas que deseemos poner.

Ejemplo:


40
Hace tiempo solucione el tema de la barra de energía. Osea, que cuando nos desplazamos, esta se mantiene en la esquina superior izquierda (o donde la ubiquemos). Pero ahora he creado las vidas y los puntos mediante el Draw y desaparecen de la vista cuando nos movemos.

Con la barra de energía salen parámetros para que nos sigua y tal. Pero con Draw no puedo configurar eso. Solo la ubicación de X e Y.