Overhead Map
BlitzMax Forums/BlitzMax Programming/Overhead Map
| ||
Hi all. I'm currently working on an isometric RPG, in the category of the old Fallout games. I'm going to need an overhead map of some kind for various game levels. I have a decent handle on all of the other functionality a game like this will require but the overhead map is one area where I'm not even sure where to begin. Ideally, the map will contain an exact replica (but miniature) of the current level the player is on. The other idea is to simply draw lines of the various parts they explored but I'm not really sure how that would work, or to be exact, how to keep the proportions of the level the same when drawing a much smaller scale of it. I did a bunch of searching on the forums here but can't find anything. I'm not asking to be handed all the answers or for anyone to do the work for me, just some ideas on what makes the most sense with Blitzmax and where to begin on something like this. Anyone? :) |
| ||
What scale would the mini-map be? 1 pixel per tile would be easy to pull off, you could even automate its generation by using the colours of the main tile averaged into the pixel colour. How big are your maps? You could probably store the minimap data straight into a TPixmap meaning you could draw and store in one place. Visibility could be controlled by only filling the pixels of the map when necessary. |
| ||
Right now I'm not sure how big the maps will be in terms of pixels. I don't plan to have one large level but will break it down into sections. Off the top of my head, perhaps internal levels will be 5000p by 5000p. Outside levels probably twice that. That's a pretty interesting idea with the tpixmap, never thought about that but I know exactly what you are saying. |
| ||
Maybe use SetVirtualResolution() and draw the level normally. Some Pseudocode:Local MapMode:Int = false While In the game loop If SwitchToMapMode MapMode = true SetVirtualResolution(1600,1200) End If If SwitchToGameMode MapMode = False SetVirtualResolution(800,600) End If DrawLevel() Flip Wend |