Junio 19, 2020, 11:06:08 AM Ultima modificación: Junio 19, 2020, 11:08:58 AM por JohnW
Hola amigos!
No se si podre explicarme bien lo que quiero conseguir.
Estoy desarrollando un juego retro llamado "El enigma de Aceps" que salio para Amstrad y yo lo intento llevar a cabo en PC.
El que conozca el juego sabra que es una aventura grafica en la que hay que escribir todo el rato (coger, mirar, examinar, sur, norte, este, etc...)

Yo estoy recreando el juego omitiendo la escritura y en su lugar poniendo un menu de acciones con los botones (coger, mirar, examinar, etc...) para no tener que escribir.

Me surgen varios problemas:

1. A la hora de los botones como coger y examinar, he echo que al apretar el boton examinar, si hay algun objeto en esa instancia me lo diga. Esto lo he echo con una variable por ejemplo: global.linterna=1 y si la cogo pues global.linterna=0. El problema viene cuando hay mas objetos en la instancia o dejas alguno... no se como enfocarlo para que el codigo no sea tan extenso.

Lo que tengo ahora:
global.linterna=1
si clicas boton coger, no encuentras nada xq primero como obligacion tienes que examinar la sala con el boton examinar.
al clicar en coger se crea un nuevo boton con el item que hay en la sala (la linterna) y si la coges, ese boton cambia por uno que pone (nada) y el juego te dice que no ve nada en especial.
Pero lo estoy haciendo en drag and drop ya que no se mucho de codigo... y a la hora de poner mas objetos... o incluso de hacer que las voces se quiten o se escuchen en el juego he de poner muchas condiciones IF... por ejemplo...
si la voz esta activa y si estas en la pantalla 3 y si has examinado el lugar, mostrara linterna y si no pues no mostrara nada. (aqui si pongo un item mas el codigo drag and drop ya es muy extenso)

Por otra parte si quiero soltar esa (linterna) en otra room, no encuentro la manera de hacer que una variable me recuerde cuantos objetos hay en esa instancia, por ejemplo.
Si en la room 2 hay un pedernal y suelto la linterna... que al examinar me diga que hay un pedernal y una linterna y que independientemente de lo que coga la variable detecte o se acuerde de lo que hay en cada room.

No se si me explicado bien pero espero que me podais ayudar... es un juego retro que quiero sacar a PC con esas funciones y me gustaria acabarlo para compartirlo con vosotros.

Muchas gracias!

imagen del juego:
https://ibb.co/dWD6dw5

Lo mejor es que uses código en lugar de Drag&Drop.
D&N ocupa mucho espacio y es más difícil de editar. Además las soluciones que se me ocurren necesitan código.
Lo más fácil para conservar la información de cada room, es usar rooms persistentes. Pero no es recomendable, siempre he visto que suceden cosas raras. Es mejor usar un sistema propio.

La primera solución que se me ocurre es crear un array o lista al inicio del juego que contenga todos los items que se pueden mover entre rooms. A cada elemento asignale un valor que indique en qué room se encuentra o un valor especial que indique que lo lleva el personaje principal.

La segunda solución es crear varias listas, una lista para cada room y una lista para el personaje. Si tomas un objeto de una room, se borra de la lista correspondiente a esa room y se agrega a la lista del personaje.