Habe ein Problem mit dem Zufall

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Razor1994

Betreff: Habe ein Problem mit dem Zufall

BeitragDi, Mai 11, 2010 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich versuche gerade zufällig Kreise auf dem Bildschirm erscheinen zu lassen die mein "Futter" darstellen sollen.(vorläufig) Und weil ich diese auf kollisionen prüfen möchte, wollte ich die x und y Koordinaten in Variabeln abspeichern. Ich habs so gemacht.(sagts wenns falsch ist.)Code: [AUSKLAPPEN]
Global rund2.futter
Type futter
   Field x
   Field y
   Field groesse
   Field naehrwert
End Type

Restore Futter
anzahl = Rnd(1,30)
For i = 1 To anzahl
   rund2 = New futter
   Read x, y
   rund2\x = x
   rund2\y = y
   rund2\groesse = 10
   rund2\naehrwert = 5
Next

;dann halt in der Haupschleife

Repeat
cls
Futter
flip
until keyhit(1)


Function Futter()
   Oval rund2\x, rund2\y, rund2\groesse, rund2\groesse
End Function



;Daten
.Futter
;und hier einfach 30 mal
Data Rnd(10,630), Rnd(10,470)


Mein Problem ist jetzt aber das, da ich das ja per "Zufall" mache, dass immer die Fehlermeldung "data expression must be constant" kommt.
User posted image
kommt in meinen Runescape clan

mpmxyz

BeitragDi, Mai 11, 2010 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst hier kein Data.
Nutze diesen Code zur Initialisierung, anstatt einen Umweg über Data machen zu wollen:
BlitzBasic: [AUSKLAPPEN]
   rund2\x = Rnd(10,630)
rund2\y = Rnd(10,470)

Data brauchst du nur, wenn du vorherbestimmte Daten im Code festlegen möchtest.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Silver_Knee

BeitragDi, Mai 11, 2010 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
data expression must be constant


Heißt übrigens dass in Data-Blocks alles Konstant sein muss. Ein Data-Block ist im Prinzip einfach ein Block Daten der an deine exe hinten ran geklatscht wird. Demnach muss er beim Erstellen der exe ja schon bekannt sein.
 

Razor1994

BeitragDi, Mai 11, 2010 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@mpmxyz
Hatte ich ja am Anfang aber dann kam nur ein einziger Kreis.(immer(ja auch mit seedrnd)) und es soll ja eine zufällige anzahl zwischen 1 und 30 erscheinen.

@silver_knee
Ich weiss was es übersetzt heisst.
User posted image
kommt in meinen Runescape clan

D2006

Administrator

BeitragDi, Mai 11, 2010 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Vorschlag von mpmxyz ist korrekt.

Das Problem ist, dass du dir nur den zuletzt erstellten Kreis in rund2 merkst und nur diesen einenzZeichnest. Die Globale kannst du weglassen. Stattdessen in der Zeichenfunktion "Futter()" mit einer For-Each Schleife alle Kreise durchgehen und malen.
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
 

Razor1994

BeitragDi, Mai 11, 2010 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ah danke es klappt wiekonnte ich nur so etwas banales übersehen.^^
User posted image
kommt in meinen Runescape clan

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group