Pac-Man und der Window-Editor

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Surat

Betreff: Pac-Man und der Window-Editor

BeitragDi, Jul 26, 2005 15:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich habe gelesen, dass man bei Pac-Man-Levels nur einen simplen
Texteditor braucht um die Level zu kreieren.
1. Geht da wirklich der normale Editor von Windows?
(Programme==>Zubehör==>Editor)
Für Mauern verwende ich eine "1" und für freie Felder " " .

1111111111111
1111 11111111
1111 111111111
111 111
111 11111 111
11 111
1111111111111

Wenn ich jetzt so ein Level (wie oben) erstellt habe, dann muss
ich es ja mit ReadLine einlesen.
2. Werden die Leerzeichen hinter dem Level nicht mitgelesen?


Ich bin für jede Hilfe dankbar Very Happy

mfg felix
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

dimaster

BeitragDi, Jul 26, 2005 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir das mal an:
BlitzBasic: [AUSKLAPPEN]

Dim map(100,100)
Graphics 640,480,16,3

tileset = LoadAnimImage(\"tileset2.bmp\",32,32,0,27)

For x = 0 To 100
For y = 0 To 100
map(x,y)=0
Next
Next

SetBuffer BackBuffer()
Repeat
Cls
HidePointer
If KeyHit(1) Then Exit

For x = 0 To 100
For y = 0 To 100
DrawImage tileset,x*32-scrollx,y*32-scrolly,map(x,y)
Next
Next

If KeyHit(2) Then tile = tile+1
If KeyHit(3) Then tile = tile-1
If tile = 27 Then tile = 0
If tile = -1 Then tile = 26

If MouseDown(1) Then
For x = 0 To 100
For y = 0 To 100
If RectsOverlap(x*32-scrollx,y*32-scrolly,32,32,MouseX(),MouseY(),1,1) Then
map(x,y)=tile
EndIf
Next
Next
EndIf

If KeyDown(208) Then scrolly = scrolly + 32
If KeyDown(200) Then scrolly = scrolly - 32
If KeyDown(205) Then scrollx = scrollx + 32
If KeyDown(203) Then scrollx = scrollx - 32

If KeyHit(31) Then
save()
EndIf

If KeyHit(38) Then
load()
EndIf

DrawImage maus,MouseX(),MouseY()

Flip
Cls
Forever

Function save()
karte$ = WriteFile(\"map1.map\")
For x = 0 To 100
For y = 0 To 100
WriteLine(karte$,tile)
WriteInt(karte$,map(x,y))
Next
Next
CloseFile(karte$)
End Function

Function load()
karte$ = ReadFile(\"map1.map\")
For x = 0 To 100
For y = 0 To 100
tile = ReadLine(karte$)
map(x,y) = ReadInt(karte$)
Next
Next
CloseFile(karte$)
End Function

Artemis

BeitragDi, Jul 26, 2005 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
die "leerzeichen" werden nicht mitgelesen, da das überhaupt keine sind!
dieses level hier:
Code: [AUSKLAPPEN]
11 11 11
  1  1 

sieht gespeichert folgendermassen aus:
Code: [AUSKLAPPEN]
11 11 11•  1  1 

(Ich hab mal diesem hübschen punkt genommen, um Chr(13) (=Zeilenumbruch) darzustellen

An deiner Stelle würde ich das ganze aber mit bytes machen.
Das Problem: Du kannst es nicht mehr so einfach per Hand eingeben.
Du müsstest dir einen kleinen editor schreiben!

Vorteil: Wenn du mehr als 10 verschiedene tiles hast, würdest du bei methode 1 zwei bytes brauchen, um die zahl darzustellen!
Bei methode 2 geht es bis 256!

J
 

gamble

BeitragDi, Jul 26, 2005 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Was auch nicht so schwierig sein würde, da es auf Robsite.de ja ein Tileengine/Editor Tutorial gibt Wink

Surat

BeitragDi, Jul 26, 2005 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke für die Hilfe.
Ich schau mir mal das Robsite-Tutorial an.
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group