PureBasic Forumhttp://forums.purebasic.com/english/ Drawing tilemap with zoomhttp://forums.purebasic.com/english/viewtopic.php?f=16&t=71708 Page 1 of 1

 Author: wombats [ Sun Nov 11, 2018 4:47 pm ] Post subject: Drawing tilemap with zoom Hi,To draw a tilemap, I calculate which tiles to draw like this:Code:x1 = scroll_pos\x / 32y1 = scroll_pos\y / 32x2 = ScreenHeight() / 32y2 = ScreenWidth() / 32If x1 > tiles_x  x1 = tiles_xEndIfIf y1 > tiles_y  y1 = tiles_yEndIfFor y = y1 To (y2 + y1)  For x = x1 To (x2 + x1)    ; draw...  NextNextHow can I incorporate zooming into this? I'm struggling to understand what I need to multiply by the zoom value.

 Author: Demivec [ Mon Nov 12, 2018 12:39 am ] Post subject: Re: Drawing tilemap with zoom wombats wrote:How can I incorporate zooming into this? I'm struggling to understand what I need to multiply by the zoom value.Code:tile_size = 32zoom_amount = 1 ;za = 1 for normal size, za > 1 to zoom in, 0 > za > 1 to zoom outscreen_tile_size = tile_size * zoom_amount ;zoomed tile size on screenx1 = scroll_pos\x / screen_tile_sizey1 = scroll_pos\y / screen_tile_size x2 = ScreenHeight() / screen_tile_size y2 = ScreenWidth() / screen_tile_size If x1 > tiles_x  x1 = tiles_xEndIfIf y1 > tiles_y  y1 = tiles_yEndIfFor y = y1 To (y2 + y1)  For x = x1 To (x2 + x1)    ; draw...  NextNextThis should adjust for the tile size and can be considered 'simple zooming'. When zooming in things will 'grow' towards the bottom-right of the screen. 'Complex zooming' would require a bit more effort to calculate the position of the visible tiles and would allow zooming in/out of a particular point on the screen such as the center of the screen or the position of the mouse pointer and would cause things to 'grow' outward from or inward to the point of zoom.

 Author: wombats [ Mon Nov 12, 2018 10:59 am ] Post subject: Re: Drawing tilemap with zoom Thanks for the reply.I think I need more 'complex' zooming. I already calculate the tiles that should display based on the scroll position, so it works at zoom level 1, but not at 0.5, 2.0, etc. Wherever I put the zoom value, it just causes problems like tiles being cut off.

 Author: Demivec [ Mon Nov 12, 2018 2:22 pm ] Post subject: Re: Drawing tilemap with zoom Are you using sprites to display your tiles or drawing images?

 Author: wombats [ Mon Nov 12, 2018 2:29 pm ] Post subject: Re: Drawing tilemap with zoom I am drawing images. I subtract the current scroll position from their grid position.

 Author: #NULL [ Mon Nov 12, 2018 3:42 pm ] Post subject: Re: Drawing tilemap with zoom You need to scale the position as well as the size of tiles, i guess that's what you are already doing. If you have gaps, it might be because you are using integer division when applying the scaling. Make sure you have some floating point variables in your division or in the relevant context like variables that are being assigned to.

 Page 1 of 1 All times are UTC + 1 hour Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Grouphttp://www.phpbb.com/