Is there a standard way to track 2d tile positions both locally and on screen?
        Posted  
        
            by 
                Magicked
            
        on Game Development
        
        See other posts from Game Development
        
            or by Magicked
        
        
        
        Published on 2012-06-12T19:31:20Z
        Indexed on 
            2012/06/12
            22:49 UTC
        
        
        Read the original article
        Hit count: 273
        
I'm building a 2D engine based on 32x32 tiles with OpenGL. OpenGL draws from the top left, so Y coordinates go down the screen as they increase. Obviously this is different than a standard graph where Y coordinates move up as they increase.
I'm having trouble determining how I want to track positions for both sprites and tile objects (objects that are collections of tiles). My brain wants to set the world position as the bottom left of the object and track every object this way. The problem with this is I would have to translate it to an on screen position on rendering. The positive with this is I could easily visualize (especially in the case of objects made of multiple tiles) how something is structured and needs to be built.
Are there standard ways for doing this? Should I just suck it up and get used to positions beginning in the top left?
Here are the OpenGL calls to start rendering:
// enable textures since we're going to use these for our sprites
glEnable(GL_TEXTURE_2D);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
// enable alpha blending
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// disable the OpenGL depth test since we're rendering 2D graphics
glDisable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, WIDTH, HEIGHT, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
I assume I need to change:
glOrtho(0, WIDTH, HEIGHT, 0, 1, -1);
to:
glOrtho(0, WIDTH, 0, HEIGHT, 1, -1);
        © Game Development or respective owner