Verknüpfung zweier Level

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

sandy2143

Betreff: Verknüpfung zweier Level

BeitragDo, Dez 17, 2009 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab ein Problem! Und zwar programier ich grad ein Labyrinth-Spiel... Ich habe Probleme mit der Verknüpfung von 2 Leveln... also wenn das eine vorbei ist, dass das andere dann losgeht.... ich habs schon versucht mit dem Befehl:

Gosub level2

.level2
...

Bitte helft mir!! Very Happy
Danke schonmal!

Xeres

Moderator

BeitragDo, Dez 17, 2009 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Arbeite mit Funktionen!
Eine Funktion die das Level lädt (als Parameter z.B. die Levelnummer) und eine Funktion, die das Level darstellt.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Lion

BeitragDo, Dez 17, 2009 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ich verweise mal auf beitrag F des aktuellen BCC's *hust*
villeicht etwas unleserlich, aber die funktion lm und der andere aufbau sollte sich bei dem kurzen code rausarbeiten lassen
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x
 

sandy2143

BeitragDo, Dez 17, 2009 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
wie mit funktionen?! versteh ich nich...

Xeres

Moderator

BeitragDo, Dez 17, 2009 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Stichwort function - was sonst.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

robotx

BeitragDo, Dez 17, 2009 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Um verschiedene Level hintereinader aufzurufen, muss man Unterprogramme schreiben, welche
die Aufgaben "Level laden", "Level zeichnen" und "Level updaten" übernehmen.
Hierzu nimmt man normalerweise Functions um das Programm zu strukturieren.

Pseudo Code:
Code: [AUSKLAPPEN]

Graphics 800,600,16,1
SetBuffer BackBuffer ()


;Variablen für das Labyrinth

Global spielerGrafik = LoadImage("spieler.png")
Global spielerX, spielerY


Dim spielFeld[10,10, 1]

;Spieler hat den Wert 2
;Ein Weg ist 0
;Eine Wand ist 1
;Layer 0 mit Grafiktiles
;Layer 1 mit Kollisionsdaten

Global zielX, zielY



Global levelBeendet = 0
Global aktuellesLevel = 1

ladeLevel (aktuellesLevel)


;Hauptschleife
Repeat
Cls
   
   
   updateLevel ()
   zeichneLevel ()

   If levelBeendet = 1 Then
      aktuellesLevel = aktuellesLevel + 1
      ladeLevel (aktuellesLevel)
   Endif
   
   
   
Flip
Until KeyHit (1)
End


Function ladeLevel ( levelNummer )
   
   Local datei = ReadFile ("level" + levelNummer + ".dat")
   
   ;Daten aus der Leveldatei lesen und in Spielfeld Array schreiben
        ;Zielfeld speichern
         zielX = ReadInt ()
         zielY = ReadInt ()
   
   CloseFile (datei)

   levelBeendet = 0

End Function



Function zeichneLevel ()

   For y = 0 To 9
      For x = 0 To 9
         Select Spielfeld[x,y,0]
            Case 0
               DrawImage wegImage, x*32, y*32   ;bei 32 Pixel großen Tiles
            Case 1
               DrawImage wandImage, x*32, y*32
            Case 2
               DrawImage spielerImage, x*32, y*32
         End Select
      Next
   Next

End Function



Function updateLevel ()


   ;Eingaben des Spielers überprüfen
   If KeyHit (208) Then spielerY = spielerY - 1
   ;usw.

   ;Kollison des Spielers mit einer Wand überprüfen

   ;nun Spielerposition neu setzen
   
   Spielfeld[spielerX, spielerY, 1] = 2

   ;Hier noch überprüfen ob der Spieler auf das Zielfeld zum Beenden
   ;des Levels gekommen ist
   If spielerX = zielX And spielerY = zielY Then levelBeendet = 1
   
   
End Function
www.botbomb.robotzgames.de
www.robotzgames.de

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group