Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
1 registered members (TipmyPip), 18,449 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Mehrere Panel ausblenden #402801
06/10/12 13:59
06/10/12 13:59
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
Hallo,
vorweg:
ich hab früher mit c-script ein paar sachen gemacht,
dann ne längere pause eingelegt,
und beginne nun mit lite-c
und einem neuen projekt ganz von vorne.

Im moment versuche ich, ein Intro zu machen, das abläuft, während das level im hintergrund lädt.

und mit einem panel funktioniert das auch wunderbar:

PANEL* black =
{
pos_x = 0;
pos_y = 0;
layer = 12;
bmap = Intro11;
alpha = 100;
}
function main()
{ screen_size.x = 1024; screen_size.y = 600;

set(black,SHOW);
level_load("level_sunflowers.WMB");
wait(1);

wait(-4);

set(black,TRANSLUCENT);
for (black.alpha=100; black.alpha-=5*time_step; black.alpha>0)
wait(1);
reset(black,TRANSLUCENT);

}

die idee ist nun, 3 panels übereinander zu legen,
und nacheinander auszublenden.

komischerweise schaffe ich es immer nur gerade mal ein panel auszublenden, ist wie verhext.
also: das oberste panel wird ausgeblendet, wunderbar,
aber das darunter bleibt einfach stehen.
obwohl der code fürs ausblenden ja derselbe ist, nur eben dem panel angepasst...
ich mach da jetzt schon seit über einem tag dran rum. sfz.
---------------------------------------------------------------
BMAP* Intro11 = "panel_intro_00_black.bmp";
BMAP* Intro10 = "panel_intro_01_bfsema.bmp";
BMAP* Intro09 = "panel_Intro_02_Artticket.bmp";


PANEL* black = //
{
pos_x = 0;
pos_y = 0;
layer = 11;
bmap = Intro11;
alpha = 100;
}
PANEL* bfsema = ///
{
pos_x = 0;
pos_y = 0;
layer = 10;
bmap = Intro10;
alpha = 100;
}
PANEL* artticket = //
{
pos_x = 0;
pos_y = 0;
layer = 09;
bmap = Intro09;

alpha = 100;
}


function main()
{ screen_size.x = 1024; screen_size.y = 600;

set(black,SHOW);
set(bfsema,SHOW);
set (artticket,SHOW);

level_load("level_sunflowers.WMB");

wait(1);

set(black,TRANSLUCENT);
for (black.alpha=100; black.alpha-=5*time_step; black.alpha>0)
wait(1);
reset(black,TRANSLUCENT);

wait(-4);

set(bfsema,TRANSLUCENT);
for (bfsema.alpha=100; bfsema.alpha-=5*time_step; bfsema.alpha>0)
wait(1);
reset(bfsema,TRANSLUCENT);

wait(1);

set(artticket,TRANSLUCENT);
for (artticket.alpha=100; artticket.alpha-=5*time_step; artticket.alpha>0)
wait(1);
reset(artticket,TRANSLUCENT);

wait(1);

}

ich hatte am anfang den panels flags vergeben,
(SHOW) und dachte, dass es daran liegen könnte.
jetzt hab ich die flags mal weggemacht, das ding läuft,
aber eben immer nur bis zum obersten panel.

mir fällt nun nichts mehr ein.

grüße.

Re: Mehrere Panel ausblenden [Re: eq] #402804
06/10/12 14:21
06/10/12 14:21
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Also Ich würde das ganze so machen:
Code:
set(panel, TRANSLUCENT);

while(panel.alpha > 0)
{
   panel.alpha -= 2;
   wait(1);
}

reset(panel1, TRANSLUCENT);



sollen mehrere Panels gleichzeitig ausgeblendet werden so:

Code:
set(panel1, TRANSLUCENT);
set(panel2, TRANSLUCENT);
set(panel3, TRANSLUCENT);

while(panel1.alpha > 0)
{
   panel1.alpha -= 2;
   panel2.alpha = panel1.alpha;
   panel3.alpha = panel1.alpha;
   wait(1);
}

reset(panel1, TRANSLUCENT);
reset(panel2, TRANSLUCENT);
reset(panel3, TRANSLUCENT);



EDIT: Mir fällt gerade ein, dass ich mal eine Funktion gemacht habe,
mit der man Bilder auf der Mitte des Bildschirms für bestimmte Zeit einblenden kann...

Wenn du willst kann ich dir den code dafür geben

Last edited by Kartoffel; 06/10/12 14:23.

POTATO-MAN saves the day! - Random
Re: Mehrere Panel ausblenden [Re: Kartoffel] #402806
06/10/12 14:31
06/10/12 14:31
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
Hi, merci erstmal,

also das fade out-script-schnipsel hab ich aus dem manual...

ok, ich teste das jetzt mal aus,
das andere script würd ich mir schon gerne mal anschauen, vorallem, weil ich mich irgendwie an dieses lite-c gewöhnen will...

thx a lot


“It's not about what it is, it's about what it can become.”

(Dr. Seuss, The Lorax)
Re: Mehrere Panel ausblenden [Re: eq] #402808
06/10/12 14:36
06/10/12 14:36
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
ähm.
achso,
also die panels sollen natürlich nicht alle gleichzeitig ausgeblendet werden,
sondern jeweils nach ner kleinen pause von 2-3 sekunden.
- ich möchte zunächst ein logo einblenden,
und dann den 'spieletitel'.
und dann noch zusätzliche infos
(welche tasten usw.)


“It's not about what it is, it's about what it can become.”

(Dr. Seuss, The Lorax)
Re: Mehrere Panel ausblenden [Re: eq] #402809
06/10/12 14:41
06/10/12 14:41
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kein problem wink

hier ist der code-auszug:
Code:
int splash_num = 0;
int splash_num_current = 0;

void show_picture(STRING* _pic, var _time_in, var _time_stay, var _time_out)
{
	int _my_splash_num = splash_num;
	
	splash_num++;
	
	//> Wait until all previous Pictures were displayed
	while(splash_num_current < _my_splash_num) wait(1);
	
	
	//> Create a Panel
	
	BMAP* _temp_bmap = bmap_create(_pic);
	PANEL* _temp_pan = pan_create("flags = SHOW | TRANSLUCENT; alpha = 0;",1000);
	
	
	//> Set bmap and position
	
	_temp_pan.bmap = _temp_bmap;
	_temp_pan.pos_x = screen_size.x / 2 - bmap_width(_temp_bmap) / 2;
	_temp_pan.pos_y = screen_size.y / 2 - bmap_height(_temp_bmap) / 2;
	
	
	//> Fade in

	var _alpha_temp = 100 / (_time_in * fps_max);
	
	while(_temp_pan.alpha < 100)
	{
		_temp_pan.alpha += _alpha_temp;
		wait(1);
	}
	_temp_pan.alpha = 100;
	
	
	//> Wait
	
	wait(-_time_stay);
	
	
	//> Fade out
	
	_alpha_temp = 100 / (_time_out * fps_max);
	
	while(_temp_pan.alpha > 0)
	{
		_temp_pan.alpha -= _alpha_temp;
		wait(1);
	}
	
	splash_num_current++;
	
	//> Delete it again
	ptr_remove(_temp_pan);
	ptr_remove(_temp_bmap);
}



Das ganze wird so aufgerufen:
show_picture("picture.png", 1, 0.2, 1.5);

Das würde jetzt das bild picture.png 1 Sekunde lang einblenden, 0.2 Sekunden lang
stehenlassen und 1.5 Sekunden lang ausblenden

Es ist auch nicht nötig wait(x); zwischen den funktions-aufrufen auszuführen.
Es wird automatisch immer erst das nächste Bild angezeigt, wenn das vorherige ausgeblendet ist.

Last edited by Kartoffel; 06/10/12 14:45.

POTATO-MAN saves the day! - Random
Re: Mehrere Panel ausblenden [Re: Kartoffel] #402816
06/10/12 15:03
06/10/12 15:03
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
1. also die while-schleife funktioniert jetzt wunderbar mit mehreren panels, vielen dank.

2. kurze zwischenfrage, wie fügt man hier code richtig ein?
ich find hier irgednwie keinen button, mit 'create a list'?

3. das andere, neue script wäre mir grad zu kompliziert.
aber an der stelle vllt ein paar verständnis-fragen...

- ich wollte zunächst die zeit zwischen dem panel-fade mit einer sleep-anwweisung machen, aber kam ne fehlermeldung. (script-editor hat das aber mit drin) jetzt mach ichs mit wait(-3), funktioniert auch, aber ist das 'sleep' eine alte c-script-anweisung, die nicht mehr funktioniert?
was macht in dem zusammenhang "wait(-_time_stay);"?

- früher musste/konnte man bmps wieder aus dem grafikspeicher löschen, irgendwie mit bmp purge, gibt s das noch?


laugh


“It's not about what it is, it's about what it can become.”

(Dr. Seuss, The Lorax)
Re: Mehrere Panel ausblenden [Re: eq] #402817
06/10/12 15:11
06/10/12 15:11
Joined: Jul 2008
Posts: 2,110
Germany
rayp Offline

X
rayp  Offline

X

Joined: Jul 2008
Posts: 2,110
Germany
Schreibe CODE in eckigen Klammern und /CODE in eckigen klammern.

Quote:
sleep(x)
Gibt es nicht mehr - verwenden Sie stattdessen wait(-x). Aber Achtung: Sleep(x) (mit großem 'S') gibt es sehr wohl, es ist eine Standard-Windows-Funktion, die sich deutlich anders verhält, als das alte sleep()!


wait (-1); // Eine Sekunde warten

bmap_purge(bitmap) //gibt Speicher wieder frei

mfg

Last edited by rayp; 06/10/12 15:12.

Acknex umgibt uns...zwischen Dir, mir, dem Stein dort...
"Hey Griswold ... where u gonna put a tree that big ?"
1998 i married my loved wife ... Sheeva from Mortal Kombat, not Evil-Lyn as might have been expected
rayp.flags |= UNTOUCHABLE;
Re: Mehrere Panel ausblenden [Re: eq] #402818
06/10/12 15:18
06/10/12 15:18
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Quote:
wie fügt man hier code richtig ein?
[code] für den anfang und
[#/code] (ohne das #) für ende


Quote:
was macht in dem zusammenhang "wait(-_time_stay);"?
wait mit einer positiven Zahl wartet die angegebene Zahl in Frames.
wait mit einer negativen Zahl wartet die angegebene Zahl in Sekunden.

wait(-_time_stay);
wird für die Wartezeit zwischen ein und ausblenden verwenden.

da _time_stay die übermittelte variable für die wartezeit in sekunden ist, muss
-_time_stay verwendet werden.


Quote:
früher musste/konnte man bmps wieder aus dem grafikspeicher löschen, irgendwie mit bmp purge, gibt s das noch?
Ja, bmap_purge gibt es noch, ptr_remove - wie ich es auch im Code verwende - sollte aber auch funktionieren.

EDIT: Falls ptr_remove den zugewiesenen Speicher nicht automatisch wieder freigibt, bitte sagen...
Dann muss ich n' Haufen Code ändern...

Last edited by Kartoffel; 06/10/12 15:22.

POTATO-MAN saves the day! - Random
Re: Mehrere Panel ausblenden [Re: Kartoffel] #402821
06/10/12 15:48
06/10/12 15:48
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
thx


“It's not about what it is, it's about what it can become.”

(Dr. Seuss, The Lorax)

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

Gamestudio download | 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