¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3602 miembros registrados.
El último usuario registrado es Aleneki.

Nuestros miembros han publicado un total de 81405 mensajes en 11501 argumentos.
Navega con Google Chrome
[DESCARGA]

[RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Ver el tema anterior Ver el tema siguiente Ir abajo

[RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por mrhawi el 2011-10-19, 16:44

Bueno hoy me desperté temprano para nada y en el rato ocioso que estuve, se me ocurrió hacer un tutorial de ésto, porque no he visto tutoriales sobre éste apartado de éste maker en internet, o al menos no una aplicación, y creo que muchos se habrán preguntado para qué diablos me servirá esto?:



Bueno, yo cuando empecé a trastear con las variables del maker, me pregunté en su momento, ¿Habrá alguna manera de manejar las variables del maker, mediante variables?, y la respuesta es sí, y es precisamente utilizando lo que he mostrado en la imagen (es algo bastante similar a los punteros, para los que han visto algún lenguaje de programación, yo la verdad de programar realmente sé bastante poco xD).

En Fin Después de ésta introducción a lo que por facilidad y analogía llamaré variables puntero, explicaré un ejemplo de aplicación (tomé el viejo engine de menú personalizado que había subido al foro y lo edité de manera de poder trabajarlo como tutorial.

Paso 1, llamar al menú:

Lo primero es lo básico, crear la "función" llamar menú, para ésto creamos un evento común en proceso paralelo con algún interruptor de inicio, y la primera instrucción del evento será el comando "asignar teclas" que se encuentra en la tercera pestaña de los comandos de eventos, al cual le pondrán la opción "esperar a pulsar tecla", para que el maker no haga nada hasta que se pulse la tecla en éste evento, para éste caso le puse la tecla cancelar (cuyo valor en variable es el 6). Luego, utilizando condiciones y efectos, que creo que se encuentran en la misma pestaña, se verifica si se pulsó la tecla, se muestran las imágenes y se activa un interruptor que iniciará un evento con condición de inicio "inicio automático" (lo cual dejará estático al personaje) en el cual se controlará el menú. Además, en el muestreo de imágenes se llamará a otro evento "Mostrar Objetos", que explicaré más adelante. Hasta ahora el engine debería quedar así:



Paso 2, el menú funcionando:

Para éste caso, lo que haremos será, primero inicializar unas variables, las cuales serán Cursor_Pos, que indicará qué objeto está apuntando el cursor del menú, y CursorX y CursorY las coordenadas en pantalla de la imágen del cursor. Luego se entrará a un ciclo, en el cual se manejará el menú, comenzamos con un "asignar teclas", para el cual utilizaré las teclas, arriba, abajo, aceptar, y cancelar para ir moviendo el cursor y seleccionar objetos o volver al juego. Utilizando nuevamente condiciones y efectos, verificamos qué tecla fue pulsada, en el caso de que se apretó arriba, primero verificaremos que el cursor no se encuentre en su primera posición, ésto, mediante otro condiciones y efectos, si la posición del cursor es 0 y se presiona arriba, entonces la posición del cursor ahora debiese ser la posición final (para hacer lo típico de llegar al final de la lista de objetos o al inicio), ahora sino, simplemente se le resta uno a dicha variable (Pos_Cursor), análogamente se hace lo mismo para la variable CursorY, que sería la posición en pantalla de la imágen del cursor, se hace lo contrario en el caso de apretar abajo. En el caso de presionar cancelar, entonces se borran las imágenes, se rompe el ciclo y se vuelve todo a la normalidad (se activan y desactivan los interruptores correspondientes), deberían ahora tener algo así:



Notarán que hice un "refresco" de la pantalla, al final de cada iteración del ciclo (llamando nuevamente al evento mostrar objetos), ésto lo hago en el caso de que el menú tuviera una barra de scroll (que no agregué esa función en este caso porque me hubiera salido muy largo), se mostrarían las imágenes de los objetos que debieran mostrarse xD.

Paso 3, El tan suda sangre muestreo de objetos:

Antes de explicar de lleno todo, mostraré cómo hago esta parte yo, ésta imagen resume todo:



Lo que hago es ver las variables como un "arreglo gigante", me refiero a que le asigno a unas tantas variables, las ranuras o espacio para cada objeto, y también otro para la cantidad de objetos, basandome en una especie de arreglo bidimensional, en palabras más simples:

Objeto | Cantidad
Obj1 | Cant1
Obj2 | Cant2
Obj3 | Cant3
.
.
.
Objn | Cantn

Pero el truco ahora está con los punteros, porque aunque el maker no lo sepa, yo sí sé desde donde empiezan los objetos y donde terminan, al igual que la cantidad de los mismos, lo que hago es decirle al maker que lea éstas variables solamente.

Entonces primero tomo una variable, la llamaré "Objeto Seleccionado", le pondré valor 22, porque esa es la "dirección" de la variable del objeto 1 (con dirección me refiero al numerito que sale al lado de la variable). Luego inicio un ciclo, el cual utilizaré para recorrer las "ranuras" que mencioné antes. Lo primero es saber cuando termina, para el caso del ejemplo que hice, sólo mostraré 3 imágenes (solo mostraré 3 objetos xD), por lo tanto si ya mostré todas las imágenes, significa que no tengo que verificar qué objeto tengo que mostrar. Ahora viene el truco, cómo leo qué objeto se encuentra en dicha ranura?, pues utilizando los punteros como se muestra en la imágen:



Ésto significa, que a la variable Id de objeto le doy el valor de lo que está en la dirección que tiene la variable Objeto Seleccionado, por ejemplo, si me encuentro en el primer objeto, la variable objeto seleccionado vale 22, es decir que la variable ID objeto valdrá lo que vale la variable 22 (que como se mostró antes es la variable Objeto1).

Análogamente y sin explicar mucho porque es lo mismo, creo otra variable que agarre los valores de las "cantidades de Objetos" y haga lo mismo que se hizo anteriormente. Luego utilizó un llamar evento, para que el "código" se vea más ordenado, en éstos eventos están la muestra de imágenes de los objetos y sus cantidades. Ahora bien, para qué demonios usé la variable "n_img_mostradas", pues por la sencilla razón de qué tengo que mostrar más de una imagen, y dicha imágen puede ser distinta en cada caso. Para ésto sólo me limitaré a dar como ejemplo el muestro de los nombres de los objetos:



Los valores que toma la variable n_img_mostradas van del 2 al 4, ésto lo hice para recordarme que el número de imágen que uso con el comando mostrar imágen es el 2 el 3 y el 4 (sólo tenía 3 imágenes para los objetos xD).

Finalmente el evento de la muestra de objetos quedaría así:



Paso 4, Tengo objetos, ahora ¿Cómo los uso?:

Ésta parte es relativamente simple, similar a lo anterior, nos vamos a la "dirección" del primer objeto, luego le sumamos la variable "Cursor_Pos" que indicará donde finalmente estamos ubicados en cuanto a las ranuras de los objetos. Una vez tenemos la posición, verificamos, nuevamente usando punteros, qué objeto es, y finalmente le damos el efecto que queramos, lógicamente, necesitamos también restarle 1 a la cantidad del objeto, ésto lo hacemos de forma similar al caso anterior. Ahora se presenta otra interrogante, ¿y si me queda 1 objeto?, bueno, aquí lo que yo hago es luego de realizar todas las operaciones, a una variable llamada "Se acabaron objetos?", le doy el valor de la variable cantidad de objetos, luego si ese valor es 0, entonces al objeto en cuestión (la ID del objeto), le doy el valor 0, que para mí será como que no hay objeto en esa ranura, cómo se hace ésto?, de la siguiente forma:



En la imagen lo que se hace, es darle a la variable "Se acabaron objetos?" el valor que se encuentra en la "dirección" del valor de la variable Cantidad_Objeto, finalmente el evento debiera quedar mas o menos así:



Paso final, Agregar Objeros:

Puesto que ya este menú es más personalizado, no se puede usar el comando que trae por defecto el maker para realizar ésta acción, debemos crear otro evento al cual llamaremos cuando necesitemos añadir un objeto. Al igual que en los casos anteriores, vamos a la dirección de la primera ranura de los objetos y empezamos a recorrerla utilizando un ciclo. En el caso de encontrar un objeto que uno ya tenga, se le suma 1 simplemente a la cantidad correspondiente, en el caso de no tener el objeto, se agrega el objeto y se le suma 1 a su cantidad. Ésta parte me dió pereza hacerla por completo (ahí se tendrán que preguntar que pasa si hay un espacio vacío antes de un objeto que tengo en posesión, la solución rápida sería recorrer dos veces todos los objetos, una para ver si tengo el objeto y y agregarlo, o en caso de no tenerlo agregarlo a la primera ranura vacía que encuentre, eso queda de tarea :D ). El evento queda así:



y para crear un cofre:



Notas Finales:

Dejo la descarga para que lo vean desde el maker:

Tutorial

En fin espero que les sirva para entender ésta útil función del maker, que sirve para hacer engines muchísimos más complejos. En RMXP y VX se puede hacer también (pero de otra forma, "emulando" estas variables con los comandos básicos, o metiendo scripts), pero en estos maker no vale la pena, porque hay scripts, que es mucho mejor, espero que les sirva, saludos =)

mrhawi
Aventurero
Aventurero

0/3

Créditos 2666

Gracias : 89

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por orochii el 2011-10-20, 00:19

Lo iba a leer todo pero recordé que en estos momentos estoy en "números rojos con otra cosa ='D" (ajem). Pues bueno, el tutorial hasta donde leí pues está muy bien. Está buena la idea de explicar el tema con un ejemplo, que por cierto es un engine bastante complicadito xD.

Aportazo man,
Orochii Zouveleki

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6073

Gracias : 271

http://ragnarokrproject.com/

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por Lampard el 2011-10-20, 02:43

Está bien, pero te has quedado muy en lo básico. Hace tiempo Aúrial sacó un ejemplo de esto, bastante completo que yo me ocupé de ponerle las anotaciones (fue quién me enseñó años atrás a usarlas).

La variables puntero sirven para cualquier tipo de lista: tienda, inventario, equipo... además se pueden usar para hacer un bestiario en 4-5 líneas muy bien organizado, simple y sin lag, y en los SMP y SBLP hasta para verificar los los atributos y los propios turnos en 1/10 de líneas. Yo no lo he hecho pq eso lo aprendí a hacer (mejor dicho, deduje como) más tarde. En VX y XP no se puede hacer salvo que sea con scripts, ya lo intenté en su momento y lo quitaron.

Orochii, el engine es fácil. Se trata de una lista. En un evento pones las imágenes en CyE en el otro un ciclo con un CyE y una excepción en el que se sume de uno en uno. Hay que "cambiar" el chip. Si una variable normal es cualquier valor o cosa (X=valor determinado), una variable puntero es X=X1; X=X2, etc. (y X1= valor determinado, como es X2), es decir, llamas a otras variables. Los que estudiéis álgebra o seáis buenos lo entenderéis. Para los que no, explico. Una variable es una manzana, una pera, café o té. Una variable puntero, de una forma muy "bestia" es Fruta, o es Bebida. Éstas engloban a las otras, mejor dicho, llamas a manzanas y peras, independientemente de cuántas tengas.

Para hacer una ordenación automática, basta con verificar que Manzanas = o > que 0 y lo mismo con las peras. Si no hay manzanas (= 0) las peras ocuparán el primer lugar en la lista (si hay peras), siempre y cuando hayas puesto a la hora de enseñar imágenes tantas condiciones como objetos tengas (o puedan estar en primer lugar, oséase todos). Luego, si lo quieres hacer automático, basta con repetir el proceso quitándole los casos que queden por encima (el 1º nunca será 2º), etc.
Si haces una ordenación fija te ahorras todo esto.

Lampard
Soñador
Soñador

0/3

Créditos 1126

Gracias : 6

http://ysnehopeofadream.wordpress.com/

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por mrhawi el 2011-10-20, 02:53

En realidad en el tutorial (que hice de ocioso xD), sólo quería que la gente más nueva supiera para qué era eso que sale en el maker, yo la verdad ya hace tiempo que andaba ocupando esas cosas, no es algo nuevo para mí, y si sé todas las aplicaciones que se pueden hacer, distintos algoritmos de ordenamiento (burbuja que es el más común), turnos en SBP, etc etc etc, pero un sin fin de cosas más, o sea vamos, manejar variables a través de otra variable (casi como los punteros en C) es una función genial para engines más complicados, aunque subir engines no me interesa mucho porque prácticamente no makeo tanto , la idea era pasar unos minutitos que tenía de ocio y mostrar algo que al parecer estaba olvidado (igual casi nadie usa RM2k3 en este foro al menos xD), igual me siento culpable por haberlo hecho tan a la rápida xD pero así funciona el ocio.

PD: no quise armar polémica, o yo estoy leyendo mal xD, saludos!

mrhawi
Aventurero
Aventurero

0/3

Créditos 2666

Gracias : 89

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por Lampard el 2011-10-20, 03:05

Ja, ja, ja. No, no hay polémica. Es que te lo decía pq se me hace interesante mentar los otros usos que tiene. Es cierto que poca gente ocupa el rm2k3, pero para los que sientan curiosidad, no está de más que sepan otras cualidades.

Lampard
Soñador
Soñador

0/3

Créditos 1126

Gracias : 6

http://ysnehopeofadream.wordpress.com/

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por Metalero el 2011-10-20, 03:28

Solo para "mejorar" el entendimiento.


Orochii, el engine es fácil. Se trata de una lista. En un evento pones las imágenes en CyE en el otro un ciclo con un CyE y una excepción en el que se sume de uno en uno. Hay que "cambiar" el chip. Si una variable normal es cualquier valor o cosa (X=valor determinado), una variable puntero es X=X1; X=X2, etc. (y X1= valor determinado, como es X2), es decir, llamas a otras variables. Los que estudiéis álgebra o seáis buenos lo entenderéis. Para los que no, explico. Una variable es una manzana, una pera, café o té. Una variable puntero, de una forma muy "bestia" es Fruta, o es Bebida. Éstas engloban a las otras, mejor dicho, llamas a manzanas y peras, independientemente de cuántas tengas.

Imagino que entendes bien las variables puntero, pero la explicacion es meda vaga... y el ejemplo no es correcto.

En general, TODAS las variables son punteros, tanto en en programacion como en el maker 2k3.
Una variable posee 3 datos:

-> Nombre, ID
-> Direccion a la que apunta
-> Tipo de dato al que apunta

En el caso del maker, el tipo de dato siempre es un numero entero.
Una varaible "comun", "no puntero" apunta a un "dato", que en el caso del maker es un numero entero.
Cuando queremos ver cuanto "vale" ese valor, lo hacemos mediante la variable.
Un puntero, tambien apunta a un "dato" pero con la particularidad de que ese "dato" es una direccion de memoria, ergo, otra variable.

De este modo uno puede tener dobles, triples, cuadruples, ... punteros. Donde una puntero apunta a otro puntero y asi sucesivamente.

En definitiva, en el maker, con un puntero, uno puede, con el simple hecho de modificar su direccion, ir recorrendo una serie de variables de forma automatica.

Algo a tener en cuenta con los punteros, es que siempre se debe tener cuidado con el sitio al que apuntan. No tengo ni idea como es el maker, jamas use el 2K3, pero en programacion, si uno trata de escribir (o leer en algunos casos tambien causa problemas) en la direccion de un puntero, y se cometio un error en si direccion, se temrina excribiendo en "zonas prohibidas", que por suerte solo terminan en un error, y cierre del programa, gracias a que nuestro amigo el Sistema Operativo, no permite este tipo de operaciones fuera de rango.

En fin, me fui por las ramas, mejor corto aca.

En cuanto al tuto, si bien nadie va a poder sacarme de la cabeza que aquellos que se rompen el coco haciendo esto en los maker viejos, pudiendo programar, estan igual de locos que los programadores, pero usando herramientas mas limitadas XD, esta excelente.
No solo para usuarios del 2K3, si no para usuarios de cualquier maker, el manejo avanzado de variables es muy dificil al principio, y esta bueno que se muestren el tipo de cosas que se pueden hacer con ellas.

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por mrhawi el 2011-10-20, 03:34

Pues esa explicación es un poco avanzada para lo que es maker, pero es muy correcta la definición para los lenguajes de programación en general, y respondiendo,en el 2k3 no pasa nada si usas mal los punteros (no se cae el programa ni nada, nisiquiera hay que inicializarlos, creo que por defecto apuntan la primera variable (de dirección 0), porque todas las variables del maker tienen su valor inicial 0), opor eso le puse "puntero" en comillas xD, tampoco en el maker se puede hacer punteros a punteros ni esas cosas avanzadas , pero es algo que me llamó la atención cuando exploré el rm2k3, saludos y buena explicación.


mrhawi
Aventurero
Aventurero

0/3

Créditos 2666

Gracias : 89

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por Lampard el 2011-10-20, 04:24

Metalero, acabas de hacer entrar en pánico a 4 gatitos, ja, ja, ja. Lo de las manzanas y peras es para que la gente lo entienda xD. El maker es más simple. Mucho más que cualquier lenguaje de programación (creo que hasta de excel).
Aún así, es cierto que puedes apuntar a un puntero en el mismo maker, pero no le he encontrado mucho sentido práctico aún.

Respecto a tu explicación, en los makers "clásicos" sólo se dan 2 casos a la vez de los que citas a la hora de interactuar con el programa cuando lo ejecutas. Tienes que trabajar en varios eventos para poder tratar los dos últimos casos a la vez. Y respecto a los valores, se le puede dar hasta el personaje o el arma. Ya no trabajas sólo con números enteros, sino con la misma BD. Digamos que es hasta más engorroso. En fin que sería discutir por discutir, aunque tengas la razón. Sólo pretendía un acercamiento llevándolo a cosas más simples.

Lampard
Soñador
Soñador

0/3

Créditos 1126

Gracias : 6

http://ysnehopeofadream.wordpress.com/

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por orochii el 2011-10-20, 06:34

Uh... bueno. Como sea, el tutorial está, la gente que tenga la duda lo verá y si quiere ser respondida pues preguntará. Si se ponen a hacer carreras armamentistas (?) pues más bien ahuyentarán a los iniciados =D.
Es nada más una sugerencia ='D, no me odien si me estoy metiendo en lo que no me importa... =) (si es así, ignórenme, será más sano).

Emmm salut, que ya me tirarán tomates (no olviden el pan, algo de carne y alguna que otra salsa por favor =D!),
Orochii Zouveleki

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6073

Gracias : 271

http://ragnarokrproject.com/

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por Poka el 2011-10-20, 08:09

Ahora que lo recuerdo.... ¿No hay un videotutorial sobre esto también? O.o"

El videotuto es de LinkMaster, LInkMasterED en el youtube :d

pos no... no encuentro el video, que que ese tutorial estaba en uno de las partes del tutorial de "SMP"... vaya >.<"

Poka
Guerrero
Guerrero

0/3

Créditos 2546

Gracias : 83

https://www.youtube.com/user/Pokaranero

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por orochii el 2011-10-20, 12:52

La verdad no recuerdo si LinkMaster hablaba en algún momento sobre variables puntero, ya que el tuto sobre SMPs era sobre eso nada más (aunque estuviere o no no quita el mérito de buen material =D!), digamos, la construcción de un menú personalizado básico, no llegaba a "funciones" ni nada, pero explicaba lo básico como para poder hacerlas por cuenta propia.
http://www.hellsoft.net/HR/foro/viewtopic.php?f=26&t=638
Ahi está el link a dicho tutorial, como por si acaso a alguien le interesase. Si mal no recuerdo, ese tutorial es aplicable a RMXP/VX así que ahí tienen, gente en la moda BD (? xD).

Salut,
Orochii Zouveleki

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6073

Gracias : 271

http://ragnarokrproject.com/

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por mrhawi el 2011-10-20, 15:39

Lampard escribió:
Aún así, es cierto que puedes apuntar a un puntero en el mismo maker, pero no le he encontrado mucho sentido práctico aún.


Como opción default no está propiamente tal en el maker (en el caso de los lenguajes de programación uno simplemente hace un doblepuntero o triplepuntero o etc), aunque sí se puede "emular" un puntero a punteros y hacer arreglos bidimensionales lo cual es bastante útil (he hecho varios engines así, pero al final es lo mismo que un puntero simple si se ve desde el maker), en fin, tanto alboroto por un simple tutorial que me gasté 10 mins en hacerlo por ocio xD (esperando que fuera útil de todos modos ), tranquilo chicos, de todas formas como aporte creo que está bien, saludos!

mrhawi
Aventurero
Aventurero

0/3

Créditos 2666

Gracias : 89

Volver arriba Ir abajo

Re: [RM2k3] Tutorial de una Aplicación de Variables a Variables del Maker

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.