Ressourcen sparen bei Zufallseditor
Übersicht

LarsBetreff: Ressourcen sparen bei Zufallseditor |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey Allerseits!
Ich programiere momentan einen Zufallseditor für mein 2d jump and run Spiel. Allerdings zieht der entweder sehr viel ressourcen und oder da functioniert etas nicht. Der Codeabschnitt vom editor ist: Code: [AUSKLAPPEN] Function zufallf()
gy=0 a=0 [color=red]Repeat[/color] SeedRnd MilliSecs () Repeat zwy = Rnd(0,9) zwx = Rnd(1,6) If zwy=0 Then y=350-(gy+0) If zwy=1 Then y=350-(gy+12) If zwy=2 Then y=350-(gy+24) If zwy=3 Then y=350-(gy+36) If zwy=4 Then y=350-(gy+48) If zwy=5 Then y=350-(gy+60) If zwy=6 Then y=350-(gy+72) If zwy=7 Then y=350-(gy+84) If zwy=8 Then y=350-(gy+96) If zwy=9 Then y=350-(gy+108) If zwx=1 Then map%(0,y) = 1 If zwx=2 Then map%(44,y) = 1 If zwx=3 Then map%(88,y) = 1 If zwx=4 Then map%(132,y) = 1 If zwx=5 Then map%(176,y) = 1 If zwx=6 Then map%(220,y) = 1 a=a+1 Until a=10 gy=gy+109 [color=red]Until gy>=109[/color] End Function Wenn man die rote schleife allerdings mit einenm Until was erst bei über 109 aufhört fnktioniert garnichts mehr! Ich hoffe auf Hilfe! LG Lars |
||
![]() |
PokoyoBetreff: Re: Ressourcen sparen bei Zufallseditor |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, habe mir jetzt nicht alles angesehen aber dies :
Lars hat Folgendes geschrieben: If zwy=0 Then y=350-(gy+0) If zwy=1 Then y=350-(gy+12) If zwy=2 Then y=350-(gy+24) If zwy=3 Then y=350-(gy+36) If zwy=4 Then y=350-(gy+48) If zwy=5 Then y=350-(gy+60) If zwy=6 Then y=350-(gy+72) If zwy=7 Then y=350-(gy+84) If zwy=8 Then y=350-(gy+96) If zwy=9 Then y=350-(gy+108) könntest du schonmal ersetzen durch : y=350-gy+(zwy*12) spart dir schon mal ein paar if abfragen ![]() gruss pokoyo edit rechtschreibung ![]() |
||
|Win10 64bit|FX 8350@4,5 GHz|Asrock 990FX Killer Fatality|16GB HyperX|R9 290X|Blitz3D|BlitzMax| |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Deine innere Schleife wird dann abgebrochen, wenn a=10. Dies kann nur beim ersten Mal der Fall sein. Da Du a in der äußeren Schleife nicht wieder auf 0 setzt, wird es im 2.(äußeren) Durchgang nun auf 11 bis 20 gestellt.
Meiner Meinung nach muss die Zeile "A=0" nach dem "roten" Repeat im code stehen. BlitzBasic: [AUSKLAPPEN] Function Zufallf() So sieht die Funktion etwas gestrafft aus: 1. Wenn Du eine feste Anzahl Durchläufe A% erwartest, kannst Du es ebenso mit einer For/Next-Schleife machen. 2. Aus den Zufallszahlen zwX und zwY lassen sich in deinem Code die Map-Koordinaten ausrechnen, weil sie ja in deinen IF-Abfragen linear um 12 bzw. 44 ansteigen (wie Pokoyo schon geschrieben hat und mit den Zufallszahlen in Korrelation stehen. If-Abfragen sind immer dort sinnvoll, wenn die Geltungsbereiche völlig zusammenhanglos sind (oder scheinen...) Der Abbruch "Until gY>109" macht eigentlich auch wenig Sinn, da auch dieser Zustand immer nach dem 2.Durchlauf erreicht wird. Hier wäre auch eine "For b%=1 to 2"-Schleife denkbar. |
||
Lars |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die Antworten!
Jetzt läuft alles! LG Lars |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group