Map Editor Questions

Blitz3D Forums/Blitz3D Beginners Area/Map Editor Questions

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

As for me, I tend to favor the method that makes it easiest for the programmer. I really like types, so I make liberal use of them. Sometimes I use arrays of types, so that they can be indexed directly, but I don't often need to with the stuff I do; it's just as well to do an O(n/2) search through the list of types.

I suggest trying both (or all three, if you want to take CS_TBL's advice). Most likely, you'll probably end up with a nice mix. And you certainly will learn the differences, pros/cons, etc, which is a goal of yours, unless I'm mistaken.

As for the zoom thing, there is a graceful way. Basically, just resize the canvas. Check out this small example:
Global w=CreateWindow("Canvas Resize / Zoom", 200, 200, 400, 400, 0, 3)
Global c=CreateCanvas(0,0,ClientWidth(w),ClientHeight(w),w)

CreateTimer(60)
SetBuffer(CanvasBuffer(c))

Notify "Press mouse buttons to zoom in/out"

Repeat
	Select WaitEvent()
		Case $803 : End
		Case $201
			If EventData() = 1 Then
				zoom = zoom + 50
			Else
				zoom = zoom - 50
				If zoom < -150 Then zoom = -150 ; don't get too small
			EndIf
			SetGadgetShape(c,0-zoom,0-zoom,400+zoom*2,400+zoom*2)
		Case $4001
			Render()
	End Select
Forever

Function Render()
	;Cls ;if you want
	Color Rand(256), Rand(256), Rand(256)
	Rect(Rand(ClientWidth(c)), Rand(ClientHeight(c)), Rand(10), Rand(10), True)
	FlipCanvas(c)
End Function