endweder die random-funktion spinnt oder ich
Übersicht

FloridarolfBetreff: endweder die random-funktion spinnt oder ich |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute,
ich habe vor kurzem mit BlitzPlus angefangen. Ich bin gerade dabei eine Wirtschaftsimulation mit eingebauten Minigames zu basteln. Es ist vielleicht etwas happig fürnen Anfänger, aber ich hatte keinen Bock den 12345sten Tetris- bzw. den 3587sten PacmanClone zu produzieren. Zudem kann ich ein wenig C. Und nun zu meinem Problem: Es handelt sich um ein Minigame in dem man auf einer 3-spurigen Straße entgegenkommenden Autos ausweichen muss. Ich habe vor, die Gegner in zufälligen Abständen, aber niemals mehr als 2 Gegner gleichzeitig fahren zu lassen. Mit meinem derzeitigen Quelltext kommen die entgegenkommenden Fahrer aber leider trotz Random-Funktion nicht zufällig, sondern immer gleich. Aber warum? Code: [AUSKLAPPEN] Function stau()
hinterg = LoadImage ("stauhin.png") player = LoadImage ("stautruck.png") gegner = LoadImage ("staugeg.png") streifen= LoadImage ("staustreif.png") SetBuffer BackBuffer() frameTimer=CreateTimer(60) WaitTimer (frameTimer) DrawImage hinterg,0,0 status=2 Repeat Cls DrawImage hinterg,0,0 aktstrei=aktstrei+3 DrawImage streifen,250,aktstrei DrawImage streifen,350,aktstrei DrawImage streifen,250,aktstrei+150 DrawImage streifen,350,aktstrei+150 DrawImage streifen,250,aktstrei+300 DrawImage streifen,350,aktstrei+300 DrawImage streifen,250,aktstrei+450 DrawImage streifen,350,aktstrei+450 If aktstrei+450>530 Then aktstrei=0 EndIf ;Gegner aktiv=Rnd(0,1000) bahndom=Rnd(1,3) Select bahndom Case 1 bahn=185 Case 2 bahn=285 Case 3 bahn=385 End Select If geganz<2 If aktiv<20 Then geg1=1 geganz=geganz+1 spur1=bahn ElseIf aktiv>980 Then geg2=1 geganz=geganz+1 spur2=bahn EndIf EndIf If geg1=1 Then DrawImage gegner,spur1,aktho aktho=aktho+4 EndIf If geg2=1 Then DrawImage gegner,spur2,akthob akthob=akthob+4 EndIf If aktho>480 Then geganz=geganz-1 geg1=0 aktho=0 EndIf If akthob>480 Then geganz=geganz-1 geg2=0 akthob=0 EndIf ;Trucksteuerung ;status1=links, status3=rechts If KeyHit (203) =1 And status>1 Then status=status-1 ElseIf KeyHit(205)=1 And status<3 Then status=status+1 EndIf Select status Case 1 DrawImage player,185,420 Case 2 DrawImage player,285,420 Case 3 DrawImage player,385,420 End Select Flip Until KeyHit(1)=1 FreeTimer frameTimer End Function |
||
![]() |
Dreiser |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst am Anfang deines Codes noch "Seedrnd Millisecs()" verwenden.
Schau dir mal http://www.blitzbase.de/befehle2d/seedrnd.htm an. |
||
Floridarolf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank ! | ||
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() Antworten mit Zitat ![]() |
---|---|---|
BTW, du benutzt zur Zufallszahlenerzeugung Rnd()
Code: [AUSKLAPPEN] aktiv=Rnd(0,1000)
bahndom=Rnd(1,3) Für diesen Code reicht aber auch Rand(), welches gleich arbeitet, nur dass es einen Integer zurückgibt. Code: [AUSKLAPPEN] aktiv = Rand(0, 1000) bahndom = Rand(1, 3) Desweiteren muss WaitTimer() in die Hauptschleife und KeyHit() muss nicht mit KeyHit(x) = 1 geprüft werden. Und die Sache mit bahndom und dem Zeichnen des Spielers kann man auch eleganter lösen. Code: [AUSKLAPPEN] Repeat
Cls bahn = Rand(1,3) * 100 + 85 ... If KeyHit (203) And status > 1 Then status = status - 1 Else If KeyHit(205) And status < 3 Then status = status + 1 EndIf ... DrawImage(player, status * 100 + 85, 420) WaitTimer(frameTimer) Flip Until KeyHit(1) Nur so .. und viel Spaß noch mit Blitz! |
||
![]() |
D2006AdministratorBetreff: Re: endweder die random-funktion spinnt oder ich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wollte noch fix etwas anmerken:
Floridarolf hat Folgendes geschrieben: Ich bin gerade dabei eine Wirtschaftsimulation mit eingebauten Minigames zu basteln. Es ist vielleicht etwas happig fürnen Anfänger, aber ich hatte keinen Bock den 12345sten Tetris- bzw. den 3587sten PacmanClone zu produzieren.
Relevant ist doch gar nicht, dass es schon tausende einfache Spiele gibt. Relevant ist nur, dass es bedeutend besser ist, dass du mit etwas anfängst, was deinem Lernfortschritt entspricht, da du sonst an Probleme geraten wirst, die für den Anfang ne Nummer zu groß sind, was sehr demotivierend sein kann und eigentlich keinen Spaß macht. Deswegen empfehlen wir Space-Shooter, Snake und Co. Die übelst tolle WiSim, das Mega-Rollenspiel oder den nächsten Top-Ego-Shooter würden wir alle gern programmieren. Daraus wird aber bei den wenigsten was. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
BigMaexle |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich würde einfach die WiSim aus der "Wisim mit Minigames" rausnehmen | ||
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber |
FloridarolfBetreff: Re: endweder die random-funktion spinnt oder ich |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
D2006 hat Folgendes geschrieben: Relevant ist doch gar nicht, dass es schon tausende einfache Spiele gibt. Relevant ist nur, dass es bedeutend besser ist, dass du mit etwas anfängst, was deinem Lernfortschritt entspricht, da du sonst an Probleme geraten wirst, die für den Anfang ne Nummer zu groß sind, was sehr demotivierend sein kann und eigentlich keinen Spaß macht. Natürlich habe ich in meiner ersten Blitz-Session diverse Tutorials durchgeackert und einen kleinen Space-Shooter mit Sound und gespeichertem Highscore als Textdatei programmiert. Ich denke,dass ich mich mit der WiSim nicht übernommen habe. Die Hauptmenu-Schleife mit den einzelnen Menupunkten ist schon halb fertig. Strukturell habe ich viele Dinge in Funktionen oder sogar anderen bb-Dateien ausgelagert, so dass ich einzelne Dinge, wie z.B. dieses Minigame auch einzeln ausführen kann. Durch mein Studium bin ich bereits mit C vertraut, so dass ich beim strukturellen Aufbau weniger Probleme habe. Leider habe ich noch großen Nachholbedarf in Sachen Grafik, das wird schon irgendwie werden. Vielen Dank nochmal für den Support! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group