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

76
Gracias. Pero como todavía me ando peleando con el GML, aún me cuesta entender ese código (me refiero a la lógica que utiliza). Que seguro será super fácil. En mi juego aún no lo voy a aplicar. Era una duda que tenía de cara a futuros proyectos.

Ahora, cuando el personaje cambia de room (o nivel) sitúo yo su posición dentro de la room. Es decir, colocando yo el obj_heroe dentro de la misma. Pero claro, no es lógico que nuestro personaje este en una parte alta de una room y cuando pase a la siguiente, aparezca por el suelo. Es a lo que me refiero.

Según tu ejemplo, bastaría crear la variable: room_nuevo en el evento create del jugador. Y el resto de código en el evento step del mismo ¿No es así?
77
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?
78
Cita de: vampy09 en Febrero 08, 2014, 07:39:58 PM
Jangse, la aplicacion funciona al 100%.
Gran aporte!
Saludos!

Me alegro que te sea útil. Después de las ayudas que tuve de tu parte con los códigos en GML, es gratificante poder corresponder.
79
Muchas gracias a todos por las explicaciones. Me guardo el post para utilizarlo en un futuro. Que seguro, falta me hará...

Saludos!
80
Yo esa utilidad del GM no la utilizo por que tampoco me convence. Utilizo este software cuando quiero extraer sprites:

http://www.alferdspritesheetunpacker.forkandbeard.co.uk/forkandBeard/apps/AlferdSpritesheetUnpacker/Download.aspx
81
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!
82
También sería buena idea la realización de un juego paso a paso. Eso sí, se podría votar entre los usuarios el tipo de juego hacer. Lo suyo sería hacerlo por medio de GML. Por que a veces, leer las funciones por separado o saber combinar funciones y código para obtener un resultado, es lo complicado.

Tampoco se trataría de hacer tropecientos niveles. Pero sí, la forma correcta de hacer menús, IA, diseño de niveles, inventarios, etc...
83
Cita de: vampy09 en Febrero 03, 2014, 10:05:18 PM
Haz la variable velocidad global:

Creation Code Room

global.velocidad =4;


Evento Other Room Start obj_jugador

speed = global.velacidad;

De esta forma ahora si speed tendra acceso al valor que tenga velocidad.

Gracias! Ahora sí funciona. Aunque si pongo speed = velocidad en el evento create del jugador no la reconoce. Cosa que no entiendo por que también la estamos declarando. Que para eso sirve el create. Pero en el evento Room Start, sí funciona como tu comentabas.

Supongo que el Room Start, inicializa antes esta variable. Y que quizás, el evento create lo hace mas tarde ¿No?

Tampoco puse global.velocidad. Puse obj_heroe.velocidad = 4, en el código de la room. Pero a efectos es lo mismo.
84
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?
85
Cita de: vampy09 en Febrero 03, 2014, 04:38:59 AM
Extracto del manual del GM
"So, for example, the room-start events can use variables set by the creation code for the room..." ( Entonces, por ejemlo, el evento Room Start puede USAR variables inicialisadas por el Creation Code del room...)
Por lo cual segundo a penumbra, deverias inicialisar la variable en el Creation Code del room con la velocidad que deses que el obj_jugador tenga en ese room, esto debes hacerlo con cada room:
velacidad_local = 8; // uso el mismo ejemplo de penumbra :-P

Luego en el evento Other / Room Start del obj_jugador pones:
speed = velocidad_local;

De esta forma la variable speed tomara el valor que tu le hayas asignado a la variable velocidad_local en el Creation Code del room.

He puesto el código que comentas y me sale este error (no reconoce la variable):

ERROR in
action number 1
of Other Event: Room Start
for object obj_heroe:

Error in code at line 1:
   speed = velocidad;
          ^
at position 9: Unknown variable velocidad


Y en creation code de la room he puesto:

velocidad = 4;
86
Cita de: DarkKRuleR en Febrero 02, 2014, 09:22:34 PM
Algo tan sencillo como poner en step del personaje...

[gml]if (room == room0) objPersonaje.velo = 5;
else if (room == room1) objPersonaje.velo = 8;
etc...[/gml]



Es que de esa manera ya lo tenía antes (bueno, parecido). Pero imagina que hay 40 rooms. Hay que encadenar muchos IFs. Pensé que poniendo un switch se resumiría mas.
87
Cita de: 7sixerCF en Febrero 02, 2014, 08:59:03 PM
Man soy nuevo en game maker pero lo que yo aria seria al comienzo del juego crear una variable "Vidas" (ya que no conoso si GM biene con una variable predefinida para saber cuantas vidas tiene el pj) entonces cada vez que el personaje pierda una vida ademas tienes que agregar el evento de set var con el nombre vidas y -1 relativo, de esta forma se restara 1 vida a lo que ya tienes, ademas creas un objet que estara siempre en el juego con un test variable en el event step para comprobar si "Vidas" es igual a 0, si esto es haci pues agregas el codigo o action correspondiente para setear la energia a 0

Gracias por el comentario. Pero gracias a la ayuda de los demás usuarios he podido solucionarlo. Y ahora prefiero dejarlo así. Saludos.
88
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
89
Cita de: vampy09
Osea "congelar" (freeze) el juego mientras que se muestre la caja de texto con el texto
"GAME OVER" hasta que se presione el boton OK de la caja de texto, cuando esto suceda( cklick en Ok) debe reiniciar el juego.

Sí, en post anteriores ya comenté que algo de esto podía suceder. Es decir, que no le diéramos tiempo al código para actualizar la variable.

Cita de: vampy09
El reiniciar el juego, evitaba que el evento DRAW (que va algo despues de ENDSTEP) dibuje en la pantalla el nuevo valor de health.
Esto es algo que debo aprender. Osea, ver la lógica de los Begin step, step y end step. Pero yo, en mi juego, no tengo definido ningún evento end step. Solo step a secas.

Cita de: vampy09Por cierto me gusta mucho el efecto de "scalines" que aplicas al juego.
Saludos !

Gracias. Me gustan los juegos con ese ambiente retro. Osea, que no se muestren con colores demasiado planos. Aunque no me gusta al 100% como queda. Ya trataré de mejorarlo. Ahora prefiero empaparme de código. El apartado gráfico lo encuentro mas sencillo.

Saludos!
90
Cita de: vampy09 en Febrero 02, 2014, 03:08:31 AM
obj_Control.lives = 1;
Significa que a la variable lives del obj_Control se le va ha asignar el valor de 1


Bueno, yo a lo que me refiero es que sin poner delante de la variable lives el obj_control el código me funciona igual. Ya que tanto lives, health, score son tratadas por game maker como variables globales. Y en el step de nuestro personaje pongo así el código y me funciona perfectamente.