Hallo liebe GS-Comunity,

Ich habe ein kleines Script in lite-c geschrieben.

Es ist einfach nur ein kleines Menu wo man im Hintergrund einen Level sieht später sollen sich auch verschiedene Entitys ins Bild bewegen so das das Menu nicht langweilig ist.

Aber zuerst einmal eine ganz andere Frage:
Bevor das Menu kommt lasse ich noch ein Panel einblenden wo der Name vom Spiel steht. Dort soll eigentlich der Mauszeiger noch nicht eingeblendet werden. Allerdings wird er Angezeigt und ich verstehe nicht warum. Ich gehe einfach mal davon aus das ich die wait() funktion nicht richtig verstehe.
Den Code habe ich auf verschiedene scriptdateien aufgeteilt.

Schaut es euch doch bitte einmal an.

Click to reveal.. (main.c)


// Main

#include <acknex.h> // pure mode
#include <default.c>

#define PRAGMA_PATH "Vorspann"
#define PRAGMA_PATH "Menu"
#define PRAGMA_PATH "Endbildschirm"

#include "vorspann.c"
#include "endbildschirm.c"
#include "menu.c"



function main()
{

video_mode = 8; // screen size 1024x768
video_depth = 32; // 32 bit colour D3D mode
video_screen = 1; // Vollbild

vec_set(screen_color,vector(255,0,0)); // blau

wait(-3); //wartet bis das Fenster erscheint

//-----
// Vorspann
//

vorspann();

//
// Vorspann ENDE
//-----

//-----
// Menu
//

menu(); //Menu noch im bau laugh

//
// Menu ENDE
//-----


} // Ende von MAIN




Click to reveal.. (vorspann.c)


// Vorspann

BMAP* Titel_jpg;
PANEL* VorspannPANEL;

function vorspann()
{

Titel_jpg = bmap_create("Titel.jpg");
VorspannPANEL = pan_create("bmap = Titel_jpg;",3);

VorspannPANEL.flags = VISIBLE;


while (key_any == 0) { wait(1); }

ptr_remove(VorspannPANEL);
ptr_remove(Titel_jpg);


}




Click to reveal.. (menu.c)


// Menu

BMAP* Menu_Rahmen_tga;
BMAP* Menu_back_tga;
BMAP* Maus_tga;
BMAP* Exit_button_normal_tga;
BMAP* Exit_button_over_tga;
BMAP* Exit_button_click_tga;
PANEL* MainmenuPANEL;
PANEL* MainmenuBack_pan;


function menu()
{

level_load("menulvl.wmb");
wait(3);

//if(!VorspannPANEL)
mouse_mode = 2;

Maus_tga = bmap_create("Maus.tga");
mouse_map = Maus_tga;

Menu_Rahmen_tga = bmap_create("Menu_Rahmen.tga");
Exit_button_normal_tga = bmap_create("Exit_button_normal.tga");
Exit_button_over_tga = bmap_create("Exit_button_over.tga");
Exit_button_click_tga = bmap_create("Exit_button_click.tga");

MainmenuPANEL = pan_create("bmap = Menu_Rahmen_tga;
pos_x = 75;
pos_y = 100;
button (30, 380, Exit_button_click_tga, Exit_button_normal_tga, Exit_button_over_tga,endbildschirm,NULL,NULL);
",2);

Menu_back_tga = bmap_create("Menu_back.tga");
MainmenuBack_pan = pan_create("bmap = Menu_back_tga;pos_x = 75; pos_y = 101;",1);

MainmenuPANEL.flags = VISIBLE;
MainmenuBack_pan.alpha = 25;
MainmenuBack_pan.flags = VISIBLE | TRANSLUCENT;

while(MainmenuBack_pan)
{
while(mouse_mode > 0)
{
mouse_pos.x = mouse_cursor.x;
mouse_pos.y = mouse_cursor.y;
wait(1);
}

while(1)
{
MainmenuBack_pan.pos_y += 1;
wait(10);
if (MainmenuBack_pan.pos_y == 110) { break;}
}


while(1)
{
MainmenuBack_pan.pos_y -= 1;
wait(10);
if (MainmenuBack_pan.pos_y == 101) { break;}
}

while(1)
{
MainmenuBack_pan.alpha -= 1;
wait(10);
if(MainmenuBack_pan.alpha == 15) { break;}
}

while(1)
{
MainmenuBack_pan.alpha += 1;
wait(10);
if(MainmenuBack_pan.alpha == 25) { break;}
}



}

}



Click to reveal.. (endbildschirm.c)


// Endbildschirm

BMAP* Ende_jpg;
PANEL* EndbildschirmPANEL;

function endbildschirm()
{
while (key_any == 1) { wait(1); }

Ende_jpg = bmap_create("Ende.jpg");
EndbildschirmPANEL = pan_create("bmap = Ende_jpg;",5);

EndbildschirmPANEL.flags = VISIBLE;

while (key_any == 0) { wait(1); }

sys_exit("bis bald ...");

}



Wichtig finde ich auch den Speicher möglichst frei zu halten.
also die Panels und Bmaps sollen erst dann erstellt werden wenn sie benötigt werden und sobald sie nicht mehr benötigt werden auch wieder aus dem Speicher verschwinden!

DANKE!!!