Sterne

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Sterne

Beitrag 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
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag 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
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag 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?
Benutzeravatar
Kiffi
Beiträge: 10715
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag 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.
Antworten