Hallo, bei meinen Editor funktioniert das Laden und speicher nur so lange wie der Editor läuft. Beendet man ihn und startet neu. Kommt beim laden gar nix mehr ... außer man zeichnet nochmals so viele Tile wie bei der gespeicherten Map gebraucht wurden.
Leider hab ich zur Zeit kein webspace. also hier mal der gesamte Code. Das laden und speichern erfolgt ganz unten am Ende.
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Ebene1Chip = 1 AZahlE = 1 kartenname$ = \"unbekannt\"
Graphics 800,600,32,2 .restart viereck=CreateImage(20,20) SetBuffer ImageBuffer(viereck)
kartexmax = 1660 - 1 karteymax = 1660 - 1 Gitter = 1
Type imga Field x,y Field tileIndex End Type
Dim Ebene1a(100) Dim kastenx(100000) Dim kasteny(100000)
button = LoadAnimImage(\"gfx\datagfx\button.bmp\",79,10,0,2) me1 = LoadAnimImage(\"gfx\datagfx\me1.bmp\",15,15,0,2)
menueicon = LoadAnimImage(\"gfx\datagfx\menueicon.bmp\",29,13,0,2)
fenster1 = LoadImage(\"gfx\datagfx\Fenster\fenster1.bmp\") fenster2 = LoadImage(\"gfx\datagfx\Fenster\fenster2.bmp\") fenster3 = LoadImage(\"gfx\datagfx\Fenster\fenster3.bmp\") fenster4 = LoadImage(\"gfx\datagfx\Fenster\fenster4.bmp\") hilfsfenster = LoadImage(\"gfx\datagfx\Fenster\hilfsfenster.bmp\") mapdesigne = LoadImage(\"gfx\datagfx\Mapdesigne.bmp\") scroll = LoadImage(\"gfx\datagfx\scroll.bmp\") mouse1 = LoadImage(\"gfx\datagfx\mouse.bmp\") mouse2 = LoadImage(\"gfx\datagfx\mouse2.bmp\") mouse = LoadImage(\"gfx\datagfx\point.bmp\") kasten = LoadImage(\"gfx\datagfx\kasten.bmp\") scro = LoadImage(\"gfx\datagfx\scro.bmp\") lo = LoadImage(\"gfx\datagfx\lo.bmp\") vier = LoadImage(\"gfx\datagfx\vier.bmp\")
B1 = LoadImage(\"gfx\Boden\grass.bmp\") B2 = LoadImage(\"gfx\Boden\Dreck.bmp\")
bdaten = LoadImage(\"GFX\bild.bmp\") bildy = ImageHeight(bdaten) bildx = ImageWidth(bdaten) bildgesamt = bildx * bildy anzahl = (bildgesamt / 20^2) Ebene1 = LoadAnimImage(\"gfx\bild.bmp\",20,20,0,anzahl) anzahl = anzahl - 1 For Ebene1Chip = 1 To anzahl MaskImage Ebene1, 0, 255,0 Next
MaskImage Mapdesigne ,0,255,0 MaskImage mouse1 ,0,255,0 MaskImage mouse2 ,0,255,0 MaskImage kasten ,0,255,0 MaskImage scroll ,0,255,0 MaskImage scro ,0,255,0 MaskImage button ,0,255,0 MaskImage fenster1 ,0,255,0 MaskImage vier ,0,255,0 MaskImage menueicon ,0,255,0 MaskImage mouse2 ,0,255,0
kasten_nor = kasten mouse_nor = mouse1
font=LoadFont (\"arial\",12,1) SetFont font
bo = B1
SetBuffer BackBuffer() Repeat Cls
mx = MouseX() my = MouseY() mxs = mx - sk mys = my - sk2
mousedown1 = MouseDown(1) MouseHit1 = MouseHit(1)
For kasteny(fachx) = 0 To karteymax Step 60 For kastenx(fachx) = 0 To kartexmax Step 60 If fachx < kartexmax Then fachx = fachx + 1 EndIf DrawImage bo, kastenx(fachx) + sk , kasteny(fachx) + sk2 Next Next
fuellart = kasten_nor
If Not mxs > kartexmax Then If Not mxs =< 0 Then If Not mys =< 0 Then If Not mys > karteymax Then
vierX = mx / 20 * 20 vierY = my / 20 * 20
EndIf EndIf EndIf EndIf
For img.imga = Each imga
If ImagesOverlap(viereck, vierx - sk,viery - sk2, Ebene1, img\x, img\y) Then nopaint = 1 Next
If rechtemaus = 0 And loeschen = 0 And nopaint = 0 Then
DrawImage ebene1,vierx,viery, AZahlE
If mousedown1 Then
img.imga=New imga img\x=vierX - sk img\y=vierY - sk2 img\tileIndex = AZahlE Tileanzahl = Tileanzahl + 1
EndIf EndIf
For img.imga = Each imga
DrawImage Ebene1,img\x + sk,img\y + sk2, img\tileIndex Color 255,255,255 If ImagesCollide(mouse,mx,my,0,Ebene1,img\x + sk,img\y + sk2, img\tileIndex) Then Text mx + 15,my,\"Nr:\"+img\tileIndex+\" Zahl:\"+Zahl+\"\" : nopaint = 1: If loeschen = 1 Then Delete img.imga Color 0,0,0 Next
If loeschen = 1 Then mouse_nor = mouse2 Else mouse_nor = mouse1
If MouseDown(2) Then rechtemaus = 1 Else rechtemaus = 0
If rechtemaus = 1 Then If Mousehit1 Then loeschen = loeschen Xor 1
EndIf EndIf
Color 255,255,255 Rect vierX , vierY, 20, 20, 0 Color 0,0,0
DrawImage fenster1,1,512 If mekl = 0 Then DrawImage fenster2,100,512 EndIf
If mousehit1 Then If ImagesCollide(mouse,mx-sk,my - sk2,0,button,30 - sk,1 - sk2,0) Then mekl = mekl Xor 1 EndIf EndIf
If ImagesCollide(mouse,mx-sk,my - sk2,0,button,6 - sk,520 - sk2,0) Then If Mousehit1 Then onoffmenue = 0 ebene1an = 0 bodenan = bodenan Xor 1 EndIf hilfe = 1 EndIf
If ImagesCollide(mouse,mx-sk,my - sk2,0,button,6 - sk,532 - sk2,0) Then hilfe = 2
If Mousehit1 Then onoffmenue = 0 bodenan = 0 ebene1an = ebene1an Xor 1 EndIf EndIf If ImagesOverlap(mouse,mx,my,menueicon,104,516) Then If Mousehit1 Then
bodenan = 0 ebene1an = 0 onoffmenue = onoffmenue Xor 1
EndIf hilfe = 3 EndIf
DrawImage button, 6, 520,bodenan DrawImage button, 6, 532,ebene1an
Text 28,518 + bodenan,\"Boden\" Text 26,530 + ebene1an,\"Ebene 1\"
Text 350,1, \"Map: \"+kartenname$+\"\"
If ebene1an = 1 Or Bodenan = 1 Or onoffmenue = 1 Then DrawImage fenster3, 150, 512 If ImagesOverlap(mouse,mx,my,fenster3, 150 ,512 ) Or ImagesOverlap(mouse,mx,my,fenster1,0 ,512 ) Or ImagesOverlap(mouse,mx,my,fenster2,100,512) Or mxs > kartexmax Or mxs < 0 Or mys < 0 Or mys > karteymax Then nopaint = 1 Else nopaint = 0 EndIf
klick = 1 Else klick = 0
EndIf
If ebene1an = 1 Then
For Ebene1Chip = 1 To anzahl
DrawImage Ebene1, 140 + (22 * Ebene1Chip) + cs , 520, Ebene1Chip If ImagesCollide(mouse,mx,my,0,Ebene1,140 + (22 * Ebene1Chip) + cs, 520,Ebene1Chip) Then If mousehit1 = 1 Then AZahlE = Ebene1Chip EndIf EndIf
Next EndIf
If Bodenan = 1 Then
Rect 159,524,62,62 Rect 229,524,62,62 DrawImage B1, 160, 525 DrawImage B2, 230, 525 Color 255,255,255 If ImagesOverlap(mouse,mx,my, B1, 160, 525) Then Text 730,32, \"Grass\" If MouseDown(1) Then bo = B1 If ImagesOverlap(mouse,mx,my, B2, 230, 525) Then Text 730,32, \"Dreck\" If MouseDown(1) Then bo = B2 Color 0,0,0
EndIf
If onoffmenue = 1 Then DrawImage fenster4, 160,520 DrawImage button, 160,535,speichernan DrawImage button, 160,547,ladenan DrawImage button, 160,558
Text 177,533 + speichernan,\"Speichern\" Text 184,545 + ladenan,\"Laden\" Text 191,556 + ladenan,\"Neu\"
If ImagesOverlap(mouse,mx,my, button,160,547) Then hilfe = 5 If MouseHit1 Then
ladenan = 1 Gosub laden
EndIf EndIf
If ImagesOverlap(mouse,mx,my, button,160,535) Then hilfe = 4 If mousehit1 Then speichernan = 1 Gosub speichern EndIf
EndIf
. back
EndIf
DrawImage menueicon,104,516,onoffmenue
DrawImage hilfsfenster,1,495
Color 0,0,155 If hilfe = 0 Then Text 5,496, \"-Hilfefenster-\" If hilfe = 1 Then Text 5,496, \"-Bodenauswahl-\" If hilfe = 2 Then Text 5,496, \"-Ebene 1 Tiles-\" If hilfe = 3 Then Text 5,496, \"- Menü AN/AUS-\" If hilfe = 4 Then Text 5,496, \"- SPEICHERN -\" If hilfe = 5 Then Text 5,496, \"- LADEN -\"
If hilfe = 5 Or hilfe = 4 Or hilfe = 1 Or hilfe = 2 Or hilfe = 3 Then If MilliSecs() > erdsch + 300 Then erdsch=MilliSecs() hilfe = 0 EndIf EndIf Color 0,0,0
For Ebene1Chip = 1 To anzahl Color 255,255,255 Text 715,2, \"Anzahl: \"+anzahl+\"\" Text 715,22, \"Untergrund:\" Text 715,32, \"---\" Color 0,0,0 Next
If klick = 0 Then If ImagesOverlap(mouse,mx,my,fenster1,0 ,512 ) Or ImagesOverlap(mouse,mx,my,fenster2,100,512) Or mxs > kartexmax Or mxs < 0 Or mys < 0 Or mys > karteymax Then nopaint = 1 Else nopaint = 0 EndIf EndIf
Color 255,255,255 Text 1,1,\"MouseX:\"+mxs+\"\" Text 1,10, \"MouseY:\"+mys+\"\" Text 1,20, \"\"+Tileanzahl+\"\"
Color 0,0,0
mausda = 1
If MouseDown(2) Then scroll = 1 mausda = 0 If einmalm2 = 0 Then mxxz = mx myyz = my einmalm2 = 1 EndIf
DrawImage lo , mxxz, myyz DrawImage scro, mxxz - 15 , myyz DrawImage scro, mxxz + 15 , myyz DrawImage scro, mxxz, myyz + 15 DrawImage scro, mxxz, myyz - 15
If MilliSecs() > scrolltime + 50 Then scrolltime = MilliSecs() If ImagesCollide(mouse, mx + 3, my + 1, 0, scro, mxxz - 15, myyz,0) Then sk = sk + 20 If ImagesCollide(mouse, mx + 3, my + 1, 0, scro, mxxz + 15, myyz,0) Then sk = sk - 20 If ImagesCollide(mouse, mx + 3, my + 1, 0, scro, mxxz, myyz + 15,0) Then sk2 = sk2 - 20 If ImagesCollide(mouse, mx + 3, my + 1, 0, scro, mxxz, myyz - 15,0) Then sk2 = sk2 + 20
EndIf Else einmalm2 = 0 scroll = 0 EndIf
DrawImage mouse_nor, mx , my DrawImage mouse, mx + 3, my + 1
If KeyDown(59) Then For xs=01 To 100 tmp=ReadFile(\"Screenshots\Screenshot\"+xs+\".bmp\") If Not tmp Then SaveBuffer(FrontBuffer(),\"Screenshots\Screenshot\"+xs+\".bmp\") time = MilliSecs() Exit EndIf Next EndIf
Flip
Until KeyHit(1) End
. laden Locate 163, 519 kartenname$ = Input$(\"\") fileout = OpenFile(\"Maps\\"+kartenname$+\".map\")
imga = ReadLine (fileout) AZahlE = ReadLine (fileout)
For img.imga = Each imga
img\x = ReadLine (fileout) img\y = ReadLine (fileout) img\tileIndex = ReadLine (fileout)
Next
CloseFile fileout ladenan = 0
Gosub restart
. speichern Locate 163, 519 kartenname$ = Input$(\"\")
fileout = WriteFile(\"Maps\\"+kartenname$+\".map\")
WriteLine fileout, imga WriteLine fileout, AZahlE
For img.imga = Each imga
WriteLine (fileout, img\x) WriteLine fileout, img\y WriteLine fileout, img\tileIndex Next
CloseFile fileout Speichernan = 0
Gosub back
End
|