| hi I'm working on an RPG and I just made this simple tile editor which works fine but I am now trying to get loading/saving to work...Here's the code. I used writefile nd writeInt to try and save which 'frame' to use for each tile ie. which tile. The problem is that when I open the file after writing it with Blitz, all I get is a '[]' (wierd box)
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Graphics 800,600,16,1
AppTitle "Editor"
SetBuffer BackBuffer()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Const width=800
Const height=600
Const kLeft=203
Const kRight=205
Const kUp=200
Const kDown=208
Const Kz=44
Const kx=45
Const Kc=46
Const Kspace=57
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Type tile
	Field which
	Field x#,y#
	Field xn#
	Field yn#
	Field water
	Field passable
	Field ident
End Type
Global grasstiles=LoadAnimImage( "C:/RPG/tiles/grass.bmp",32,32,0,52 )
Global mudties=LoadAnimImage( "C:/RPG/tiles/mud.bmp",32,32,0,52 )
Global cursor=LoadImage( "C:/RPG/cursor.bmp" )
MaskImage cursor,255,0,255
Global cx=1,cy=1,cimg=0,curdent=100,status=0,set=0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While Not KeyHit(1)
Cls
	Select set
	
	Case 0
	tiles=grasstiles
	
	Case 1
	tiles=mudtiles
	
	Default
	tiles=grasstiles
	
	End Select
	If Not status=1 Then
	
	If KeyHit(15) And set=0 Then
		set=1
	EndIf
	
	If KeyHit(15) And set=1 Then
		set=0
	EndIf
	
	If KeyHit(31) And cimg<52 Then
		cimg=cimg+1
	EndIf
	
	If KeyHit(30) And cimg>0 Then
		cimg=cimg-1
	EndIf
	
	If KeyHit(57) Then
		t.tile=New tile
		t\x=cx
		t\y=cy
		t\which=cimg
		t\ident=curdent
		
		curdent=curdent+1
	EndIf
	
	If KeyHit(19) Then
	EndIf
	
	If KeyHit(Kz) Then
	status=1
	EndIf
			
	
	For t.tile = Each tile
		DrawImage tiles,t\x,t\y,t\which
	Next	
	
	
	If KeyHit(Kright) Then
		cx=cx+32
	EndIf
	
	If KeyHit(Kleft) Then
		cx=cx-32
	EndIf
	
	If KeyHit(Kdown) Then
		cy=cy+32
	EndIf
	
	If KeyHit(Kup) Then
		cy=cy-32
	EndIf
	
	If KeyHit(42) Then
	Color 100,140,150
	Text width/2,height/2,">>Saving<<",True,True
	name= WriteFile(CurrentDir()+"/levels/first_level")
	For t.tile = Each tile
	WriteByte(name,t\which)
	Next
	EndIf
	
	
	DrawImage tiles,cx,cy,cimg
	Color 255,255,255
	Rect cx-1,cy-1,34,34,False
	Text cx+35,cy,"Tile no: "+cimg
	For t.tile = Each tile
	If RectsOverlap(cx,cy,32,32,t\x,t\y,32,32) Then
	Text cx+35,cy+15,"Tile ident: "+t\ident
	EndIf
	Next
	
	Else
	
	window(200,10,350,560,50,90,30,"Tile editor V1.0")
	button(230,50,60,20,30,130,20,"Save")
	
		
	If KeyHit(Kz) Then
	status=0
	EndIf
	
	DrawImage cursor,MouseX(),MouseY()
	
	EndIf	
Flip
Wend
Function window(x#,y#,ys#,xs#,r#,g#,b#,title$)
Color 50,50,50
Rect x,y,ys,xs,True
Color 255,255,255
Text x+2,y-5,title,False
Color 255,255,255
Rect x+7,y+7,ys-7,xs-7,False
Color r,g,b
Rect x+17,y+17,ys-27,xs-27,True
End Function
Function button(x#,y#,xs#,ys#,r#,g#,b#,title$)
Color r,g,b
Rect x,y,xs,ys,True
Color 255,255,255
Rect x,y,xs,ys,False
Color 255,255,255
Text x+(xs/2),y+(ys/2),title,True,True
End Function
 
 Please help me with this as it's pretty much the only thing stopping me from making a great RPG :[
 
 
 |