void CDirectXFramework::Render() { // If the device was not created successfully, return if(!m_pD3DDevice) return; //player D3DXMATRIX identity; D3DXMatrixIdentity(&identity); m_pD3DSprite->SetTransform(&identity); m_pD3DDevice->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER | D3DCLEAR_STENCIL, D3DXCOLOR(0.0f, 0.4f, 0.8f, 1.0f), 1.0f, 0); ////////////////////////////////////////////////////////////////////////// // All draw calls between swap chain's functions, and pre-render and post- // render functions (Clear and Present, BeginScene and EndScene) ///////////////////////////////////////////////////////////////////////// m_pD3DDevice->BeginScene(); m_pD3DSprite->Begin(D3DXSPRITE_ALPHABLEND); // draw nick fury back ground drawBkgd(); // you win the game! if(enemy.KillCounter >= 3 && enemy2.KillCounter >= 3) { drawWinScreen(); } if(enemy.enemyDead == false) { m_pD3DSprite->Draw(enemy.enemySprite,&enemy.enemySheetRect,&D3DXVECTOR3(0,0,0),&enemy.enemyPosition,D3DCOLOR_ARGB(255, 255, 255, 255)); explosion.enemyExplosionIndex = 0; } if(enemy.enemyDead == true) if(enemy.KillCounter <= 3) m_pD3DSprite->Draw(explosion.enemyExplosion,&explosion.enemySheetRectExplosion,&D3DXVECTOR3(0,0,0),&enemy.enemyPosition,D3DCOLOR_ARGB(255, 255, 255, 255)); if(enemy2.enemyDead == true) if(enemy2.KillCounter <= 3) m_pD3DSprite->Draw(explosion2.enemyExplosion,&explosion2.enemySheetRectExplosion,&D3DXVECTOR3(0,0,0),&enemy2.enemyPosition,D3DCOLOR_ARGB(255, 255, 255, 255)); if(enemy2.enemyDead == false) { m_pD3DSprite->Draw(enemy2.enemySprite,&enemy2.enemySheetRect,&D3DXVECTOR3(0,0,0),&enemy2.enemyPosition,D3DCOLOR_ARGB(255, 255, 255, 255)); explosion2.enemyExplosionIndex = 0; } if(playerWon == false) { m_pD3DSprite->Draw(player.playerSprite, &player.playerSheetRect, &D3DXVECTOR3(0,0,0), &player.playerPosition, D3DCOLOR_ARGB(255, 255, 255, 255)); if(player.shootRight || player.shootDown || player.shootLeft || player.shootUp == true) { m_pD3DSprite->Draw(player.projectile.projectileSprite,&player.projectile.projectileSheetRect,&D3DXVECTOR3(0,0,0),&player.projectile.projectilePosition,D3DCOLOR_ARGB(255, 255, 255, 255)); } } m_pD3DSprite->End(); // EndScene, and Present the back buffer to the display buffer m_pD3DDevice->EndScene(); m_pD3DDevice->Present(0, 0, 0, 0); }
void PlayState::draw() const { p_rtexture_->draw(background_); for (GameObject* obj : p_objects_) if (obj->getAlive()) p_rtexture_->draw(*obj); p_rtexture_->draw(map_); p_rtexture_->draw(scoreText_); switch (gameplayState_) { case Paused: drawPauseScreen(); break; case DeathScreen: drawDeathScreen(); break; case WinScreen: drawWinScreen(); break; } }
void display(){ if(exitting) { exit(0); return; } glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glClearColor(0.0f,0.0f,0.0f,0.0f); // Black Background glPushMatrix(); gluLookAt(cam.getCamX(), cam.getCamY(), cam.getCamZ(), cam.getLookAtX(), cam.getLookAtY(), cam.getLookAtZ(), 0.0, 1.0, 0.0); place_lights(); if(!gameOver) { if(starting) { glPushMatrix(); //glTranslatef(.5,.5,.5); drawIntroScreen(); glPopMatrix(); } glPushMatrix(); scene.draw(); glPopMatrix(); glPushMatrix(); if(placingTower){ setMaterial(Exp); glNormal3f(0.0, 1.0, 0.0); glBegin(GL_POLYGON);{ glVertex3f(worldX - GRID_SIZE*2.0, 0.001, worldZ - GRID_SIZE*2.0); glVertex3f(worldX - GRID_SIZE*2.0, 0.001, worldZ + GRID_SIZE*2.0); glVertex3f(worldX + GRID_SIZE*2.0, 0.001, worldZ + GRID_SIZE*2.0); glVertex3f(worldX + GRID_SIZE*2.0, 0.001, worldZ - GRID_SIZE*2.0); }glEnd(); } if(towerSelected){ setMaterial(Exp); glNormal3f(0.0, 1.0, 0.0); glBegin(GL_POLYGON);{ glVertex3f(towerSelect->getX() - GRID_SIZE*2.0 + P1_POSX, 0.001, towerSelect->getZ() - GRID_SIZE*2.0 + P1_POSZ); glVertex3f(towerSelect->getX() - GRID_SIZE*2.0 + P1_POSX, 0.001, towerSelect->getZ() + GRID_SIZE*2.0 + P1_POSZ); glVertex3f(towerSelect->getX() + GRID_SIZE*2.0 + P1_POSX, 0.001, towerSelect->getZ() + GRID_SIZE*2.0 + P1_POSZ); glVertex3f(towerSelect->getX() + GRID_SIZE*2.0 + P1_POSX, 0.001, towerSelect->getZ() - GRID_SIZE*2.0 + P1_POSZ); }glEnd(); } p1.draw(placingTower); // GL_RENDER for normal, GL_SELECT for picking. opponent.player.draw(false); //drawProjectiles(); glPopMatrix(); vfc::extractPlanes(); glColor3f(0.8, 0.5, 0.3); float lx = tlx*2.0*GRID_SIZE - GRID_SIZE*float(GRID_WIDTH) + GRID_SIZE + (GRID_SIZE * 2); float lz = tly*2.0*GRID_SIZE - GRID_SIZE*float(GRID_HEIGHT) + GRID_SIZE + (GRID_SIZE * 2); // draw root directories glPushMatrix(); glTranslatef(0.0, 2 * GRID_SIZE, 1.0 * GRID_HEIGHT * GRID_SIZE + (GRID_SIZE * 8)); glPushMatrix(); glScalef(0.25, 0.25, 0.25); glCallList(vtd_dl::rootDL); glPopMatrix(); glTranslatef(GRID_WIDTH * GRID_SIZE * 3, 0.0, 0.0); glPushMatrix(); glScalef(0.25, 0.25, 0.25); glCallList(vtd_dl::rootDL); glPopMatrix(); glPopMatrix(); if(!starting){ glPushMatrix(); renderUI(GW, GH,&p1,&opponent.player,((CYCLE_TIME-last_cycle)/1000.0), GL_RENDER); glPopMatrix(); } drawMouseBox(clicked); } else { if(winner == COMPUTER_WIN) drawBlueScreen(); else drawWinScreen(); } glPopMatrix(); glutSwapBuffers(); }