Verfasst: 26.05.2008 14:11
				
				Thnx, das klappt jetzt! Aber wegen meinen bekloppten GeschichtsLehrer Herr Nägerschewski (eigentlich Naguschewski) kam ich noch nicht dazu das waponezdingsda anzugucken, mache ich jetz 
			Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"Vollbild")
LoadSprite(0,"F:\Kai´s Spiel\Pics\Weltraum.bmp",0)
LoadSprite(1,"F:\Kai´s Spiel\Pics\Shuttle.bmp",0)
LoadSprite(2,"F:\Kai´s Spiel\Pics\Schuss.bmp",0)
 HBX = 0
 HBY = 0
 
 ShuttleX = 350
 ShuttleY = 350
 
  Structure Schuss
  SchussX.w
  SchussY.w
  EndStructure
  
 Global NewList Schuss.Schuss()
 
Procedure AddSchuss(SchussX,SchussY)
  AddElement(Schuss())           
  Schuss()\SchussX      = SchussX
  Schuss()\SchussY      = SchussY
EndProcedure
Repeat
ClearScreen(0+256*0+256*256*0)
 Pause + 1
 SchussY - 10
  If ShuttleX > 700
    ShuttleX = 700
  EndIf
  
  If ShuttleX < 0
    ShuttleX = 0
  EndIf
  
ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Left)
    ShuttleX - 5
  EndIf
  
  If KeyboardPushed(#PB_Key_Right)
    ShuttleX + 5
  EndIf
  If KeyboardPushed(#PB_Key_Space) And Pause > 10
    Pause = 0
    AddElement(Schuss())
    SchussX = ShuttleX + 49
    SchussY = ShuttleY - 5
  EndIf
  
DisplayTransparentSprite(0,HBX,HBY)
DisplayTransparentSprite(1,ShuttleX,ShuttleY)
DisplayTransparentSprite(2,SchussX,SchussY)
FlipBuffers()
Until KeyboardPushed(1)Code: Alles auswählen
InitSprite() 
InitKeyboard() 
OpenScreen(800,600,32,"Vollbild") 
 HBX = 0 
 HBY = 0 
  
 ShuttleX = 350 
 ShuttleY = 350 
  
  Structure Schuss 
  SchussX.f  ;Sich bewegende Objekte lieber mit Floats oder Doubles machn
  SchussY.f 
  EndStructure 
  
 Global NewList Schuss.Schuss() 
  
Repeat 
ClearScreen(0+256*0+256*256*0) 
 Pause + 1 
 SchussY - 10 
  If ShuttleX > 700 
    ShuttleX = 700 
  EndIf 
  
  If ShuttleX < 0 
    ShuttleX = 0 
  EndIf 
  
ExamineKeyboard() 
  If KeyboardPushed(#PB_Key_Left) 
    ShuttleX - 5 
  EndIf 
  
  If KeyboardPushed(#PB_Key_Right) 
    ShuttleX + 5 
  EndIf 
  If KeyboardPushed(#PB_Key_Space) And Pause > 10 
    Pause = 0 
    AddElement(Schuss()) 
    Schuss()\SchussX = ShuttleX + 8 ; Einem Listen element übergibt man Werte so
    Schuss()\SchussY = ShuttleY - 5 
  EndIf 
  
  
  
  
  
  lcount.l = CountList(Schuss()) ;Listenelemente zählen damit man sie später in der Schleife durchlaufen kann
  
  
  
  
StartDrawing(ScreenOutput()) ; Damit ich es auch ausführen kann
  ;Das ist dein Schiff
  Box(ShuttleX,ShuttleY,32,32,RGB(0,255,0)) 
  
  
  
  If lcount > 0 ; Wenn es keine Schüsse gibt braucht man auch keine Darstellen
    For n = 0 To lcount  - 1 ; "lcount - 1 " weil 0 auch schon das erste Element ist
     
      ; Das ist dein Schuss
      SelectElement(Schuss(), n)      
      Schuss()\SchussY - 1.5 ; Damit sich der Schuss bewegt       
      Box(Schuss()\SchussX,Schuss()\SchussY,16,16,RGB(255,0,0)) 
      
    Next
    
    ;Hier werden die Schüsse ab einer bestimmten Grenze gelöscht bei mir ist es wenn Schuss()\SchussY < 32 ist
    
    FirstElement(Schuss()) ;Erstes Element auswählen
    
    For n = 0 To lcount - 1 ;Wie oben in der Schleife
      
      If Schuss()\SchussY < 32 ; Wenn SchussY < 32 ist dann wir gelöscht
        DeleteElement(Schuss(),1)    ; Schuss löschen und dann auf das Element davor springen damit alles nacher gut funzt
      EndIf
      
      NextElement(Schuss()) ;Nächstes Element
    
    Next
 
  
  EndIf
  
StopDrawing()
FlipBuffers() 
Until KeyboardPushed(1)Code: Alles auswählen
For n=0 To 10Code: Alles auswählen
Next