Seite 1 von 1
Sterne
Verfasst: 06.05.2005 18:55
von Gamer
Das ist ein alter BB-Code von mir, wie müßte der "richtig" in PB aussehen?
Types weg und mit Array arbeiten oder .... ?
Code: Alles auswählen
Type star
Field x,y
End Type
For t=1 To 300:s.star=New star:s\x=Rand(5,795):s\y=Rand(5,120):Next
For s.star=Each star
Color 255,255,255
Rect s\x,s\y,1,1
Next
Verfasst: 06.05.2005 19:03
von AndyX
Type ist AFAIK das selbe wie Structure, und Color und Rect würde Box(x,y,länge,breite,RGB(255,255,255)) entsprechen. Wenn das "New star:S" was LinkedList ähnliches sein soll, dann würd ichs mit LinkedList machen. Da kannste das "For s.start=Each star" in "ForEach LLname()" umwandeln.
Greetz,
AndyX
Verfasst: 06.05.2005 20:32
von Gamer
So müßte das etwa dann aussehen:
Code: Alles auswählen
Structure star
x.l
y.l
EndStructure
NewList star.star()
For t=1 To 300
x=Random(795)
y=Random(120)
AddElement(star())
*********************** star()=
Next
ForEach star()
*********************** Box(x,y,1,1,RGB(255,255,255))
Next
1) Wie adde ich aber den x + y-Wert in die List?
2) Und wie lese ich die wieder aus?
Verfasst: 06.05.2005 21:48
von Kiffi
Code: Alles auswählen
Structure s_Stern
xPos.l
yPos.l
EndStructure
Dim Stern.s_Stern(299)
For intI = 0 To 299
Stern(intI)\xPos=Random(795)
Stern(intI)\yPos=Random(120)
Next intI
For intI = 0 To 299
Box(Stern(intI)\xPos,Stern(intI)\yPos,1,1,RGB(255,255,255))
Next intI
Verfasst: 06.05.2005 23:22
von traumatic
Gamer hat geschrieben:1) Wie adde ich aber den x + y-Wert in die List?
2) Und wie lese ich die wieder aus?
Code: Alles auswählen
For t=1 To 300
AddElement(star())
star()\x = Random(795)
star()\y = Random(120)
Next
ResetList(star())
While NextElement(star())
Box(star()\x, star()\y, 1, 1, RGB(255,255,255))
Wend
Nur um auf Deine Fragen einzugehen.
Kiffis Vorschlag mit dem Array ist wesentlich sinnvoller.
Der Original-Code soll übrigens anscheinend einen Bereich von 800x125
mit jeweils 5 Pixel Abstand zum Rand ausfüllen, aber das nur am Rande.