Seite 1 von 1

einige zufällige Punkte

Verfasst: 25.07.2012 21:08
von TheNewOne
Hallo zusammen,
ich bins mal wieder und komm bei meinem momentanen Projekt nicht vorwärts. /:->
Es geht darum im Vollbildmodus mittels Random() 10 verschiedene Punkte zu zeichnen die, sobald man eine Taste drückt an ihrer Stelle bleiben sollen. Nur mag mir das irgendwie nicht gelingen. Bei meinem folgenden Code werden 9 Punkte übersprungen und nur einer angezeigt :?
Hier mal der Code, vielleicht kann mir ja jemand weiterhelfen.

Code: Alles auswählen

If InitSprite() = 0 
  MessageRequester("Fehler!","Das Spiel konnte nicht gestartet werden!")
EndIf

If InitKeyboard() = 0
  MessageRequester("Fehler!","Das Spiel konnte nicht gestartet werden!")
EndIf 

If OpenScreen(1024, 768, 32,"Random Spawning Points")
  
   SetFrameRate(100)
  
   For i = 0 To 20
     CreateSprite(i, 15, 15)
     StartDrawing(SpriteOutput(i))
     Circle(5, 5, 5, RGB(0, 0, 225))
     StopDrawing()
   Next
 
   Repeat
     
     FlipBuffers()
     ExamineKeyboard()
     ClearScreen(0)
     
     If KeyboardReleased(#PB_Key_F1) 
       start = 1
       points = 0
     EndIf
     
      If start = 1
       If points < 10
          spritex = Random(1024)
          spritey = Random(768)  
          points + 1
        ElseIf points > 10
          start = 0
          points = 10
        EndIf
      EndIf
      
       DisplayTransparentSprite(points, spritex, spritey)
     
    If KeyboardPushed(#PB_Key_Escape)
      End
    EndIf
   
  ForEver
EndIf

Re: einige zufällige Punkte

Verfasst: 25.07.2012 22:14
von STARGÅTE
Liegt daran, dass du mit DisplayTransparentSprite() auch nur einen Punkt (während des Frames) anzeigst.

Code: Alles auswählen

If InitSprite() = 0 
  MessageRequester("Fehler!","Das Spiel konnte nicht gestartet werden!")
EndIf

If InitKeyboard() = 0
  MessageRequester("Fehler!","Das Spiel konnte nicht gestartet werden!")
EndIf 

Structure Punkte
	X.i
	Y.i
EndStructure
NewList Punkte.Punkte() ; Liste für die Punkte

If OpenScreen(1280, 1024, 32,"Random Spawning Points")
  
   SetFrameRate(100)
  
   For i = 0 To 20
     CreateSprite(i, 15, 15)
     StartDrawing(SpriteOutput(i))
     Circle(5, 5, 5, RGB(0, 0, 225))
     StopDrawing()
   Next
 
   Repeat
     
     FlipBuffers()
     ExamineKeyboard()
     ClearScreen(0)
     
     If KeyboardReleased(#PB_Key_F1) 
       ClearList(Punkte()) ; alte Punkte löschen
       For N = 1 To 10
         AddElement(Punkte()) ; Punkt hinzufügen
         Punkte()\X = Random(1024)
         Punkte()\Y = Random(768)
       Next
     EndIf
     
     ForEach Punkte() ; Punkte anzeigen
       DisplayTransparentSprite(points, Punkte()\X,  Punkte()\Y)
     Next
     
    If KeyboardPushed(#PB_Key_Escape)
      End
    EndIf
   
  ForEver
EndIf


Re: einige zufällige Punkte

Verfasst: 26.07.2012 17:09
von TheNewOne
Nun funktioniert es, danke :allright: .
Nur, was bringt der ForEach Befehl genau?

Re: einige zufällige Punkte

Verfasst: 26.07.2012 17:16
von STARGÅTE