Gamestudio Links
Zorro Links
Newest Posts
Newbie Questions
by fairtrader. 12/05/23 14:22
Zorro Trader GPT
by TipmyPip. 12/04/23 11:34
Square root rule
by Smallz. 12/02/23 09:15
RTest not found error
by TipmyPip. 12/01/23 21:43
neural function for Python to [Train]
by TipmyPip. 12/01/23 14:47
Xor Memory Problem.
by TipmyPip. 11/28/23 14:23
Training with command line parameters
by TipmyPip. 11/26/23 08:42
Combine USD & BTC Pairs In Asset Loop
by TipmyPip. 11/26/23 08:30
AUM Magazine
Latest Screens
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Who's Online Now
4 registered members (AndrewAMD, Quad, soulman3, Ayumi), 675 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
fairtrader, hus, Vurtis, Harry5, KelvinC
19019 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 3 1 2 3
Fragen zu Menüpanels #389772
12/18/11 12:57
12/18/11 12:57
Joined: Dec 2011
Posts: 13
W
witzdestages Offline OP
Newbie
witzdestages  Offline OP
Newbie
W

Joined: Dec 2011
Posts: 13
Hallo,

habe mein Projekt mit nem Panel angefangen das das Hauptmenü darstellen soll, doch habe damit schon Probleme, da das im Handbuch und in der Hilfedatei des 3dgs nicht, oder nicht direkt beschrieben wird.

Ich habe 2 Panels gemacht: 1 Hauptpanel und eins das per button geöffnet werden sollte und hier ist auch schon das erste Problem: wie kann ich ein zweites Panel und einen Text per Button öffnen ?

Dann habe einem Button eine Funktion zugewiesen die eigentlich das erste Level laden soll, aber auch das funktioniert nicht, egal wie oft ich das klicke.

Panels und Texte per Buttonklick wieder schließen wird auch niergendwo erklärt.

Wenn ich das zweite Panel und den Text auf VISIBLE stelle wird der Text und das Panel angezeigt und es funktioniert nur die quit Funktion

Ich arbeite gerade mit 3D Gamestudio 7,5 Extra Edition von Sybex (falls das wichtig ist)

Habe hier mal das Script soweit wie ich gekommen bin.
Der Button ist nur aus Testzwecken immer der selbe, weil ich erstmal sehen wollte obs überhaupt funktioniert.

Code:
//////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>

//////////////////////////////////////////////////////////////////

BMAP* haupt_pan_bmp = "pan.bmp"; //Das erste Bild
BMAP* ende_pan_bmp = "pan2.bmp";
BMAP* maus_pcx = "mouse.pcx";

FONT* panelfont = "font.tga";

STRING* beenden = " Spiel beenden ?";

//////////////////////////////////////////////////////////////////

function main()
{
	video_set(1280,720,32,2); // Bildauflösung
	mouse_map = maus_pcx; // Mauszeiger
	mouse_mode = 4; // Mausfunktion
	
}

function quit() // Beendet das Programm
{
	sys_exit(NULL);
}

function neu(); // Sollte Level 1 Laden
{
	level_load("project.wmb");
}
//////////////////////////////////////////////////////////////////

PANEL* haupt_pan = // Das Hauptmenü
{
	pos_x = 0;
	pos_y = 0;
	layer = 1;
	bmap = haupt_pan_bmp;
	button_neu (40, 50, "neuc.bmp", "neu.bmp", "neuo.bmp", neu, NULL, NULL); // Dieser Button soll das Level Laden
	button_ende (40, 100, "neuc.bmp", "neu.bmp", "neuo.bmp", ende_pan, NULL, NULL); // Dieser Button soll das Panel "ende_pan" und den Text "pantext" einbelden
	flags = OVERLAY | VISIBLE;
}


PANEL* ende_pan = // Spiel Beenden ? JA - NEIN
{
	pos_x = 200;
	pos_y = 310;
	layer = 1;
	bmap = ende_pan_bmp;
	button_ja (60, 50, "neuc.bmp", "neu.bmp", "neuo.bmp", quit, NULL, NULL); // Programm wird beendet
	button_nein (280, 50, "neuc.bmp", "neu.bmp", "neuo.bmp", exit_ende_pan, NULL, NULL); // Soll das Panel "ende_pan" und den Text "pantext" schließen
	flags = OVERLAY;
}

TEXT* pantext = // Dieser Text soll mit dem Panel "ende_pan" eingebeldet werden
	{
		pos_x = 300;
		pos_y = 320;
		font = (panelfont);
		layer = 2;
		string (beenden);
	}



Last edited by witzdestages; 12/18/11 12:59.
Re: Fragen zu Menüpanels [Re: witzdestages] #389783
12/18/11 16:28
12/18/11 16:28
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Hm wie willst du das Programm denn gestartet und die Buttons getestet haben, das kompiliert doch so gar nicht?

Code:
function neu(); // Sollte Level 1 Laden
{
	level_load("project.wmb");
}


Dort ist ein Semikolon zu viel (hinter "neu()").

button_neu und button_ende (sowie die anderen beiden), die Befehle gibt es doch nicht, sondern nur "button". Derart benennen kannst du Elemente also nicht.
Die Angabe von "ende_pan" als Funktion bei "button_ende" ist natürlich so nicht korrekt, button erwartet dort eine Funktion und kein Panel. In dieser Funktion setzt du das besagte Panel einfach auf sichtbar, was in lite-C SHOW und nicht VISIBLE heißt.

Übrigens, dem ende_pan(el) würd ich einen höheren Layer als dem Hauptpanel geben.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Fragen zu Menüpanels [Re: Superku] #389794
12/18/11 17:50
12/18/11 17:50
Joined: Dec 2011
Posts: 13
W
witzdestages Offline OP
Newbie
witzdestages  Offline OP
Newbie
W

Joined: Dec 2011
Posts: 13
Hab das Script einfach mit "Test Run" gestartet, hat so funktioniert...

Und das mit dem Semikolon hab ich schon mal korrigiert und kann das Level schon mal laden.

Das mit den fehlenden befehlen hatte ich schon erklärt: Ich weiß nicht wie diese Funktionen aussehen sollen, weil nirgendwo steht wie man ein Panel öffnet oder schließt, also können die noch nicht existieren...

wenn ich im Script bei den Panels "flags = VISIBLE" eingebe sind sie sichtbar (stand auch so im Handbuch).

Könntest du mir bitte erklären wie so eine Funktion aussehen muss ?

Re: Fragen zu Menüpanels [Re: witzdestages] #389801
12/18/11 18:06
12/18/11 18:06
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
VISIBLE ist antiquiert, verwende es nicht, schreibe stattdessen SHOW.

Eine Funktion, die
Quote:
das Panel "ende_pan" und den Text "pantext" einblenden

soll, sähe aus wie folgt:

void haupt_pan_ende_fnc() // der Name ist egal, sollte nur sinnvoll gewählt sein
{
set(ende_pan,SHOW); // zum Schließen schreibst du eine Funktion, die das SHOW-Flag resettet, also "reset(...,SHOW);"
set(pantext,SHOW);
}

Dann im Haupt-Panel:

button(40, 100, "neuc.bmp", "neu.bmp", "neuo.bmp", haupt_pan_ende_fnc, NULL, NULL);


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Fragen zu Menüpanels [Re: Superku] #389812
12/18/11 19:19
12/18/11 19:19
Joined: Dec 2011
Posts: 13
W
witzdestages Offline OP
Newbie
witzdestages  Offline OP
Newbie
W

Joined: Dec 2011
Posts: 13
Danke, aber es kam eben erst eine Fehler Meldung:
Quote:
Error in 'MAIN' line 72 "SHOW" undeclared identifier


Mit VISIBLE klappts aber...

Vielen dank.

Re: Fragen zu Menüpanels [Re: witzdestages] #389813
12/18/11 19:21
12/18/11 19:21
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Öh schreibst/ kompilierst du deinen Code in C-Script und nicht in lite-C?


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Fragen zu Menüpanels [Re: Superku] #389814
12/18/11 19:34
12/18/11 19:34
Joined: Dec 2011
Posts: 13
W
witzdestages Offline OP
Newbie
witzdestages  Offline OP
Newbie
W

Joined: Dec 2011
Posts: 13
Ich dachte es wäre lite-C in dem ich das Script als *.c abspeichere und die acknex.h + default.c scipte mit einfüge, habe mich nur ans Handbuch gehalten da dort auch stand das alles in lite-C geschieben wird.

C-Script sind doch die alten *.wdl Dateien ?

Oder du hast wieder ne neuere Version als ich, in der wieder vieles geändert wurde. Ich habe wie oben schon geschrieben 3dgs 7.5.

Last edited by witzdestages; 12/18/11 19:35.
Re: Fragen zu Menüpanels [Re: witzdestages] #389816
12/18/11 19:46
12/18/11 19:46
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Hm das ist mir dann nicht klar, weshalb er SHOW nicht kennen sollte. Seit A7 (siehe Manual, veraltete Syntax) wurde VISIBLE durch SHOW für nicht-Level-Entities ersetzt (für letztere setzt man bei Bedarf nur INVISIBLE, da diese standardmäßig sichtbar sein sollen).


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Fragen zu Menüpanels [Re: Superku] #389821
12/18/11 20:54
12/18/11 20:54
Joined: Dec 2011
Posts: 13
W
witzdestages Offline OP
Newbie
witzdestages  Offline OP
Newbie
W

Joined: Dec 2011
Posts: 13
Steht bei mir nichts davon im Handbuch, vielleicht in einem späteren Update dazu gekommen ?

Naja es funktioniert und mehr wollte ich auch erst mal nicht wink

Re: Fragen zu Menüpanels [Re: witzdestages] #390081
12/22/11 10:08
12/22/11 10:08
Joined: Dec 2011
Posts: 15
Germany
W
Waldnebel Offline
Newbie
Waldnebel  Offline
Newbie
W

Joined: Dec 2011
Posts: 15
Germany
Hatte ein ähnliches Problem.

Probier mal folgendes:

set(textoderpannel,SHOW); //Pannel oder Text auf Sichtbar
reset(textoderpanne,SHOW); //Pannel oder Text auf Unsichtbar.

So hab ich es in einer Funktion die via Button aufgerufen wird

Gruß Waldnebel

Last edited by Waldnebel; 12/22/11 10:11.
Page 1 of 3 1 2 3

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1