void Block::Draw(int gridX, int gridY, int landedGrid[GRID_HEIGHT][GRID_WIDTH])
{
    // Get the grid's height
    int hiddenRowHeight = (HIDDEN_ROWS * TILE_HEIGHT);

    if(mShowGhost)
    {
        // Draw the ghost
        DrawGhost(gridX, gridY, landedGrid);
    }

    // Cycle through data
    for(int row = 0; row < mHeight; row++)
    {
        for(int column = 0; column < mWidth; column++)
        {
            if(mBlockMatrix[mOrientation][row][column] != TILE_BLANK)
            {
                // Get current tile's pixel coordinates
                int pixelX = gridX + (TILE_WIDTH * mGridX) + (TILE_WIDTH * column);
                int pixelY = gridY + (TILE_HEIGHT * mGridY) + (TILE_HEIGHT * row) - hiddenRowHeight;

                if( pixelY > hiddenRowHeight)
                {
                    mTexture->Draw(pixelX, pixelY);
                }                 
            }
        }
    }
}
Example #2
0
/* Create all the objects, textures, geometry, etc, that we will use */
void InitialiseScene(void)
{
  /* Create new lists, and store its ID number */
  gTerrainList = glGenLists(1);
  gPacman = glGenLists(2);
  gLQGhost = glGenLists(3);
  gMQGhost = glGenLists(4);
  gHQGhost = glGenLists(5);
  gHQDot = glGenLists(6);
  gHQFruit = glGenLists(7);

  // create terrain
  glNewList(gTerrainList, GL_COMPILE);
  DrawTerrain();
  glEndList();

  // create pacman
  glNewList(gPacman, GL_COMPILE);
  DrawPacman();
  glEndList();

  // create ghosts from splines
  theGhostNurb = gluNewNurbsRenderer();
  gluNurbsProperty(theGhostNurb, GLU_SAMPLING_METHOD, GLU_DOMAIN_DISTANCE);
  gluNurbsProperty(theGhostNurb, GLU_DISPLAY_MODE, GLU_FILL);
  gluNurbsProperty(theGhostNurb, GLU_CULLING, GL_TRUE);

  // high quality ghost
  gluNurbsProperty(theGhostNurb, GLU_U_STEP, 50.);
  gluNurbsProperty(theGhostNurb, GLU_V_STEP, 50.);
  glNewList(gHQGhost, GL_COMPILE);
  DrawGhost();
  glEndList();
 
  // medium quality ghost
  gluNurbsProperty(theGhostNurb, GLU_U_STEP, 20.);
  gluNurbsProperty(theGhostNurb, GLU_V_STEP, 20.);
  glNewList(gMQGhost, GL_COMPILE);
  DrawGhost();
  glEndList(); 

  // low quality ghost
  gluNurbsProperty(theGhostNurb, GLU_U_STEP, 5.);
  gluNurbsProperty(theGhostNurb, GLU_V_STEP, 5.);
  glNewList(gLQGhost, GL_COMPILE);
  DrawGhost();
  glEndList(); 

  gluDeleteNurbsRenderer(theGhostNurb); 

  /* create the banana from nurb spline*/
  theFruitNurb = gluNewNurbsRenderer();
  gluNurbsProperty(theFruitNurb, GLU_SAMPLING_METHOD, GLU_DOMAIN_DISTANCE);
  gluNurbsProperty(theFruitNurb, GLU_DISPLAY_MODE, GLU_FILL);
  gluNurbsProperty(theFruitNurb, GLU_CULLING, GL_TRUE);
  gluNurbsProperty(theFruitNurb, GLU_U_STEP, 20.);
  gluNurbsProperty(theFruitNurb, GLU_V_STEP, 20.);
  glNewList(gHQFruit, GL_COMPILE);
  DrawFruit();
  glEndList(); 

  gluDeleteNurbsRenderer(theFruitNurb); 

  /* create a dot */
  glNewList(gHQDot, GL_COMPILE);
  DrawDot(10);
  glEndList();
}