Problem bei einer Map

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

eternitysoft

Betreff: Problem bei einer Map

BeitragMi, Jan 05, 2005 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Also erstmal hallo ^^ Ich habe da was geschrieben um mich mal ans Programm zu gewöhnen wollte mal ne Map schreiben mit dem Editor
hab nun folgendes geschafft
-Boden auszufüllen
-Held zu setzen und zu Bewegen
(es leben die Tutorials)
meine Probs sind
-Das Haus was ich setzen will wird immer neben dem Boden angezeigt (fülle ich z.b nur ein Teil der Map wird es an der Ecke unten Rechts vom Boden angezeigt.)
-Die Figur bewegt sich zu schnell (und guckt nur in die eine Richtung damit habe ich mich jetzt aber noch nicht weiter befasst da ich mich erstmal auf das Setzen und der Kollisionsabfrage Konzentrieren wollte)
hoffe ihr könnt mir helfen und sagen was falsch ist

Code: [AUSKLAPPEN]

Graphics 640, 480 , 32, 1
Const TILESIZE = 16
Const MAP_WIDTH = 100
Const MAP_HEIGHT = 100
Const KEY_UP = 200
Const KEY_DOWN = 208
Const KEY_LEFT = 203
Const KEY_RIGHT = 205
Global PlayerX, PlayerY
PlayerX = 5
PlayerY = 5
While Not KeyHit(1)
;Die Tiles
boden = LoadImage("data/boden.png")
Haus = LoadImage("data/haus.png")
SetBuffer BackBuffer()
;Die Map
Dim Map( MAP_WIDTH, MAP_HEIGHT, 2);<-- ergibt 3 Ebene (0,1,2)
;füllt den Boden
For x = 0 To MAP_HEIGHT
  For y = 0 To MAP_WIDTH
    DrawBlock boden, x * TILESIZE, y * TILESIZE, MAP( x, y, 0 )
  Next
Next
;Setzt das Haus
 DrawBlock Haus, x*TILESIZE , y*TILESIZE, MAP( 11, 11, 2 )
;Ladet und setzt Charset
Char = LoadAnimImage("data/farmer.png", 22, 32, 0, 12)
MaskImage Char, 227, 119, 100
DrawImage Char, PlayerX *Tilesize, PlayerY *Tilesize
Flip ()
;Werte (True/1 bzw. False/0) auslesen
KollisionOben = Map( PlayerY - 1, PlayerX, 2 )
KollisionRechts = Map( PlayerY, PlayerX + 1, 2 )
KollisionUnten = Map( PlayerY + 1, PlayerX, 2)
KollisionLinks = Map( PlayerY, PlayerX - 1, 2)

 If KeyDown( KEY_UP )
  If KollisionOben = False
    PlayerY = PlayerY - 1
  EndIf
EndIf

If KeyDown( KEY_RIGHT )
  If KollisionRechts = False
    PlayerX = PlayerX + 1
  EndIf
EndIf

If KeyDown( KEY_DOWN )
  If KollisionUnten = False
    PlayerY = PlayerY + 1
  EndIf

sorry wenn die Frage jetzt auf gut deutsch dumm ist aber bin noch recht neu dadrinne und hoffe das mein gefrage nicht schlimm ist im den sinne
hoffe ich auf antwort
mfg
ps hier mal die Images die ich nehme:
Boden: http://www.rpgstation.de/prob/bb/boden.PNG
Haus: http://www.rpgstation.de/prob/bb/haus.PNG
farmer: http://www.rpgstation.de/prob/bb/farmer.PNG

Hubsi

BeitragMi, Jan 05, 2005 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
boden = LoadImage("data/boden.png")
Haus = LoadImage("data/haus.png")
SetBuffer BackBuffer()
;Die Map
Dim Map( MAP_WIDTH, MAP_HEIGHT, 2);<-- ergibt 3 Ebene (0,1,2)

Char = LoadAnimImage("data/farmer.png", 22, 32, 0, 12)
MaskImage Char, 227, 119, 100
Das muss erst mal aus der Hauptschleife raus, du hast offensichtlich deren Funktionsweise nicht verstanden Wink Desweiteren verstehe ich Dein Problem nicht, aber das ist nicht weiter schlimm Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

eternitysoft

BeitragMi, Jan 05, 2005 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
args danke das kommt ja unten vor den abfragen hin (überprüft doch ob esc gedrückt wurde wenn nicht wird das in der Schleife abgefragt )

eternitysoft

BeitragDo, Jan 06, 2005 0:32
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich hab es jetzt geschafft mit den posinieren des hauses mein Problem jetzt ich kann trotzdem rüberlaufen und ich weiß aber nicht warum ich da immernoch rüberlaufen kann
(folgende Zeile hab ich jetzt geändert)
Code: [AUSKLAPPEN]
DrawBlock Haus, 3*48 , 2*80, MAP( 11, 11, 2 )

(48 für die Breite des Bildes und 80 für die Höhe des Bildes)
ps:Sorry für Doppelpost hab zu Spät bemerkt das ich ja als letzter gepostet hatte

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group