Hallo leute,

ich lerne lite-c und wollte ein menü coden wo man erstma nur die auflösung ändern kann...
Ich will das die aktuele auflösung im panel angezeigt wird, habe einen globalen string angelegt und eine funktion geschrieben die überprüft welche auflösung gerade gesetzt ist und in den string einen text speichert.. aber wie es aussieht wird der text nur innerhalb der funktion gespeichert und nicht global.. weswegen der text auch nicht im panel angezeigt wird..
und auch ein ähnliches problem hab ich beim zentrieren des panels, wen ich die auflösung ändere bleibt das panel auf der alten position..

hier mein vllt bisel verwierender und schlecht geschriebener code ^^
Code:
BMAP* bg_g_optionen = "m_grafik_optionen2.png";
BMAP* ok_off = "ok.png";
BMAP* ok_on = "ok_on.png";
BMAP* schliessen = "schließen.png";
BMAP* schliessen_on = "schließen_on.png";
BMAP* links = "links.png";
BMAP* rechts = "rechts.png";

STRING* zeige_aufloesung;

var desktop_size_x; // Horizontal
var desktop_size_y; // Vertikal
var aufloesung = 1;
var m_aufloesung = aufloesung;

PANEL* optionen_pan =
{
	bmap = bg_g_optionen;
	layer = 10;
	flags = SHOW;
	button(48, 168, ok_on, ok_off, ok_on, ok(), NULL, NULL);
	button(102, 168, schliessen_on, schliessen, schliessen_on, close(), NULL, NULL);
	button(50, 20, links, links, links, kleiner_aufloesung(), NULL, NULL);
	button(180, 20, rechts, rechts, rechts, groeser_aufloesung(), NULL, NULL);
	digits(75, 20, 10, "Arial#14bi", 0, zeige_aufloesung);
}

function screen()
{
	desktop_size_x = sys_metrics(0); // SM_CXSCREEN // System Bildschirm Auflösung (X)
	desktop_size_y = sys_metrics(1); // SM_CYSCREEN // System Bildschirm Auflösung (Y)
	

	if(aufloesung == 0)
	{
		video_set(desktop_size_x, desktop_size_y, 0, 1);
	}
	
	if(aufloesung == 1)
	{
		video_set(800, 500, 0, 2);
		video_window(NULL ,NULL ,16 ,"Grafik Einstellungen");
	}
	
	if(aufloesung == 2)
	{
		video_set(1024, 600, 0, 1);
	}
	
	if(aufloesung == 3)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 4)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 5)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 6)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 7)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 8)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 9)
	{
		video_set(0, 0, 0, 1);
	}
	
	if(aufloesung == 10)
	{
		video_set(0, 0, 0, 1);
	}
}

function screen_center()
{
	optionen_pan.pos_x = (screen_size.x - bmap_width(bg_g_optionen))/2;
	optionen_pan.pos_y = (screen_size.y - bmap_height(bg_g_optionen))/2;
}

function close()
{
	optionen_pan.flags &= ~SHOW;
}

function ok()
{
	aufloesung = m_aufloesung;
	screen_center();
	screen();
}

function z_aufloesung()
{
	if(aufloesung == 0)
	{
		zeige_aufloesung = "Standart";
	}
	
	if(aufloesung == 1)
	{
		zeige_aufloesung = "800x500(F)";
	}
	
	if(aufloesung == 2)
	{
		
	}
	
	if(aufloesung == 3)
	{
		
	}
	
	if(aufloesung == 4)
	{
		
	}
	
	if(aufloesung == 5)
	{
		
	}
	
	if(aufloesung == 6)
	{
		
	}
	
	if(aufloesung == 7)
	{
		
	}
	
	if(aufloesung == 8)
	{
		
	}
	
	if(aufloesung == 9)
	{
		
	}
	
	if(aufloesung == 10)
	{
		
	}
}

function groeser_aufloesung()
{
	m_aufloesung = m_aufloesung + 1;
	z_aufloesung();
}

function kleiner_aufloesung()
{
	m_aufloesung = m_aufloesung - 1;
	z_aufloesung();
}

function main()
{
	level_load ("");
	mouse_mode = 3;
	z_aufloesung();
	screen();
	screen_center();
}



ich hoffe mir kann einer helfen

Last edited by DrBong; 09/15/10 01:45.