Type problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

TeDy14

Gast

Betreff: Type problem

BeitragSo, Dez 09, 2007 19:51
Antworten mit Zitat
Hallo
Ich bastel imho an einem kleinen pixel system aber hab irgenteinen denkfehler im code >.<
Habs schonmal ganz neu gemacht kam aber wieder das selbe Problem.

Also hier erstmal der Code:
Code: [AUSKLAPPEN]
Graphics 800,600,2
SetBuffer BackBuffer()

Type pixel
Field id$
Field x
Field y
Field typ
Field gew
Field r
Field g
Field b
End Type

SeedRnd(MilliSecs())

For a=0 To 100
p.pixel=New pixel
p\x=200
p\y=Rand(0,600)
p\typ=1
p\id$=Rand(1,10000)+"|"+Rand(1,1000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)
Next

While Not KeyHit(1)



For p.pixel = Each pixel
 If p\typ=1

  For p1.pixel = Each pixel
   If p1\y-1=p\y And p\id$<>p1\id$ Then Text 10,20,"Da":unten=0:Else unten=1
  Next

 If unten=1 And p\y<599 Then p\y=p\y+1

 EndIf


 Plot p\x,p\y
Next













If MilliSecs()>=zeit+1000 Then
         zeit=MilliSecs()
         fps=flips
         flips=0
      End If
Text 10,10,fps+"    "+num

Flip(): flips=flips+1
Cls()
Wend


Also ich erstelle 100 pixel die dann runterfallen und aufeinander liegen sollen
nur geht das nur bei einem pixel ...
also es ligt nur 1 pixel auf einem anderen und die anderen liegen irgentwie dahinter oder so...
Sieht einer den Fehler ?

TeDy
 

phil217

BeitragSo, Dez 09, 2007 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
jop, hab den fehler gefunden(ich habs auch noch bissl hin und her geschoben damits für mich übersichtlicher wird)
du hattest kein exit in der schleife, dadurch war dein "unten" immer 1
(du könntest natürlich auch das "unten = 1" for die for-each schleife legen, dann gehts auch)

Code: [AUSKLAPPEN]

Graphics 800,600,2
SetBuffer BackBuffer()

Type pixel
Field id$
Field x
Field y
Field typ
Field gew
Field r
Field g
Field b
End Type

SeedRnd(MilliSecs())

For a=0 To 100
p.pixel=New pixel
p\x=200
p\y=Rand(0,600)
p\typ=1
p\id$=a;Rand(1,10000)+"|"+Rand(1,1000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)+"|"+Rand(1,10000000)
Next

While Not KeyHit(1)

Cls()


For p.pixel = Each pixel
   If p\typ=1

      For p1.pixel = Each pixel
         If p\y+1=p1\y
            Text 10,20,"Da"
            unten=0
            Exit
         Else
            unten=1
         EndIf
      Next

      If unten=1 And p\y<599
         p\y=p\y+1
      EndIf

   EndIf

   Plot p\x,p\y
Next



If MilliSecs()>=zeit+1000 Then
         zeit=MilliSecs()
         fps=flips
         flips=0
      End If
Text 10,10,fps+"    "+num

Flip()
flips=flips+1

Wend

End
 

TeDy14

Gast

BeitragSo, Dez 09, 2007 20:47
Antworten mit Zitat
Ach danke ...
Darauf wär ich in 10 jahren nicht gekommen obwohl es so leicht ist xD

Xeres

Moderator

BeitragSo, Dez 09, 2007 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würd' vorschlagen die ID etwas sinnvoller zu gestallten:
Code: [AUSKLAPPEN]
p\id=handle(p)
Die ist eindeutiger und sinnvoller als 1 Mio. Zufallszahlen...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

phil217

BeitragSo, Dez 09, 2007 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
oder man nummeriert sie einfach fortlaufend (p\id$=a), hatte ich ja geändert

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group