Panel-Frage

Posted By: Maschine

Panel-Frage - 01/10/11 20:24

Hallo,
Ich habe für mein 2d-Spiel ein panel erstellt tmit einem rechteckigen transparenten Ausschnitt (tga). Dieses Panel liegt auf Layer 2, damit ein darunter liegendes Panel mit einer großen Graphik als Hintergrund (Weltall) zu sehen ist. Dieses Panel ist auf Layer 1 gesetzt, damit es unten liegt. Darauf kommen mehrere buttons, um verschiedene Objekte anklickbar zu machen, außerdem ist es mit den wasd-Tasten beweglich.
das klappt alles prima, nur die Buttons reagieren nicht auf die Maus...
Nehme ich das panel mit layer 2 weg, dann funktioniert alles richtig mit den Buttons.
Wie kann ich nun beide Panels sehen und die Buttons für die Maus sensibel machen?
Gruß Maschine
Posted By: Rei_Ayanami

Re: Panel-Frage - 01/10/11 20:34

Zwei Möglichkeiten:

Das Panel mit den Buttons einen höheren layer Wert geben als dem Rest.

Oder, du setzt bei den anderen Panels das FLAG UNTOUCHABLE wink
Posted By: xxxxxxx

Re: Panel-Frage - 01/10/11 20:36

Schon mal dem Pannel auf layer 2 den flag UNTOUCHABLE gegeben (laut manual ab A7.82). Hab nich gesehen das da einer vor mir war sorry für die wiederholung
Gruss
xxxxxxx
Posted By: Maschine

Re: Panel-Frage - 01/10/11 20:55

Hallo,
UNTOUCHABLE funktioniert bei meiner Version (Sybex 7.02) nicht, selbst wenn, auf dieses Panel kommen auch noch Buttons.
Einen höheren Layer bedeutet, das ich nur das Panel sehe, und nicht mein hauptpanel mit dem transparentem "Fenster", wo ja nunmal die Map wie in einem fernseher zu sehen sein soll...
Andere Ideen??
gruß Maschine
Posted By: neo_scripting

Re: Panel-Frage - 01/10/11 21:17

Ich habe ein kleines 2d Spiel in der Art OGame programmiert. Dort ändere ich auch, bei Aktivierung eines Buttons, den Layer-Wert des jeweiligen Panels.

Hier hätte ich mal nen kleinen Ausschnitt.

Code:
//- BUTTONS -------------------------------------------------------------------------------------------------

PANEL* gebaude_pan =  // Gebäude Button
{
	layer = 2;
	pos_x = 10;
	pos_y = 100;
	button (10, 0, "gebaude.bmp", "gebaude.bmp", "gebaude_overlay.bmp", layergebaude_down, NULL, NULL);
	flags = OVERLAY | VISIBLE;
}




PANEL* zuruck_pan =  // Zurück Button
{
	layer = 0;
	pos_x = 10;
	pos_y = 100;
	button (10, 0, "zuruck.bmp", "zuruck.bmp", "zuruck_overlay.bmp", layergebaude_back, NULL, NULL);
	flags = OVERLAY | VISIBLE;
}


//- Layer-Funktionen -------------------------------------------------------------------------------------------------


function layergebaude_down() //Gebäude Layerfunktion
{
	if (mouse_left == 1 && gebaude_klicked == 0)
	{
			
			gebaude_klicked = 1;
			
			if (gebaude_klicked == 1)
			{
				layer_sort(gebaude_pan, 0);
				layer_sort(beenden_pan, 0);
				layer_sort(zuruck_pan, 2);
				layer_sort(gebaudetext_pan, 2);
				layer_sort(metallminetext_pan, 3);
				layer_sort(stufetext_pan, 3);
				layer_sort(metallstufenanzeige_pan, 3);
				layer_sort(metallstufenausbau_pan, 3);
				layer_sort(kristallminetext_pan, 3);
				layer_sort(kristallstufetext_pan, 3);
				layer_sort(kristallstufenanzeige_pan, 3);
				layer_sort(kristallstufenausbau_pan, 3);
				layer_sort(flotte_pan, 0);

			...

			}
		}
}


function layergebaude_back() //Gebäude Layerfunktion
{
	if (mouse_left == 1 && gebaude_klicked == 1)
	{
			
			gebaude_klicked = 0;
			
			if (gebaude_klicked == 0)
			{
				layer_sort(gebaude_pan, 2);
				layer_sort(beenden_pan, 2);
				layer_sort(zuruck_pan, 0);
				layer_sort(gebaudetext_pan, 0);
				layer_sort(metallminetext_pan, 0);
				layer_sort(stufetext_pan, 0);
				layer_sort(metallstufenanzeige_pan, 0);
				layer_sort(metallstufenausbau_pan, 0);
				layer_sort(kristallminetext_pan, 0);
				layer_sort(kristallstufetext_pan, 0);
				layer_sort(kristallstufenanzeige_pan, 0);
				layer_sort(kristallstufenausbau_pan, 0);
				layer_sort(flotte_pan, 2);

			...
			}
		}
}



Ist vielleicht etwas umständlich und das Layer-Funktions-Script wird sehr groß, aber so funktioniert es zu 100% .
Posted By: WretchedSid

Re: Panel-Frage - 01/10/11 21:20

Originally Posted By: Maschine

Andere Ideen??

Updaten. Entgegen der weitläufigen Meinung geht das auch mit der Sybex Version.
Posted By: Maschine

Re: Panel-Frage - 01/11/11 05:25

Hallo neo_scripting,
gute Idee, aber bei 60 Buttons???
Außerdem verschwindet dann ja kurzfristig das obere Panel, und gerade das ist doch wichtig für das "look and feel".
Zu Justsid,
Wenn ich das Geld für ein Update aufbringe, bleibt ja das Problem, UNTOUCHABLE wird dann funktionieren, aber wie gesagt, auf dieses Panel kommen auch noch Buttons.
Ich verstehe das Problem insofern nicht, da es doch jede Menge Spiele gibt, mit einer scrollbaren map die unter einer Spieloberfläche läuft gibt. Auch da lassen sich die Objekte auf der map anklicken...
Kann das die A7 nicht, oder kann ich es nur nicht?
Habe nun rund 80 Stunden mit der Graphik verbracht, Spieleidee in Form eines Drehbuches niedergeschrieben, die strategie in Excell durchsimuliert und nun soll es scheitern an ein paar Buttons???
gibt es noch Möglichkeiten?
Danke an all den bisher antwortenden Usern.
Gruß Maschine
Posted By: fogman

Re: Panel-Frage - 01/11/11 07:35

Updates kosten nix. wink
Das "Fenster" im Panel ist also ein Rechteck?
Dann könntest Du statt einem einfach vier Panels definieren,
die Du dann zu einem Panel zusammensetzt:
Eines für den oberen Rand, eines rechts, eines unten und eines links. In der Mitte bleibt dann ein Fenster frei.

Posted By: neo_scripting

Re: Panel-Frage - 01/11/11 16:25

Wofür nutz du genau den transparenten Ausschnitt?
Posted By: Maschine

Re: Panel-Frage - 01/11/11 16:41

Hallo fogman,
Sybex-Versionen lassen sich mit Sybex-Update updaten, und das letzte mir bekannte Update war glaube ich für die Version 5...
Die Idee mit den 4 Panels hatte ich auch schon heute in der Firma, werde ich gleich mal probieren. Habe allerdings Bedenken, denn ich kann die 4 Panels nicht auf den selben Layer setzen wie meine Map, die ja sehr viel größer ist und somit die Panels wieder überdeckt...
ich werde aber berichten.
Zu neo_scripting,
Stelle Dir einen Kontinent vor, von dem Du nur 1 Land auf etwa einem Virtel des Bildschirmes siehst. Dieses Virtel ist mein Ausschnitt von dem Kontinent, der um ein Vielfaches größer ist. Rund um den Ausschnitt (Fenster) herum ist ein anderes Panel zu sehen, auf dem einige Infos zu dem Land erscheinen, sowie andere Buttons zum bewegen der Map usw.
Gruß Maschine
Posted By: neo_scripting

Re: Panel-Frage - 01/11/11 16:51

Nochmal zum Problem deines Games ( Nur nochmal wiederholen ob ichs auch wirklich richtig verstanden habe tongue !)

Du hast Auf Layer 1 deine Spielwelt. Auf Layer 2 ist deine Benutzeroberfläche auf der Informationen und Buttons stehen sollen. Und nun das Problem: Die Buttons sind nicht anklickbar und liegen aber über der Benutzeroberfläche von Layer 2.

Sorry wenn ich die genaue Problematik nicht ganz verstanden habe cry
Posted By: WretchedSid

Re: Panel-Frage - 01/11/11 17:38

Originally Posted By: Maschine

Sybex-Versionen lassen sich mit Sybex-Update updaten, und das letzte mir bekannte Update war glaube ich für die Version 5...

Okay, noch einmal zum mitschreiben: Updaten. Geht. Auch. Für. Die. Sybex. Version. Entgegen. Der. Weitläufigen. Meinung.
© 2024 lite-C Forums