BB map nicht benutzer freundlich

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Schnuff

Betreff: BB map nicht benutzer freundlich

BeitragDi, Dez 14, 2004 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe gerade mal begonnen mein erstes anspruchfolles
Spiel zu programmieren Exclamation aber leider ist mir bei´m versuch
es so bedienfreundlich wie möglich zu machen ein (für mich)
unlösbarer (vorallem ein unauffindbarer) Fehler unterlaufen
könntet ihr mir bitte helfen, hir der Code

Code: [AUSKLAPPEN]

i = 0
Aha = OpenFile("Level.txt")
While Not Eof(Aha)
MaxZ = Len(ReadLine(Aha))
i = i + 1
Wend
CloseFile Aha

MaxS = i

Dim Level$(MaxS,MaxZ)

D = ReadFile("Level.txt")
For Z = 0 To MaxS - 1
 A$ = ReadLine(D)
 For S = 0 To MaxZ - 1
  Level$(Z,S) = Upper$(Mid$(A$,S+1,1))
 Next
Next
CloseFile D

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Level Malen
Graphics 640,480,16
HG   = LoadImage(".\Level.bmp")
Map1 = CreateImage(MaxZ*32,MaxS*32)
Play = CreateImage(32,32)
SetBuffer ImageBuffer(Play)
DrawImageRect HG,0,0, 64,0,32,32

SetBuffer ImageBuffer(Map1)

For Z = 0 To MaxS - 1
 For S = 0 To MaxZ - 1
  Select Level$(Z,S)
   Case "W" ; Wand(Wall)
    DrawImageRect HG,S*32,Z*32,0*32,0,32,32
   Case " "
    DrawImageRect HG,S*32,Z*32,1*32,0,32,32
   Case "S" ; Spieler
    SpielerS = S
    SpielerZ = Z
    DrawImageRect HG,S*32,Z*32,1*32,0,32,32
   Case "G" ; Gras
    DrawImageRect HG,S*32,Z*32,3*32,0,32,32
   Case "O"  ; Wasser(W war nicht mehr frei!)
    Color 0,0,127
    Rect S*32,Z*32,32,32
   Case ""
    Color 0,0,127
    Rect S*32,Z*32,32,32
   Default
    Color 0,0,127
    Rect S*32,Z*32,32,32
  End Select
 Next
Next

FreeImage HG
SetBuffer FrontBuffer()


Repeat
DrawImage Map1,-(ScrolX*640),-(ScrolY*480)
;If ScrolX = 0 Then DrawImage Map1,ScrolX*460,0 ;0,0
;If ScrolX = 1 Then DrawImage Map1,-640,0

DrawImage Play,SpielerS*32,SpielerZ*32

    If KeyDown(203) And (Level$((SpielerZ+(ScrolY*15)),   (SpielerS+(ScrolX*20))-1)) <> "W" And (Level$((SpielerZ+(ScrolY*15)),   (SpielerS+(ScrolX*20))-1)) <> "O" Then
SpielerS = SpielerS-1
ElseIf KeyDown(205) And (Level$((SpielerZ+(ScrolY*15)),   (SpielerS+(ScrolX*20))+1)) <> "W" And (Level$((SpielerZ+(ScrolY*15)),   (SpielerS+(ScrolX*20))+1)) <> "O" Then
SpielerS = SpielerS+1
ElseIf KeyDown(200) And (Level$((SpielerZ+(ScrolY*15))-1, (SpielerS+(ScrolX*20)))) <> "W"   And (Level$((SpielerZ+(ScrolY*15))-1, (SpielerS+(ScrolX*20)))) <> "O"   Then
SpielerZ = SpielerZ-1
ElseIf KeyDown(208) And (Level$((SpielerZ+(ScrolY*15))+1, (SpielerS+(ScrolX*20)))) <> "W"   And (Level$((SpielerZ+(ScrolY*15))+1, (SpielerS+(ScrolX*20)))) <> "O"   Then
SpielerZ = SpielerZ+1
EndIf

If SpielerS = 20 Then ScrolX = ScrolX + 1 : SpielerS =  0
If SpielerS = -1 Then ScrolX = ScrolX - 1 : SpielerS = 19

If SpielerZ = 15 Then ScrolY = ScrolY + 1 : SpielerZ = 0
If SpielerZ = -1 Then ScrolY = ScrolY - 1 : SpielerZ = 14


Delay 50
Flip
Until KeyHit(1)
End


wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wSggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggw
wgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggw
wgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggw
woooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooggw
wggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggoggw
wggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggoggw
wggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggoggw
wggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggoggw
wggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggoggw
wggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggoggw
woooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ooggw
woooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ggw
wooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooow


das problem, wenn man(oder Frau) eine Zeile Zuwenig Schreibt
Passiert:

Links: wird das bild aus einer anderen Stellung angezeigt.
Unten: bleibt das bild Schwartz,ich möchte es abber Dunkel
Blau(0,0,127)
 

Aldi

BeitragDi, Dez 14, 2004 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde man kann aus deinem Quelltext nicht direkt schließen, was das für ein Programm ist und was es macht.

Sag uns doch mal den Sinn des Programms Wink
goto jollyroger.cabanova.de
 

Schnuff

BeitragMo, Dez 20, 2004 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wusste leider nicht, wie man eine Zip-datei hinzufügen kann Embarassed
der sinn ist es soll ein spiel werden indem 32*32 Pixel Große grafiken(tiles) gemalt werden.
Ein "O" entspricht Wasser
ein "W" Wand , ein "G" Gras und ein " " entspricht weg
dieser buchstagen wirwar soll das Level darstellen!
(könntet ihr bitte auch sagen wie man in Fragen bzw. Antworten zip dateien Einfügen kann Question )
 

David

BeitragDi, Dez 21, 2004 8:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Is' auch irgendwie klar das dann Darstellungsfehler auftreten. Deine Map muss eben die vorgegebenen Dimensionen (bei dir MaxS und MaxZ) haben...
Viel sinniger wäre es aber die Map nicht so zu speichern, sondern ein eigenes Format zu erfinden und die Daten dann im Binärformat (nicht Text) zu hinterlegen.
Das hätte einige Vorteile:

Arrow Verschiedene Tilesets können leicht eingebunden werden (zugriff per Index, nicht per Buchstabe)
Arrow Die Darstellung ist leichter und "allgemeiner" wie deine Lösung
Arrow Multilayer sind kein Problem (Z-Anordnung von Objekten ebenfalls nicht)
Arrow Tileproperties können leicht mit eingebunden werden. (Lava, Durchlässige-Tiles, Spitzen, Luft, Boden, etc...)
Arrow Spielereignisse können leicht mit eingebunden werden. (Levelende, Dialoge, Startpunkte für diverse Scripte, Teleportationspunkte, etc...)
Arrow etc... Wink

Ich würd an deiner Stelle mal darüber nachdenken! Smile

grüße

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group