Tilemap Door open Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: Tilemap Door open Problem

BeitragMo, Nov 29, 2010 8:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ich habe mir gedacht ich mache, um besser mit Tilemaps klar zu kommen,eine kleine Map
mit einem Schalter und einer Tür.
Sobald man auf dem Schalter kommt Öffnet sich die Tür.
Leider Funktioniert es nicht so ganz wie ich will.
Es wird zwar mein Text angezeigt,aber die Tür wird nicht zu Land so das es passierbar ist.

Code: [AUSKLAPPEN]
AppTitle "Tileset mit Char"
Graphics 400,400,32,2
SetBuffer BackBuffer()
Global FPS_Timer = CreateTimer(60)

;Laden Daten
Global gfx_tileset = LoadAnimImage("gfx/tileset.bmp",32,32,0,6)
Global gfx_spieler = LoadImage("gfx/char.bmp")

;Variablen
Global SpielerX = 2
Global SpielerY = 2
Global Laden = True

;Cache Variablen
Global X
Global Y
Global Karte$

Dim map(10,10)

Repeat
    Cls
   Load_Function()
   Map_Function()
   Steuerung_Function()
   Spieler_Function()
   Door_Open()
   Text 0,0,+MouseX()/32+"|"+MouseY()/32
   
    Flip 0
    WaitTimer(FPS_Timer)
Until KeyHit(1)

Function Load_Function()
   If Laden= True
      Karte$ = ReadFile("data/map1.map")
      For X = 0 To 10
         For Y = 0 To 10
            map(X,Y) = ReadInt(Karte$)
         Next
      Next
      CloseFile(Karte$)
   End If
End Function

Function Spieler_Function()
   X = SpielerX *32
   Y = SpielerY *32
   DrawImage gfx_spieler,X,Y
End Function

Function Steuerung_Function()
   If KeyHit(208)
        If (map(SpielerX,SpielerY+1) = 0) Or (map(SpielerX,SpielerY+1) = 1) Or (map(SpielerX,SpielerY+1) = 2)
            SpielerY = SpielerY +1
        End If
    End If
   
    If KeyHit(200)
        If (map(SpielerX,SpielerY-1) = 0) Or (map(SpielerX,SpielerY-1) = 1) Or (map(SpielerX,SpielerY-1) = 2)
            SpielerY = SpielerY -1
        End If
    End If
   
    If KeyHit(203)
        If (map(SpielerX-1,SpielerY) = 0) Or (map(SpielerX-1,SpielerY) = 1) Or (map(SpielerX-1,SpielerY) = 2)
            SpielerX = SpielerX -1
        End If
    End If
   
    If KeyHit(205)
        If (map(SpielerX+1,SpielerY) = 0) Or (map(SpielerX+1,SpielerY) = 1) Or (map(SpielerX+1,SpielerY) = 2)
            SpielerX = SpielerX +1
        End If
    End If
End Function

Function Door_Open()
    If map(SpielerX,SpielerY) = 2 Then
       Text 0,0,"Du stehst auf einem Schalter"
      If KeyHit(57) Then
         For X = 0 To 10
            For Y = 0 To 10
               If map(X,Y) = 4 Then
                  map(X,Y) = 0
               End If
            Next
         Next
      End If
   End If
End Function

Function Map_Function()
   For Y=0 To 10
        For X=0 To 10
            DrawImage gfx_tileset,X*32,Y*32,map(X,Y)
        Next
    Next
End Function


;EDIT
Gelöst!

Raidenkk/Kevin

Hubsi

BeitragMo, Nov 29, 2010 9:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry Raiden, aber da sind noch derart grundsätzliche Fehler drin (Logik und Technik) das ich denke eine Tilemap und dessen Manipulation sind bisweilen eine Ecke zu viel für Dich. Ein paar Stichwörter worin Du vorher standfest sein solltest:

ReadFile, Function -> hier im speziellen die Parameterübergabe.

Und nein, mehr sage ich in dem Fall nicht dazu. Löse Deine Probleme und Du hast was davon. Viel mehr als wenn Dir jemand was vorkaut Mr. Green
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Raiden93

BeitragMo, Nov 29, 2010 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe das Problem ja gemeistert.Habe es jetzt sogar geschafft 2 Levels rein zu bauen das Funktioniert ja alles schön und gut.Nur jetzt habe ich ein dickes Problem mit dem Scrollen, bei Level 1 Funktioniert es.Aber komme ich ins 2 Level ist meine so gesagte Scroll-Kamera ganz oben und der Spieler ganz unten.Ich bin schon am verzweifeln währe nett wen mir jemand da mal auf die Sprünge helfen könnte :/

Habe mal ne Exe gemacht und meine BB+mein Editor Hochgeladen.
http://www.raiden-net.de/downloads/TilemapTEST.rar

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group