Seite 2 von 3

Verfasst: 20.07.2005 19:20
von DarkDragon
Ist ein wenig langweilig(keine Hindernisse, oder ein Labirinth) aber sonst ists in Ordnung.

Verfasst: 20.07.2005 19:29
von ts-soft
pm hat geschrieben:Hallo,

ich wäre übrigens auch froh, wenn ihr ein Feedback könntet schreiben!

Pascal :mrgreen:
Okay, also ich sehe einen roten kleine Klotz und nen Hellblauen größeren, sowie diverse Texte. Es rührt sich aber nichts. Auf dem Bildschirm steht unter anderm Pause, warum auch immer. Soll ich das ganze Anstieren oder was muß ich tun ?

Zum Source: Sehr nostalgisch, erinnert mich an 1970 :mrgreen:
Ich hoffe Du versteht den unstrukturierten Code

Verfasst: 20.07.2005 20:06
von PMTheQuick
Ach ja, das hatte ich vergessen. Immer wenn du in ein neues Level kommst, wird die Pause aktiviert. Die Pause kannst du aktivieren/deaktivieren mit P.

Pascal :mrgreen:

P.S.: 1970 war ich gar noch nicht geboren! :lol: :lol:

Verfasst: 20.07.2005 22:06
von PMTheQuick
Noch ne kleine Verbesserung:

Code: Alles auswählen

If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse()=0
  MessageRequester("Error", "Can't open DirectX 7 or later", 0)
  End
EndIf
#Benzin=1000
Zeitneu=500
auswahl=1
If OpenScreen(1024, 768, 16, "Sprite")
Repeat
ClearScreen(0,0,0)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
If KeyboardReleased(#PB_Key_Up)
If auswahl=1
auswahl=2
Else
auswahl=1
EndIf
ElseIf KeyboardReleased(#PB_Key_Down)
If auswahl=2
auswahl=1
Else
auswahl=2
EndIf
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
If auswahl=2
FrontColor(255,255,255)
Locate(500,400)
DrawText("Tastatur")
Locate(500,420)
FrontColor(255,0,255)
DrawText("Maus")
Else
FrontColor(255,0,255)
Locate(500,400)
DrawText("Tastatur")
Locate(500,420)
FrontColor(255,255,255)
DrawText("Maus")
EndIf
Locate(500,460)
FrontColor(255,255,255)
DrawText("Auswahl bestätigen mit J")
StopDrawing()
If KeyboardPushed(#PB_Key_J)
auswahlfertig=1
If auswahl=1
var$="Tastatur"
Else
var$="Maus"
EndIf
EndIf
FlipBuffers()
Until auswahlfertig=1

Benzin=#Benzin
OpenPreferences("Optionen.dat")
Level$=ReadPreferenceString("Level", "1")
Level = Val(Level$)
PunkteTotal$=ReadPreferenceString("PunkteTotal", "0")
PunkteTotal = Val(PunkteTotal$)
DeleteFile("Optionen.dat")
speed1=8
x1=0
Dim speed2.f(100000)
Dim x2.f(100000)
Dim y2.f(100000)
speed2(1)=1
For I = 2 To 100000
y2(I)=1888
x2(I)=1888
Next I
x2(1)=1000
y1=0
y2(1)=500
x1=Random(1000)
y1=Random(650)
CreateImage(1,5,5)
UseImage(1)
StartDrawing(ImageOutput())
Box(0,0,5,5,RGB(255,0,0))
StopDrawing()
SaveImage(1,"Spieler.bmp")
FreeImage(1)
LoadSprite(0, "Spieler.bmp")
CreateImage(1,10,10)
UseImage(1)
StartDrawing(ImageOutput())
Box(0,0,10,10,RGB(0,255,255))
StopDrawing()
SaveImage(1,"Gegner.bmp")
FreeImage(1)
LoadSprite(1, "Gegner.bmp")
CreateImage(1,10,10)
UseImage(1)
StartDrawing(ImageOutput())
Box(0,0,10,10,RGB(0,0,255))
StopDrawing()
SaveImage(1,"Bonus.bmp")
FreeImage(1)
LoadSprite(2, "Bonus.bmp")
zeit=Zeitneu
letzt=1
Pa=1
  Repeat
   ClearScreen(0,0,0)
    ExamineKeyboard()
    ExamineMouse()
    If Pa=0
    zeit-1
      If var$="Tastatur"
      If verkehrt=0
    If KeyboardReleased(#PB_Key_P)
    Pa=1
    EndIf
    If KeyboardPushed(#PB_Key_Left)
    x1-speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    ElseIf KeyboardPushed(#PB_Key_Right)
    x1+speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    ElseIf KeyboardPushed(#PB_Key_Up)
    y1-speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    ElseIf KeyboardPushed(#PB_Key_Down)
    y1+speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    EndIf
    Else
    If KeyboardReleased(#PB_Key_P)
    Pa=1
    EndIf
    If KeyboardPushed(#PB_Key_Left)
    x1+speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    ElseIf KeyboardPushed(#PB_Key_Right)
    x1-speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    ElseIf KeyboardPushed(#PB_Key_Up)
    y1+speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    ElseIf KeyboardPushed(#PB_Key_Down)
    y1-speed1
    Benzin-1
    If Benzin=0
    Punkte-20
    Benzin=#Benzin
    EndIf
    EndIf
    EndIf
    ElseIf var$="Maus"
    xm=MouseX()
    ym=MouseY()
    If xm=xmv
    Else
    Benzin-1
    xmv=xm
    EndIf
    If ym = ymv
    Else
    Benzin-1
    ymv=ym
    EndIf
    x1=xm
    y1=ym
    If Benzin=0 Or Benzin<0
    Punkte-20
    Benzin=#Benzin
    EndIf
    EndIf
    If x1 = bx1
    If y1 > by1
    by1+Random(7)
    ElseIf y1 < by1
    by1-Random(7)
    EndIf
    Else
    If x1 > bx1
    bx1+Random(7)
    ElseIf x1 < bx1
    bx1-Random(7)
    EndIf
    EndIf
    For I = 1 To 100
    If x1 = x2(I)
    If y1 > y2(I)
    y2(I)+Random(6)
    ElseIf y1 < y2(I)
    y2(I)-Random(6)
    EndIf
    Else
    If x1 > x2(I)
    x2(I)+Random(6)
    ElseIf x1 < x2(I)
    x2(I)-Random(6)
    EndIf
    EndIf
    Next I
    Else
    If KeyboardReleased(#PB_Key_P)
    Pa=0
    EndIf
    EndIf
     DisplaySprite(0, x1,y1)
    For I = 1 To 100
    DisplaySprite(1, x2(I), y2(I))
    If SpriteCollision(0,x1,y1,1,x2(I),y2(I))
    CloseScreen()
    exit=1
    DeleteFile("Gegner.bmp")
    DeleteFile("Spieler.bmp")
    DeleteFile("Bonus.bmp")
    MessageRequester("GAME OVER!", "GAME OVER"+Chr(10)+"Sie haben "+Str(PunkteTotal)+" erreicht!", #MB_ICONINFORMATION)
     DeleteFile("Optionen.dat")
     CreatePreferences("Optionen.dat")
     WritePreferenceString("Level", Str(Level))
     WritePreferenceString("PunkteTotal", Str(PunkteTotal))
     StartTimer=ElapsedMilliseconds()
    Repeat
      StopTimer=ElapsedMilliseconds()
      TotalTimer=StopTimer-StartTimer
    Until TotalTimer>5000
     ClosePreferences()
     End
    EndIf
    Next I
     If zeit=0
    x2(letzt+1)=Random(1000)
    y2(letzt+1)=Random(650)
    speed=Random(3)
    If speed=0 : speed=1 : EndIf
    speed2(letzt+1)=speed
    letzt+1
    Punkte+(speed*20*4)
    zeit=Zeitneu
    EndIf
    Select Level
    Case 1
    Zeitneu=500
    P=100
    Case 2
    Zeitneu=400
    P=500
    Case 3
    Zeitneu=300
    P=1000
    Case 4
    Zeitneu=200
    P=1100
    Case 5
    Zeitneu=100
    P=1500
    Case 6
    Zeitneu=90
    P=2000
    Case 7
    Zeitneu=80
    P=2100
    Case 6
    Zeitneu=70
    P=2500
    Case 7
    Zeitneu=60
    P=3000
    Case 8
    Zeitneu=50
    P=3100
    Case 9
    Zeitneu=40
    P=3500
    Case 10
    Zeitneu=30
    P=4000
    Case 11
    Zeitneu=20
    P=4100
    Case 12
    Zeitneu=10
    P=4500
    Case 13
    Zeitneu=9
    P=5000
    Case 14
    Zeitneu=8
    P=5100
    Case 15
    Zeitneu=7
    P=5500
    Case 16
    Zeitneu=6
    P=6000
    Case 17
    Zeitneu=5
    P=6100
    Case 18
    Zeitneu=4
    P=6500
    Case 19
    Zeitneu=3
    P=7000
    Case 20
    Zeitneu=2
    P=8000
    Case 21
    Zeitneu=1
    P=8100
    EndSelect
    If var$="Tastatur"
    DisplaySprite(2,bx1,by1)
    If SpriteCollision(0,x1,y1,2,bx1,by1)
    verkehrt=1
    EndIf
    EndIf
    If Punkte=P Or Punkte>P
    x1=Random(1000)
    y1=Random(650)
    PunkteTotal+Punkte
    Punkte=0
    StartTimer=ElapsedMilliseconds()
    Repeat
      StopTimer=ElapsedMilliseconds()
      ClearScreen(0,0,0)
      StartDrawing(ScreenOutput())
      Locate(1024/2-TextLength("Level geschafft"), 768/2)
      DrawText("LEVEL GESCHAFFT!!!")
      StopDrawing()
      FlipBuffers()
      TotalTimer=StopTimer-StartTimer
    Until TotalTimer>5000
    If Level=21
    CloseScreen()
    MessageRequester("Gratulation!", "Herzlichen Glückwunsch! Sie haben alle Level gemeistert!", #MB_ICONINFORMATION)
    End
    EndIf
    verkehrt=0
    Level+1
    Pa=1
    EndIf
    StartDrawing(ScreenOutput())
    DrawingMode(1)
    FrontColor(255,255,255)
    Locate(20,20)
    DrawText("Level "+Str(Level))
    Locate(20,40)
    DrawText("Score: "+Str(Punkte)+"/"+Str(P))
    Locate(20,60)
    DrawText("Benzin: "+Str(Benzin)+" l")
    Locate(20,100)
    DrawText("Total Punkte: "+Str(PunkteTotal+Punkte))
    If Pa=1
    Locate(500,500)
    DrawText("PAUSE")
    EndIf
    StopDrawing()
    FlipBuffers()
     Until KeyboardPushed(#PB_Key_Escape) Or exit=1
     DeleteFile("Gegner.bmp")
     DeleteFile("Spieler.bmp")
     DeleteFile("Bonus.bmp")
Else
  MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf
End 
Was ist anders:
Es gibt jetzt auch ein dunkelblaues Viereck. Wenn man das dunkelblaue Viereck berührt, ist alles verkehrt: Rechts ist Links und Links ist Rechts und Oben ist Unten und Unten ist Oben. Funktioniert nur bei Tastaturmodus.

Steuerung:
Bewegen: Maus oder Tastatur (Im Menü wählbar)
Beenden: Esc
Pause aktivieren/deaktivieren: P
Auswahl bestätigen: J
Auswählen: Cursortaste Hoch und Runter

Viel Spass beim spielen.
Pascal :mrgreen:

P.S.: Bitte postet ein Feedback! :D

Verfasst: 20.07.2005 22:30
von Green Snake
hab da noch nen bug.
das benzin sollte ja für X punkte wieder aufgefüllt werden, wenn es bei 0 ist.
im 1 level gings noch, aber ab dem 2 sinkt das benzin ins -

ist der bug schon bekannt?

Verfasst: 21.07.2005 13:38
von PMTheQuick
@Green Snake
Danke für das tolle Feedback. :D Ich habe es jetzt oben verbessert. Kopiere einfachnochmal den Code und füge ihn ein. Es sollte jetzt alles gehen.

Pascal 8)

P.S.: Wenn ihr Wünsche habt dann schreibt sie. Ich werde sie dann 100% erfüllen. :mrgreen:

Verfasst: 21.07.2005 14:08
von DarkDragon
pm hat geschrieben:P.S.: Wenn ihr Wünsche habt dann schreibt sie. Ich werde sie dann 100% erfüllen. :mrgreen:
Mach das ganze mit Figuren(Sprites) in einem Labirinth.

Verfasst: 21.07.2005 15:47
von PMTheQuick
@DarkDragon
Ich habe jetzt zwar noch nicht ein Labyrinth eingebaut, habe aber die Vierecke durch Sprites ersetzt.

Download Link:

Beim nächsten Post.

Anleitung:

Jetzt sage ich nur noch, welches Sprite was ist:

Das schwarz-weisse Sprite macht alles verkehrt: Aus rechts wird Links Aus Oben wird unten u.s.w..

Das blaue Männchen ist der Gegner, das andere der Spieler.

Viel Spass
Pascal :mrgreen:

P.S.: Bitte postet ein Feedback und wenn ihr Wünsche habt auch Wünsche.

Verfasst: 06.08.2005 11:51
von PMTheQuick
Nochmal eine bessere Version mit besseren Grafiken: http://mitglied.lycos.de/pascalmathis/Codes/PureBasic/

Die Grafiken haben die gleiche Bedeutung wie vorher.

Pascal :mrgreen:

Verfasst: 06.08.2005 12:13
von Ynnus
Der Breich ist Passwortgeschützt.