Al navegar por la sección de preguntas y respuestas del foro, me doy cuenta que la gran mayoría de preguntas se solucionan con el uso práctico de funciones, osea la solución era usar tal función en conjunto con las variables de quien realiza la pregunta.
Bueno, el no uso y mal uso de las funciones del GM es algo común en las primeras etapas. Y esto lo se, porque cuando yo inicie con el GM, yo no tenia ningun conocimiento de lógica para computación.( eso que nos ayuda a crear lindos algoritmos ) Por tanto, se que la mente de una persona que usa el GM en esa etapa y no tiene conocimientos en programación, es el de tratar de crear su algoritmo ( código ) practicamente desde cero. Lo cuál no esta del todo mal, pero si se desea avanzar y sacar "el jugo" al GML, debemos inicialmente incluir el uso de funciones de una forma más habitual y progresiva.
Como ejempo tomo la siguiente pregunta, realizada por [user] _-Caleb-_[/user] : "Boundary Views..¿ Que estoy haciendo mal?
http://www.comunidadgm.org/preguntas-y-respuestas/boundary-views-que-estoy-haciendo-mal/msg94227/#msg94227
En ella el compañero deseaba una manera que los enemigos se empezarán a mover solo si se encontraban dentro de la view.
Una de las respuestas fue de [user]ivn_eze[/user], ( lo siento serás mi conejillo de indias ;D ) y de forma general proponia lo siguiente:
"poner objetos cuadrados y trasnparentes del tamaño de la room a los objetos y al jugador, y que el que tuviera el jugador lo siguiera y cuando este objeto colisionara con algun otro objeto se empezara a mover"
Aunque la respuesta para mi es muy ingeniosa e imaginativa, es algo complicada.
El problema aqui es que se puede lograr lo mismo y algo mas con el siguiente código, que como observarás esta formado con dos funciones:
Aclaro:
Yo fue quien posteo el código de arriba como respuesta y este ejemplo NO ES para vanagloriarme ni mucho menos, si no para que te des cuenta de como aveces pensamos y hasta nos complicamos cuando no usamos funciones.
Porque, repito, el pensamiento que realiza [user]ivn_eze[/user] es sumamente ingenioso, pero te pregunto: que pasaria si combinaramos este ingenio con las funciones pre-fabricadas del GM?
El cielo es el limite!
En gran medida este "desperdicio de habilidad" sucede por algo que [user]penumbra[/user] ha repetido varias veces: no leemos el manual del GM! (de donde crees que saque mi respuesta!)
Porque tal vez no lo creas pero en el encontraremos pequeñas llaves con las que, en la mayoria de veces, podemos abrir esas puertas que bloquean la creación de nuestro juego.
Me gustaría agregar mas ejemplos, pero no me gusta hacer los temas muy largo, así que si deseas poner un ejemplo que demuestre el poder de las funciones eres libre de hacerlo.
Saludos!
Bueno, el no uso y mal uso de las funciones del GM es algo común en las primeras etapas. Y esto lo se, porque cuando yo inicie con el GM, yo no tenia ningun conocimiento de lógica para computación.( eso que nos ayuda a crear lindos algoritmos ) Por tanto, se que la mente de una persona que usa el GM en esa etapa y no tiene conocimientos en programación, es el de tratar de crear su algoritmo ( código ) practicamente desde cero. Lo cuál no esta del todo mal, pero si se desea avanzar y sacar "el jugo" al GML, debemos inicialmente incluir el uso de funciones de una forma más habitual y progresiva.
Como ejempo tomo la siguiente pregunta, realizada por [user] _-Caleb-_[/user] : "Boundary Views..¿ Que estoy haciendo mal?
http://www.comunidadgm.org/preguntas-y-respuestas/boundary-views-que-estoy-haciendo-mal/msg94227/#msg94227
En ella el compañero deseaba una manera que los enemigos se empezarán a mover solo si se encontraban dentro de la view.
Una de las respuestas fue de [user]ivn_eze[/user], ( lo siento serás mi conejillo de indias ;D ) y de forma general proponia lo siguiente:
"poner objetos cuadrados y trasnparentes del tamaño de la room a los objetos y al jugador, y que el que tuviera el jugador lo siguiera y cuando este objeto colisionara con algun otro objeto se empezara a mover"
Aunque la respuesta para mi es muy ingeniosa e imaginativa, es algo complicada.
El problema aqui es que se puede lograr lo mismo y algo mas con el siguiente código, que como observarás esta formado con dos funciones:
Código [Seleccionar]
{
instance_activate_all();
instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview
[0],false,true);
}
Aclaro:
Yo fue quien posteo el código de arriba como respuesta y este ejemplo NO ES para vanagloriarme ni mucho menos, si no para que te des cuenta de como aveces pensamos y hasta nos complicamos cuando no usamos funciones.
Porque, repito, el pensamiento que realiza [user]ivn_eze[/user] es sumamente ingenioso, pero te pregunto: que pasaria si combinaramos este ingenio con las funciones pre-fabricadas del GM?
El cielo es el limite!
En gran medida este "desperdicio de habilidad" sucede por algo que [user]penumbra[/user] ha repetido varias veces: no leemos el manual del GM! (de donde crees que saque mi respuesta!)
Porque tal vez no lo creas pero en el encontraremos pequeñas llaves con las que, en la mayoria de veces, podemos abrir esas puertas que bloquean la creación de nuestro juego.
CitarDado que el GM tiene tantos años de haberse creado, muchas de las posibles situaciones que podamos enfrentarnos en la creacion de un juego, ya han sido de una manera solucionadas por otras personas. El codigo que he puesto es de esos codigos ( smart codes ) que deben estar en el block de notas de todo usurio del GM.
Date cuenta que al contrario de los graficos o el sonidos, el codigo puede y debe ser reutilizado y tampoco es necesario que sea 100% creado por uno mismo.
Para mi, tu dominio del GML dependera de cual habil seas en combinar funciones con las estructuras de control ( if, switch, while, do-while, for, repeat) "sazonandolas" con elementos de Programacion Orientada a Objetos ( principalmente herencia ).
Me gustaría agregar mas ejemplos, pero no me gusta hacer los temas muy largo, así que si deseas poner un ejemplo que demuestre el poder de las funciones eres libre de hacerlo.
Saludos!