Page 1 of 1

Getting started with VR-VIEW and VR-GL data communication

Posted: Fri Jul 15, 2022 2:45 pm
by Javi
joc.pi

Code: Select all

class Joc implements GL_Program
{
    properties:


		vista = null;
		configuracio = null;
		interficie = null;
		

    function Start()
    {
		AddScriptPackage("./scripts/");

		configuracio = new Configuracio(this);
		vista = new Vista(this);
		interficie = new Interficie(this);
		
        ::Start();
    }
	

    function Initialize()
	{
		interficie.Initialize(configuracio);

	}
	

	function Main()
	{
		interficie.Test();

	}

}

scripts/configuracio.pi

Code: Select all

class Configuracio implements Task
{

	properties:

		x = null;
		y = null;


	function Fill(vista)
	{
		x = int( vista.tbX.GetText() );
		y = int( vista.tbY.GetText() );

	}

}
scripts/interficie.pi

Code: Select all

class Interficie implements Task
{


	function Initialize(configuracio)
	{
		
		app.SetBackColor(RGB(0,0,0));
        app.SetBgColor(RGB(0,0,0));
        app.SetResolution(configuracio.x, configuracio.y);
        app.SetViewScale(-1);
        app.SetVSync(true);
        app.Set2DFilter(true);
		


	}

	function Test()
	{

	
		esquirol = app.NewSprite("esquirol");
        esquirol.AddFrame("data/douglas_squirrel.jpg");
        esquirol.SetPriority(1);
		esquirol.SetPos (10, 10);

	}


}

scripts/vista.pi

Code: Select all

class Vista implements Task
{

	properties:

		tbX = null;
		tbY = null;


	function Init()
	{

		_wnd = app.GetEngine().GetDesktop().GetActiveWindow();
		_mdi = _wnd.CreateMDI(0, 0, 200, 400);
		_mdi.CenterToDesktop();
		
		_labelX = _mdi.CreateLabel(10, 10, 100, -1, "Resolució X : ");
		tbX = _mdi.CreateTextBox(10, 40, 100);
		tbX.SetText("256");
		
		_labelY = _mdi.CreateLabel(10, 80, 100, -1, "Resolució Y : ");
		tbY = _mdi.CreateTextBox(10, 120, 100);
		tbY.SetText("212");
				
		_button = _mdi.CreateButton(0, 0, 100, -1);
		_button.SetText("Play");
		_button.SetOnClick(this, "OnPlay");	
		_button.AlignToParent(UI_BOTTOM | UI_RIGHT, 5);		
	}
	
	function OnPlay(_sender, _event, _params)
	{
		
		app.configuracio.Fill(this);
		app.Initialize();
		app.Main();
		
		//Esto borraría nuestro MDI
		delete _sender.GetWindow();

		//app.End(0);
	}

	
	
}