Highscore

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Marvin133
Beiträge: 80
Registriert: 25.01.2010 15:51
Computerausstattung: Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250
Kontaktdaten:

Highscore

Beitrag von Marvin133 »

ich habe ein viereck welches man über den bildschirm bewegen kann.wenn es über ein anderes hinweg bewegt steigt die score um eins.wie kann ich das so darstellen das da kein viereck mehr ist.und wie kann ich de score variable auf dem scrfeen darstellen?

Code: Alles auswählen

OpenWindow(0, 50,50, 600, 400, "Box", #PB_Window_SystemMenu |#PB_Window_MaximizeGadget |#PB_Window_MinimizeGadget )
InitKeyboard()
InitSprite()      
OpenWindowedScreen(WindowID(0), 0, 0,600,400, 1, 1, 20) 
    
CreateSprite(0,25,25)
StartDrawing(SpriteOutput(0))
    Box(0,0,25,25,RGB(0,0,250))
StopDrawing()

CopySprite(0,1,0)
score=0

CreateFile(0, "score.txt")
WriteInteger("score.txt",score)

Repeat
ExamineKeyboard()
FlipBuffers()
ClearScreen(0)

DisplaySprite(0,x,y)
DisplaySprite(1,100,100)


If SpriteCollision(0,x,y,1,100,100)=1
   
   ClearScreen(0)
   DisplaySprite(0,x,y)
   score=score+1
EndIf

If KeyboardPushed(#PB_Key_Right)
   x=x+10
If x>=600
   x=0
EndIf
EndIf

If KeyboardPushed(#PB_Key_Left)
   x=x-10
If x<=0
   x=599
EndIf
EndIf

If KeyboardPushed(#PB_Key_Down)
   y=y+10
If y>=400
   y=0
EndIf
EndIf

If KeyboardPushed(#PB_Key_Up)
   y=y-10
If y<=0
   y=399
EndIf
EndIf


Until WaitWindowEvent() = #PB_Event_CloseWindow
Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Highscore

Beitrag von Kaeru Gaman »

also, da ist nur dort etwas, wo du etwas darstellst.
wenn du also eine Box verschwinden lassen willst, stellst du sie einfach nicht mehr dar.

... in diesem Falle das einfachste:
schreib das DisplaySprite(1, hinter ein If Score = 0


... das bringt dir zwar nicht viel, aber beantwortet präzise deine Frage... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Marvin133
Beiträge: 80
Registriert: 25.01.2010 15:51
Computerausstattung: Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250
Kontaktdaten:

Re: Highscore

Beitrag von Marvin133 »

Ich habe je mit spritecollision geprüft ob sich beiderr sprites überlappen und wann das der fall ist wird die score variable um eins erhöt wie kann ich auch dem screnn darstellen


highscore:und dann die core variable auslesen und darstellen

?und gleichzeitig das programm aufen lassen?
Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Highscore

Beitrag von Kaeru Gaman »

*soifz* bleib bitte dabei, dir beim schreiben mühe zu geben.

das programm läuft immer wenn etwas passiert was du in den code geschrieben hast.

dein ansatz erstmal ein file zu öffnen ist auch nicht korrekt.


also erstmal, wie kann man text aufm screen darstellen....
und ich musste deine Eventverarbeitung ändern:
ein Game muss immer durchlaufen, nicht nur wenn ein Event auftritt.
und die Events sollten immer direkt schnell bearbeitet werden, für den Fall dass es mehrere sind.
deswegen jetzt die kleine Innenschleife, und die große Hauptschleife beendet per Flag namens EXIT.
und ein bissel umgestellt hab ich die Hauptschleife auch, so herum ists logischer:
zuerst die Eingabe, dann die Verarbeitung, dann die Ausgabe,
und die Ausgabe beginnt mit ClearScreen und endet mit FlipBuffers.

Code: Alles auswählen

OpenWindow(0, 50,50, 600, 400, "Box", #PB_Window_SystemMenu |#PB_Window_MaximizeGadget |#PB_Window_MinimizeGadget )
InitKeyboard()
InitSprite()     
OpenWindowedScreen(WindowID(0), 0, 0,600,400, 1, 1, 20)
   
CreateSprite(0,25,25)
StartDrawing(SpriteOutput(0))
    Box(0,0,25,25,RGB(0,0,250))
StopDrawing()

CopySprite(0,1,0)
score=0

Repeat
  Repeat 
    Event = WaitWindowEvent(10)
    If Event = #PB_Event_CloseWindow
      EXIT = 1
    EndIf
  Until Event = #Null
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Right)
     x=x+1
      If x>=612
         x=-12
      EndIf
  EndIf
  
  If KeyboardPushed(#PB_Key_Left)
     x=x-1
      If x<=-12
         x=612
      EndIf
  EndIf
  
  If KeyboardPushed(#PB_Key_Down)
     y=y+1
      If y>=412
         y=-12
      EndIf
  EndIf
  
  If KeyboardPushed(#PB_Key_Up)
     y=y-10
      If y<=-12
         y=412
      EndIf
  EndIf

  ClearScreen(0)
    DisplaySprite(0,x,y)
    DisplaySprite(1,100,100)
    StartDrawing( ScreenOutput() )
      DrawText( 400,2, "Score : "+Str(score) )
    StopDrawing()
  FlipBuffers()
  
  If SpriteCollision(0,x,y,1,100,100)=1
     score=score+1
  EndIf
Until EXIT = 1
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten