Page 2 of 2

Re: DAADVR

Posted: Tue Dec 21, 2021 8:49 am
by efraimsangil
Tenemos dos funciones principales, una para añadir Acciones y otra para añadir Objetos: AddAction y Additem. Al hacer esto se muestran en pantalla en la botonera, arriba a la derecha.

Con SetTextSpeed(10) cambiamos la velocidad a la que se escribe el texto en pantalla.

Podemos cargar una lista de música y/o FX con:

AddMusic("music01"); //carga mp3
AddFX("fx01"); //carga .ogg

SetScreen("screen003"): Muestra el gráfico que deseamos en ese momento, con extensión png.

RemoveItem("Libros"): Elimina de la botonera el objeto Libros

AddInventary("Llave"): Para añadir objetos a nuestro inventario.

GotoStage(2): Carga la pantalla 2

El juego comienza en virtual Start(). Y con la función ShowText es como presentamos texto en la pantalla.

function WrongAction(): Es lo que se ejecuta si la combinación de Acción + Item no la tenemos programada.

Por cada combinación de Acción + Objeto, debemos crear una función como esta:

function Examinar_Habitacion()
function Examinar_Ventana()

Etc etc

De modo que dentro pondremos lo que queremos que haga nuestro juego cuando se ejecuten esas combinaciones de Acción + Item.

Hay código que se ejecuta si se cumple cierta logica, como esto:

Se comprueba si en el inventario, disponemos del objeto libro. Si lo tenemos, se ejecutan unas funciones y si no, se ejecutan otras.

Code: Select all

_bool = CheckInventary("libro");
		if ( _bool == false )
		{
			SetScreen("screen004");
			AddAction("Coger");
			AddItem("Libro");
			ShowText("Te acercas a los libros y los ojeas un poco. Son libros viejos, de escritores clásicos.[wait]\n\nTe llama la atención uno especialmente pequeño y grueso.[wait]");
		} 
		else
		{
			ShowText("No hay nada de interés aquí.[wait]");
		}


Este es el código de la primera pantalla de la demo.

Code: Select all

class Stage_001 implements Stage
{

	// [start]
	// [wait]
	// [waitpress]
	// [music1]
	// [fx1]
	// [cls]
	// [showbuttons]
	// [hidebuttons]
	// [lighton]
	// [lightoff]
	// [gotoFuera]
	// [AddAction]
	// [AddItem]
	// [RemoveAction]
	// [RemoveItem]
	// [gameover]

	// AddInventary("libro")
	// _bool = CheckInventary("libro")
	// RemoveInventary("libro")

	virtual Init()
	{
		SetTextSpeed(10);
		SetScreen("screen001");
		
		AddAction("Examinar");
		AddAction("Abrir");
		AddAction("Ir");
		
		AddItem("Habitacion");
		AddItem("Puerta");
		AddItem("Ventana");
		AddItem("Suelo");
		AddItem("Paredes");
		// AddItem("Stage2");
		// AddItem("Stage3");
		// AddItem("Stage4");
		
		AddMusic("music01"); //carga mp3
		AddFX("fx01"); //carga .ogg
	}
	
	virtual Start()
	{
		_str = "[music1]Estás en lo que aparentemente es una habitación de cuatro paredes y suelo de madera. Ves una puerta y una ventana.[wait]";
		ShowText(_str);	
	}
	
	function WrongAction()
	{
		ShowText("No entiendo eso...[wait][start]");	
	}
	
	function Examinar_Habitacion()
	{
		SetScreen("screen002");
		
		_bool = CheckInventary("libro");
		if ( _bool == false )
		{
			RemoveItem("libro");
			AddItem("Libros");
			ShowText("No ves nada de interés, salvo un montículo de libros en una de las esquinas.\n\nIgual no es mala idea echar un vistazo a esos libros.[wait]");
		} 
		else
		{
			ShowText("No ves nada de interés, salvo un montículo de libros en una de las esquinas.\n\nPero ya les echamos un vistazo antes y cogiste uno.[wait]");
		}		
	}
	
	function Examinar_Ventana()
	{
		SetScreen("screen003");
		_str = "Es una ventana que no tiene forma alguna de abrirse desde dentro.[wait]";
		ShowText(_str);
	}

	function Examinar_Suelo()
	{
		_str = "El suelo está impoluto. Acaban de limpiar?[wait]";
		ShowText(_str);
	}

	function Examinar_Libros()
	{		
		RemoveItem("Libros");		
		_bool = CheckInventary("libro");
		if ( _bool == false )
		{
			SetScreen("screen004");
			AddAction("Coger");
			AddItem("Libro");
			ShowText("Te acercas a los libros y los ojeas un poco. Son libros viejos, de escritores clásicos.[wait]\n\nTe llama la atención uno especialmente pequeño y grueso.[wait]");
		} 
		else
		{
			ShowText("No hay nada de interés aquí.[wait]");
		}
	}

	function Examinar_Libro()
	{
		ShowText("Es un libro muy pequeño y grueso. Apenas pesa.[wait]");
	}

	function Examinar_Puerta()
	{
		ShowText("Es una puerta de madera maciza con un hueco para introducir una llave.[wait]");
	}

	function Examinar_Paredes()
	{
		ShowText("Las paredes son limpias y blancas. No tienen marca alguna de haber tenido cuadros, clavos o cualquier otra cosa que las dañara.[wait]");
	}
	
	function Coger_Libro()
	{
		_bool = CheckInventary("libro");
		if ( _bool == false )
		{
			AddInventary("libro");
			// RemoveAction("Coger");
			// RemoveItem("Libro");
			ShowText("Coges el pequeño libro y notas que pesa muy poco.[wait]");
		}
		else
		{
			// RemoveAction("Coger");
			ShowText("Ya tienes el libro.[wait]");
		}		
	}

	function Abrir_Libro()
	{
		AddItem("Llave");
		RemoveItem("Libro");
		// RemoveItem("Coger");
		ShowText("El libro tiene un hueco enorme entre sus páginas, como un agujero, y en su interior hay una llave.[wait]");		
	}

	function Abrir_Ventana()
	{
		ShowText("La ventana no puede abrirse de modo alguno.[wait]");		
	}

	function Abrir_Suelo()
	{
		ShowText("No es posible hacer tal cosa.[wait]");		
	}

	function Abrir_Paredes()
	{
		ShowText("No puedes hacer eso, no eres Hulk.[wait]");		
	}

	function Coger_Llave()
	{
		RemoveItem("Llave");
		AddInventary("Llave");
		ShowText("Coges la llave y te la guardas.[wait]");
	}

	function Mirar_Habitacion()
	{
		ShowText("Tu dormitorio es grande, pero la decoración es minimalista; una cama, una mesilla con una lámpara y un armario empotrado en la pared es todo lo que tiene de interesante la habitación.\n\n Como persona pragmática que eres, usas la habitación para dormir y los ornamentos son algo prescindible.");
	}
	
	function Abrir_Puerta()
	{
		// Comentar para poder hacer el puzle. Esto vale para poder probar el stage2 directamente.
		
		_bool = CheckInventary("Llave");
		if ( _bool == false )
		{
			// AddInventary("libro");
			// RemoveAction("Coger");
			// RemoveItem("Libro");
			ShowText("Necesitas una llave para abrir la puerta.[wait]");
		}
		else
		{
			ShowText("Introduces la llave en la puerta y giras la llave. Oye un chasquido en la puerta y notas que se abre el suelo de repente y caes hacia abajo. [waitpress][gotoFuera]");
		}		
		
	}
	
	function Ir_Stage2()
	{
		GotoStage(2);
	}

	function Ir_Stage3()
	{
		GotoStage(3);
	}

	function Ir_Stage4()
	{
		GotoStage(4);
	}

	function GotoFuera()
	{
		GotoStage(4);
	}
}

Re: DAADVR

Posted: Thu Dec 23, 2021 11:07 am
by RockRiver
Buenaaaaaa!!!!!!
¿Podría guardar algún tipo de retro-compatibilidad con los archivos del parser DAAD???
En el emu ZesaruX se posibilita extraer la lista de palabros a utilizar... en GAC, PAW y DAAD ... muuuuy interesante. Echadle un ojo.

Re: DAADVR

Posted: Fri Dec 24, 2021 8:37 am
by efraimsangil
RockRiver wrote: Thu Dec 23, 2021 11:07 am Buenaaaaaa!!!!!!
¿Podría guardar algún tipo de retro-compatibilidad con los archivos del parser DAAD???
En el emu ZesaruX se posibilita extraer la lista de palabros a utilizar... en GAC, PAW y DAAD ... muuuuy interesante. Echadle un ojo.
En principio no la tiene. A lo mejor más adelante y con más tiempo, se podría hacer un conversor del .DSF a este sistema, no lo sé.

O incluso, sin ser un conversor puro y duro, algo que te ayude un poco y no tengas que reescribirlo todo de nuevo.

Re: DAADVR

Posted: Fri Dec 24, 2021 6:07 pm
by RockRiver
MSXVR puede rodar a mi modesto entender sin problemas DAAD y SCUMM a partir de lo ya hecho en MSX o un pasito más:

* las gentes del ZX Next tienen su DAAD
https://www.specnext.com/software/?title=19

* y NataliaPC se lo curró para MSX pero creo que paró en 2+... ya puestos se podría llegar e implementar algún modo v9990 o VR (v9978~v9968) para pillar resoluciones de pantalla de los 16bit (atariST y Amiga) o mayores.

https://www.msxblog.es/publicado-msx2da ... en-github/



Bueno, que Feliz Solsticio!!!, "el vivo al bollo" y que gracias por el currazo y los desarrollos VR

Re: DAADVR

Posted: Fri Jan 07, 2022 6:56 pm
by efraimsangil
RockRiver wrote: Fri Dec 24, 2021 6:07 pm MSXVR puede rodar a mi modesto entender sin problemas DAAD y SCUMM a partir de lo ya hecho en MSX o un pasito más:

* las gentes del ZX Next tienen su DAAD
https://www.specnext.com/software/?title=19

* y NataliaPC se lo curró para MSX pero creo que paró en 2+... ya puestos se podría llegar e implementar algún modo v9990 o VR (v9978~v9968) para pillar resoluciones de pantalla de los 16bit (atariST y Amiga) o mayores.

https://www.msxblog.es/publicado-msx2da ... en-github/



Bueno, que Feliz Solsticio!!!, "el vivo al bollo" y que gracias por el currazo y los desarrollos VR
Claro que funciona DAAD en MSXVR, todos los juegos creados con DAAD funcionan. Lo del SCUMM son palabras mayores y no lo entiendo, pero si yo fui capaz junto con Alberto de hacer una demo del Monkey Island, estoy seguro de que se puede hacer.

NataliaPC hizo MSX2DAAD, que es lo que usamos algunos para poder hacer juegos en DAAD para resoluciones de MSX2, 2+ y TR.

Re: DAADVR

Posted: Fri Jan 07, 2022 6:57 pm
by efraimsangil
PROXIMAMENTE... ACTUALIZACIÓN DEL DAADVR
WIN_20220107_18_53_22_Pro.jpg