Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, ozgur), 1,415 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19055 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Random Panel #433824
12/07/13 16:06
12/07/13 16:06
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
Hi,
ich versuche nun schon seit Tagen,
in lite c ein Random-Script zu programmieren.

Ich hab die Foren und das AUM durchforstet
und nun die verschiedensten Varianten ausprobiert.

Am Ende habe ich IMMER das Problem,
dass immer nur dasselbe erste Panel angezeigt wird.

(Ich möchte, zur Erklärung, als Intro und während das Level lädt, eines aus zehn Panels zufällig auswählen und anzeigen)

Ich habe nun als eine Variante hier zum Beispiel
ein modifiziertes AUM-Scrpt (dort kann man aus verschiedenen Sounds zufällig einen auswählen) genommen:

Code:
sound_id = integer(random(5));
switch (sound_id)
{
case 0:
set (random01, SHOW);

break;
case 1:
set (random01, SHOW);

break;
case 2:

set (random01, SHOW);

break;
case 3:
set (random01, SHOW);

break;
case 4:
set (random01, SHOW);

break;
}

wait (1);
}



so wie ich das 'verstehe',
gibt random(5) eine Zahl zwischen 0 und 4 zurück,
und "integer" macht daraus eine ganze Zahl.
Das Switch schaltet dann auf den Wert.

Leider wird bei mir IMMER nur das erste Panel angezeigt.

Nun habe ich im Forum gelesen, dass man unbedingt zuvor
irgendwo in der Nain ein
"random_seed(0);" aufrufen müsste.

Hab ich ausprobiert - aber es wird einfach immer nur das erste Panel angezeigt.

übrigens:
Auch wenn ich das ganze mit
Code:
if (sound_id == 1) set (random01, SHOW);
usw



versuche, wird mir immer nur das allererste Panel angezeigt.
Sfz.

Und ich weiss nun wirklich nicht mehr weiter,
- obwohl die Scriptbeispiele ja aus dem AUM sind.

Würde mich über Hilfe, am besten vllt sogar in Form eines Snippets oder Scripts sehr freuen (das Problem kostet mich grad wirklich richtig viel Zeit...)

Grüße


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

(Dr. Seuss, The Lorax)
Re: Random Panel [Re: eq] #433825
12/07/13 16:24
12/07/13 16:24
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
Naja du machst ja auch immer dasselbe, egal ob es 1 oder 4 ist xD
Änder vlt. mal set(random01, SHOW); random01 zu 02 usw ^^

Re: Random Panel [Re: Ch40zzC0d3r] #433826
12/07/13 16:27
12/07/13 16:27
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
ups, sry,
nene ich hab das nur fürs forum neu rüberkopiert,
- daran liegt es nicht. das stimmte zuvor schon.


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

(Dr. Seuss, The Lorax)
Re: Random Panel [Re: eq] #433827
12/07/13 16:33
12/07/13 16:33
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
Code:
sound_id = integer(random(5));
switch (sound_id)
{
case 0:
set (random01, SHOW);

break;
case 1:
set (random02, SHOW);

break;
case 2:

set (random03, SHOW);

break;
case 3:
set (random04, SHOW);

break;
case 4:
set (random06, SHOW);

break;
}

wait (1);
}




- immer nur das erste panel.

Ich hab auch schon versucht, mit 'reset' jeweils die anderen Panels auszuschalten,
da passieren dann ganz komsiche sachen
- also die Panels ändern sich wie in einer schnellen Slideshow.


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

(Dr. Seuss, The Lorax)
Re: Random Panel [Re: eq] #433842
12/07/13 19:32
12/07/13 19:32
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
Mach das mal anders, mach nur ein panel und ändere panel.bmap

Re: Random Panel [Re: Ch40zzC0d3r] #433856
12/07/13 23:46
12/07/13 23:46
Joined: Jan 2002
Posts: 4,225
Germany / Essen
Uhrwerk Offline
Expert
Uhrwerk  Offline
Expert

Joined: Jan 2002
Posts: 4,225
Germany / Essen
Vielleicht mal den ganzen Code posten? Ist das in einer Schleife? Wie initialisierst Du die Panels?


Always learn from history, to be sure you make the same mistakes again...
Re: Random Panel [Re: Uhrwerk] #433880
12/08/13 10:35
12/08/13 10:35
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
#include <mtlFX.c>
///////////////////////////////

random_seed(0);	

BMAP* arrowNull = "arrowNull.tga"; 

BMAP* IntroBlack = "panel_black.bmp";
BMAP* IntroBfSeMa = "panel_intro_01_bfsema.bmp";

BMAP* Rand01 = "PanelArtticketP01.bmp";
BMAP* Rand02 = "PanelArtticketP02.bmp";
BMAP* Rand03 = "PanelArtticketP03.bmp";
BMAP* Rand04 = "PanelArtticketP04.bmp";
BMAP* Rand05 = "PanelArtticketP05.bmp";
BMAP* Rand06 = "PanelArtticketP06.bmp";
BMAP* Rand07 = "PanelArtticketP07.bmp";
BMAP* Rand08 = "PanelArtticketP08.bmp";
BMAP* Rand09 = "PanelArtticketP09.bmp";
BMAP* Rand10 = "PanelArtticketP10.bmp";

PANEL* black    ={pos_x = 0;pos_y = 0;layer = 12;bmap = IntroBlack;alpha = 100;}
PANEL* bfsema   ={pos_x = 0;pos_y = 0;layer = 11;bmap = IntroBfSEMa;alpha = 100;}
PANEL* random01 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand01;alpha = 100;}
PANEL* random02 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand02;alpha = 100;}
PANEL* random03 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand03;alpha = 100;}
PANEL* random04 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand04;alpha = 100;}
PANEL* random05 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand05;alpha = 100;}
PANEL* random06 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand06;alpha = 100;}
PANEL* random07 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand07;alpha = 100;}
PANEL* random08 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand08;alpha = 100;}
PANEL* random09 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand09;alpha = 100;}
PANEL* random10 ={pos_x = 0;pos_y = 0;layer = 10;bmap = Rand10;alpha = 100;}




/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////M A I N //////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

var random_value;
var track_number;
var track_handle;
var soundhandle, sound_id;

function main()
{
	



/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////Mouse/////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
mouse_mode = 1;
mouse_map = arrowNull;
///////////////////////////////////////Screen///////////////////////////////

screen_size.x = 1024;  screen_size.y = 600;
wait(1);


set (black, SHOW);set(black, TRANSLUCENT);////////black ON//////////////////////////////
set (bfsema, SHOW);set(bfsema, TRANSLUCENT);




//////////////////////////////////////////////////black off/////////////////////////////
while(black.alpha > 0){  black.alpha -= 5;wait(1);}
reset(black, SHOW);reset(black, TRANSLUCENT);

wait(-2);
//////////////////////////////////////////////////Panel BfSeMa

while(bfsema.alpha > 0){bfsema.alpha -= 2;wait(1);}
reset(bfsema, SHOW);reset(bfsema, TRANSLUCENT);
wait(-2);



sound_id = integer(random(5));
switch (sound_id)
{
case 0:
set (random01, SHOW);

break;
case 1:
set (random02, SHOW);

break;
case 2:

set (random03, SHOW);

break;
case 3:
set (random04, SHOW);

break;
case 4:
set (random06, SHOW);

break;
}

wait (1);
}




Das ist der ganze Testcode.
(Er läuft, zeigt aber eben immer nur Panel 01 an)

Hinweis:
Ich hab auch schon versucht,
den Random-Teil in eine extra Funktion zu schreiben
und in der main zu starten.
Klappte auch nicht.

Das mit den random-Bitmaps werd ich mal als ncähstes ausprobieren
- Vielen Danke für den Vorschlag.

Grundsätzlich interessiert mich aber schon auch, das Problem zu verstehen.
Zum einen weil der Code ja aus dem AUM ist, zum anderen weil
es hier offensichtlich im Forum darüber schon länger Diskussionen gibt.

Grüße erstmal.
Merci.


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

(Dr. Seuss, The Lorax)
Re: Random Panel [Re: eq] #433883
12/08/13 10:59
12/08/13 10:59
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
random_seed(0);
solltest du mal in function main packen.
Ansonsten wenn du lust hast kad einfach mal das ganze projekt hoch, dann probier ich mal nen bissl rum^^

Re: Random Panel [Re: Ch40zzC0d3r] #433885
12/08/13 12:08
12/08/13 12:08
Joined: Jan 2002
Posts: 4,225
Germany / Essen
Uhrwerk Offline
Expert
Uhrwerk  Offline
Expert

Joined: Jan 2002
Posts: 4,225
Germany / Essen
random_seed muss - wie Ch40zzC0d3r schon gesagt hat - in einer Funktion stehen. Am besten am Anfang der main Funktion. Zudem solltest Du eine Farbe für das Füllen des Bildschirms setzen, sonst verschmiert der Bildschirm, weil die alten Bilder überlagert werden.
Code:
vec_set(screen_color,vector(128,128,128));



Always learn from history, to be sure you make the same mistakes again...
Re: Random Panel [Re: Uhrwerk] #433887
12/08/13 13:41
12/08/13 13:41
Joined: Jan 2004
Posts: 76
Germany
eq Offline OP
Junior Member
eq  Offline OP
Junior Member

Joined: Jan 2004
Posts: 76
Germany
tz.
das war s tatsächlich.
hab das 'random_seed(0);' an den anfang der main geschrieben,
und bekomme endlich meine zufallspannel.
supi.
vielen dank!

zur bildschirmfarbe:

ich lade ja gleich am anfang erstmal ne schwarze bitmap.
- für das intro möchte ich zunächst kurz mein label-logo anzeigen,
dann zufällig eines der ca zehn verschiedenen spiele-covers
(das ganze soll später eine art multiplayer-chat mit zusatzfunktionen werden,
den man dann (im besten falle täglich) vom desktop aus starten soll.
weswegen ich möchte, dass der start a.) nicht langwelig wird, aber auch b.) so schnell wie nur möglich abgeht....)- und zuletzt dann ein lade-panel mit ladebalken. (zur zeit noch der balken aus dem handbuch, aber ich hab denke ich, in den AUMs ne bessere version gefunden)

für diese startsequenz dachte ich eben, es ist am besten, wenn ich die panels -nicht- einblende, sondern ab dem ersten bild lade (das schwarze panel hat den layer 12 und liegt über allen anderen) - und sie dann nacheiannder ausblende.
- bis das letzte bild (nach dem levelstart im hindetrgrund) smooth ins spoiel überblendet.
(mein palyer fällt dabei zudem noch ins level, vllt lass ich ihn dabei dann auch noch drehen? mal sehn)

wie auch immer, ich bin sehr froh das random-problem endlich geklärt zu haben da ich das auch noch an anderen stellen einbauen möchte.

wie schön, wenn sich die dinge nach zwei tagen, die echt an die nerven gingen, endlich klären...
nochmals vielen dank.

laugh


“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 | 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