PBpilot 0.2

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

RocketRider hat geschrieben:Wow :allright:
Für eine Stunde echt nicht Schlecht.
Kann ich den Quelltext haben?
:bounce:
Hier ein Source Code von Epyx (ist viel besser als meiner ;-) )
Ich habe in gleich mal an PB4.x angepasst (Sourcen für den Sound habe ich aber teilweise entfernt!!!

Code: Alles auswählen

;##########################################
;##                                      ##
;##        CaveFlight EP by Epyx         ##
;##                                      ##
;##  visit me at www.flasharts.de/epyx   ##
;##     or come to www.compuprog.de      ##
;##                                      ##
;## the FMOD.DLL-import for PB is needed ##
;##                                      ##
;##########################################



;### Initialize some stuff
 #FSOUND_LOADMEMORY = $8000 
     X= InitSprite() : If X=0 : MessageRequester("DirectX Error","Cannot Initialize DirectX - Direct Draw"+Chr(13)+"You need at least DX7 to run this game",#MB_ICONERROR) : End : EndIf

     X= InitKeyboard()
     X= InitMouse()
     UseJPEGImageDecoder()


;### Prepare the arrays
   Dim OB(400) : Dim UN(400)


;### Open up our window for the game
   hWnd=OpenWindow(0,0,0,400,300,"",#PB_Window_SystemMenu|#PB_Window_WindowCentered)
   X=OpenWindowedScreen(hWnd,0,0,400,300,0,0,0)
 ;  SetFrameRate(60)


;### Get all our used sprites
   X =CatchSprite(1,?Back) 
   X =CatchSprite(2,?Front) 
   X =CatchSprite(3,?Bird) 
   X =CatchSprite(4,?Title,0) 
   X =CatchSprite(5,?Water) 
   X =CatchSprite(6,?Blub) 


;### The Structures
   Structure Parti
       x.l
       y.l
    AddX.l
    AddY.l
     Red.l
   Green.l
    Blue.l
  EndStructure

   Structure Blasen
       x.l
       y.l
    AddX.l
    AddY.l
   EndStructure

   NewList Partikel.Parti()
   NewList Blub.Blasen()



  
;### Setup the game variables
  Runner:
  RandomSeed(766653) 
  Oben=0 : Unten=0 : Bird_Y=150 :  Kucks=0 : YY=-3
  Waterlevel=200 : pi=3.141513
  
  For t=0 To 400
  Rnd1=Random(2) : Rnd2=Random(2) : Rnd3=Random(5)

  If Rnd1=0 : Oben-Rnd3 : If Oben<0 : Oben=0 : EndIf : EndIf
  If Rnd1=2 : Oben+Rnd3 : If Oben>130 : Oben=50 : EndIf : EndIf
  If Rnd2=0 : Unten-Rnd3 : If Unten<0 : Unten=0 : EndIf : EndIf
  If Rnd2=2 : Unten+Rnd3 : If Unten>130 : Unten=50 : EndIf : EndIf
  OB(t)=Oben : UN(t)=Unten
  Next t





;### Game menü
  Repeat
   
      Eve = WindowEvent()  
      Select Eve
        Case #PB_Event_CloseWindow              
        End                                      
      EndSelect
  
      ExamineKeyboard() : ExamineMouse() 
      
      If KeyboardPushed(#PB_Key_Escape) : End : EndIf  
      If KeyboardPushed(#PB_Key_Return) : Kucks=1 : EndIf
      If MouseButton(1) : Kucks=1 : EndIf   

      DisplaySprite(4,0,0)
  
   StartDrawing(ScreenOutput())  
      DrawingMode(1) : FrontColor($FFFFFF)
      DrawText(300,3,"Punkte: "+Str(Punkte)) 
      DrawText(10,280,"Linke Maustaste oder Cursor UP  -  Escape zum Beenden")
   StopDrawing() 

  FlipBuffers()
  Until (Kucks<>0) 


  
  
  Punkte=0    

;### Hauptschleife ####
  Repeat
   

;### Check for windows events   
      Eve= WindowEvent()  
      Select Eve
        Case #PB_Event_CloseWindow              
        End                                      
      EndSelect
  
  
;### Get the keyboard and mouse state
      ExamineKeyboard() : ExamineMouse() 
      Taste = KeyboardPushed(#PB_Key_Escape)   
      If (KeyboardPushed(#PB_Key_Up)) Or (MouseButton(1)) : KUP=1 : EndIf   
      If (KeyboardPushed(#PB_Key_Down)) Or (MouseButton(2)) : KAP=1 : EndIf    
  
  
;### Draw the background and water 
      g-1 : If g<1 : XX-1 : g=2 : EndIf 
      If XX=-300 : XX=0 : EndIf
      For t=0 To 2 : ClipSprite(1,0,0, 400,Waterlevel) : DisplaySprite(1, XX+(t*300),0)
      For z=0 To 400 : ClipSprite(5,z,Waterlevel,1,300-Waterlevel)  
      Si+3 : Water_Y=WaterLevel+(Sin(Si * pi / 180) * 3) 
      DisplaySprite(5, XX+(t*300)+z,Water_Y)
      Next z : Si-400*3 : Next t

     Start+1 : If Start=400 : Start=0 : EndIf
     ClipSprite(3,(Anim*16), 0, 16,16) : 
     IQ+1 : If IQ=5 : Anim+1 : IQ=0 : If Anim=5 : Anim=0 : EndIf : EndIf
     DisplayTransparentSprite(3,100,Bird_Y) 



;### Move the bubbles in the water
  ResetList(Blub())   
   While NextElement(Blub())
     Blub()\y = Blub()\y + Blub()\AddY    
     Blub()\x = Blub()\x -1 + (1-Random(2))
     DisplayTransparentSprite(6,Blub()\x,Blub()\y) 
     If Blub()\y<Waterlevel : DeleteElement(Blub()) : EndIf
   Wend



;### Draw the cave on the Screen
  Cave_X=Start
  For t=0 To 400 : Cave_X+1 : If Cave_X=400 : Cave_X=0 : EndIf
  ClipSprite(2,Cave_X, 0, 1, OB(Cave_X)) : DisplaySprite(2,t,0) 
  If SpritePixelCollision(2, t,0, 3, 100, Bird_Y) : Taste=1 : EndIf 
  ClipSprite(2,Cave_X, 300-UN(Cave_X), 1, UN(Cave_X)) : DisplaySprite(2,t,(300-UN(Cave_X))) 
  If SpritePixelCollision(2, t,300-UN(Cave_X), 3, 100, Bird_Y) : Taste=1 : EndIf 
  Next t
  
  
  
;### put some random numbers in the arrays
  Rnd1=Random(2) : Rnd2=Random(2) : Rnd3=Random(3) : Rnd4=Random(5)
  If Rnd1=0 : Oben-Rnd4 : If Oben<0 : Oben=0 : EndIf : EndIf
  If Rnd1=2 : Oben+Rnd4 : If Oben>150 : Oben=150 : EndIf : EndIf
  If Rnd2=0 : Unten-Rnd4 : If Unten<0 : Unten=0 : EndIf : EndIf
  If Rnd2=2 : Unten+Rnd4 : 
  If Unten>250 : Unten=150 : EndIf : 
  If (Oben+32)<(unten-32) : Unten-50 : EndIf
  EndIf
  If Rnd3=0 : Waterlevel-1 : If Waterlevel<0 : Waterlevel=0 : EndIf : EndIf
  If Rnd3=2 : Waterlevel+1 : If Waterlevel>300 : Waterlevel=300 : EndIf : EndIf
  OB(Cave_X)=Oben : UN(Cave_X)=Unten
 
 
 
;### Uhh the bird falls in the water, add some particels
 If (Bird_Y>(waterlevel-3)) And (Bird_Y<(waterlevel+3)) 
  For f=0 To 24
     AddElement(Partikel())
     Partikel()\x =110
     Partikel()\y =Bird_Y
     Partikel()\AddX =(-3)+(Random(6))
     Partikel()\AddY =(0-(Random(YY)*2))-1
  Next
 EndIf
 
 

;### Add points and limit movement  
  Bird_Y=Bird_Y+YY : Punkte+1
  If Bird_Y>300 : Taste=1 : EndIf
  If Bird_Y<0 : Taste=1 : EndIf
  
  
;### Add a Bubble in the Water
  AddElement(Blub())
   Blub()\x =Random(500)
   Blub()\y =300
   Blub()\AddY =(0-(Random(1))-1)

    
;### Move the Bird
  Gravity+1 : If Gravity=12 
  If Bird_Y<Waterlevel : YY+1 : EndIf  
  If Bird_Y>Waterlevel : YY-1 : EndIf  
  If Kup=1 : YY-2 : Kup=0 : EndIf : Gravity=0  
  If Kap=1 : YY+2 : Kap=0 : EndIf : Gravity=0  
  If YY>3 : YY=3 : EndIf : If YY<-3 : YY=-3 : EndIf
  EndIf
  
  
;### Draw the Particels  
   StartDrawing(ScreenOutput()) 
     ResetList(Partikel())   
     While NextElement(Partikel())
     Partikel()\y = Partikel()\y + Partikel()\AddY    
     Partikel()\x = Partikel()\x + Partikel()\AddX
     If Partikel()\y<0 : Partikel()\y=0 : EndIf
     If Partikel()\y>300 : Partikel()\y=300 : EndIf
     If Partikel()\x>400 : Partikel()\x=400 : EndIf
     If Partikel()\x<0 : Partikel()\x=0  : EndIf
     Plot (Partikel()\x, Partikel()\y ,RGB(200,200,255))
     If Partikel()\AddY<10 : Partikel()\AddY=Partikel()\AddY+1 : EndIf
     If Partikel()\y>Waterlevel : DeleteElement(Partikel()) : EndIf
     Wend
    StopDrawing() 



;### Let us see the show on the screen
   Gosub FPS
   FlipBuffers()
   Until (Taste<>0) 
  
Delay(500)
Kup=0 : Kap=0
Goto Runner



;### Calculate the Frames per second
FPS: 
  If Val(FormatDate("%ss", Date()))=sec 
  Frames+1:Else:Frames$=Str(Frames):Frames=0:EndIf 
  sec=Val(FormatDate("%ss", Date())) 
  StartDrawing(ScreenOutput())  
    DrawingMode(1) : FrontColor($FFFFFF) 
    DrawText(5,5,"fps: "+Frames$) 
    DrawText(350,280,Str(Punkte))
  StopDrawing() 
Return 


;### The Datas
Title: IncludeBinary "CaveTitle.Jpg"
Back:  IncludeBinary "CaveBG.jpg" 
Water: IncludeBinary "Cavewater.jpg" 
Front: IncludeBinary "CaveFront.jpg" 
Bird:  IncludeBinary "bird.bmp" 
Blub:  IncludeBinary "blub.bmp" 
Music: IncludeBinary "Pco.mod" 
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

lol
Title: IncludeBinary "CaveTitle.Jpg"
Back: IncludeBinary "CaveBG.jpg"
Water: IncludeBinary "Cavewater.jpg"
Front: IncludeBinary "CaveFront.jpg"
Bird: IncludeBinary "bird.bmp"
Blub: IncludeBinary "blub.bmp"
Music: IncludeBinary "Pco.mod"
...wie war das mit lauffähigen beispielen? ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

@RocketRider: Aber so ein Teil nach zu machen wäre ja auch nicht sonderlich schwer, oder? Zumindest wäre es schon eine Herausforderung, wie groß, hängt von der Perspektive des Betrachters ab. :)
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Vermilion hat geschrieben:@RocketRider: Aber so ein Teil nach zu machen wäre ja auch nicht sonderlich schwer, oder? Zumindest wäre es schon eine Herausforderung, wie groß, hängt von der Perspektive des Betrachters ab. :)
Ich glaub das mit der Perspektive des Betrachters hat er nun seeehr wörtlich genommen :mrgreen:
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Ramihyn_
Beiträge: 61
Registriert: 20.06.2007 10:56

Beitrag von Ramihyn_ »

Aus der Idee kann man unterhaltsame Spiele basteln wie z.B.

Vanguard VCS 2600

Vanguard VCS 2600 Screenshots

Vanguard console game

Im Prinzip ist auch die Lethal Judgement Serie noch ein "Nachfolger" davon :wink:
Zuletzt geändert von Ramihyn_ am 09.03.2008 11:45, insgesamt 2-mal geändert.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

Kiffi hat geschrieben:
Mok hat geschrieben:Aber ich hab nen Bug gefunden: Wenn man oben oder unten über/unter den Fensterrand hindurch fliegt, sinken die Punkte nicht, die Miles werden aber trotzdem mehr...
Mok, Du solltest Dir angewöhnen, wenigsten die Postings des aktuellen
Thread zu lesen, bevor Du selber was dazu schreibst ;-)

Grüße ... Kiffi
:oops: muss ich wohl übersehn haben :roll: :freak:
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Ramihyn_ hat geschrieben:Aus der Idee kann man unterhaltsame Spiele basteln wie z.B.
Vanguard console game:
Nein das was ich machen will ist nicht Vanguard...
..bei meinen gab es Balken die auf und ab liefen...und weiteres Zeugs...z.B.: Fledermäuse...leider weiß ich den Namen nicht mehr :cry:
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Ramihyn_
Beiträge: 61
Registriert: 20.06.2007 10:56

Beitrag von Ramihyn_ »

Dr. Shrek hat geschrieben:..bei meinen gab es Balken die auf und ab liefen...und weiteres Zeugs...z.B.: Fledermäuse...leider weiß ich den Namen nicht mehr :cry:
Mehr in Richtung Yars' revenge?

Wenn Du den Namen suchst dann sag mal auf welcher Plattform und welches ungefähres Erscheinungsjahr das war :)

Es gab ja etliche Nachfolger und Varianten (und vermutlich auch paar Vorgänger ;)
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Ramihyn_ hat geschrieben:
Dr. Shrek hat geschrieben:..bei meinen gab es Balken die auf und ab liefen...und weiteres Zeugs...z.B.: Fledermäuse...leider weiß ich den Namen nicht mehr :cry:
Mehr in Richtung Yars' revenge?

Wenn Du den Namen suchst dann sag mal auf welcher Plattform und welches ungefähres Erscheinungsjahr das war :)

Es gab ja etliche Nachfolger und Varianten (und vermutlich auch paar Vorgänger ;)
Nein...Es war schon so dass es durch einen Tunnel ging...der hatte allerdings Schalter, Tore und auch Fledermäuse ... ist schon Jahrzehnte her dass ich das mal bei einen Freund gespielt habe...
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten