void Gamedesk::kDOPTree::DrawLevel( kDOPTree::kDOPNode* pNode, UInt32 pLevel ) { mDepth++; if( mDepth == pLevel || pNode->mTriangleIndices.size() != 0 ) { Renderer* renderer = GraphicSubsystem::Instance()->GetRenderer(); GD_ASSERT(renderer); // Render the bounding box. renderer->SetRenderState( Renderer::Lighting, false ); renderer->SetPolygonMode( Renderer::BothFace, Renderer::FillWireframe ); renderer->SetCulling( Renderer::NoCulling ); renderer->SetColor(Color4f(1.0f, 1.0f, 1.0f, 1.0f)); renderer->DrawBox( pNode->mBoundingBox.Min(), pNode->mBoundingBox.Max() ); renderer->SetRenderState( Renderer::Lighting, true ); renderer->SetPolygonMode( Renderer::BothFace, Renderer::FillSolid ); renderer->SetCulling( Renderer::CullBackFace ); } else { kDOPNode* leftNode = mNodes[pNode->mChildsIndex + 0]; kDOPNode* rightNode = mNodes[pNode->mChildsIndex + 1]; DrawLevel( leftNode, pLevel ); DrawLevel( rightNode, pLevel ); } mDepth--; }
void DrawPlayScreen (void) { int i,j,p,m; unsigned temp; VW_FadeOut (); temp = bufferofs; CA_CacheGrChunk (STATUSBARPIC); for (i=0;i<3;i++) { bufferofs = screenloc[i]; DrawPlayBorder (); VWB_DrawPic (0,200-STATUSLINES,STATUSBARPIC); } bufferofs = temp; UNCACHEGRCHUNK (STATUSBARPIC); DrawFace (); DrawHealth (); DrawLives (); DrawLevel (); DrawAmmo (); DrawKeys (); DrawWeapon (); DrawScore (); }
void kDOPTree::DrawLevel( UInt32 pLevel ) { #ifdef GD_DEBUG mDepth = 0; if( mNodes.size() > 0 ) DrawLevel( mNodes[0], pLevel ); #endif }
void Display() { glClearColor(0.19, 0.43, 0.70, 1.0); glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); InterfaceArduino(); DrawLevel(); // Affiche le niveau glFlush(); //A remplacer par glutSwapBuffers. // glutSwapBuffers(); }
//--------------------------------------------------------------------------- void __fastcall TRxViewDlg::UpdateStatus(void) { if( !m_pRxSet ) return; DrawMode(); DrawSN(); DrawFREQ(); if( m_pBitmapLevel ){ DrawLevel(); StatusBar->Canvas->Draw(m_rcBar[sbLEVEL].Left, m_rcBar[sbLEVEL].Top, m_pBitmapLevel); } if( m_pBitmapFFT ){ DrawWater(FALSE); StatusBar->Canvas->Draw(m_rcBar[sbWATER].Left, m_rcBar[sbWATER].Top, m_pBitmapFFT); DrawWaterCursor(); } }
/* =================== = = GameLoop = =================== This function controls the flow between states of the game. It loads previous saved games, setup levels states, controls the flow between levels, including when player loses or when completes the game, and checks if the result of the current game is a highscore. The "real" game loop (player actions in like moving, killing, etc.) is in the PlayLoop function. */ void GameLoop (void) { int i,xl,yl,xh,yh; char num[20]; boolean died; #ifdef MYPROFILE /* clock_t type variables may register times, start and and times could be used to measure the speed of the graphics system. Speed is measured in fps- frames per second. */ clock_t start,end; #endif restartgame: ClearMemory (); SETFONTCOLOR(0,15); DrawPlayScreen (); died = false; restart: do { if (!loadedgame) gamestate.score = gamestate.oldscore; DrawScore(); startgame = false; if (loadedgame) loadedgame = false; else SetupGameLevel (); #ifdef SPEAR if (gamestate.mapon == 20) // give them the key allways { gamestate.keys |= 1; DrawKeys (); } #endif ingame = true; StartMusic (); PM_CheckMainMem (); if (!died) PreloadGraphics (); else died = false; fizzlein = true; DrawLevel (); startplayloop: PlayLoop (); #ifdef SPEAR if (spearflag) { SD_StopSound(); SD_PlaySound(GETSPEARSND); if (DigiMode != sds_Off) { long lasttimecount = TimeCount; while(TimeCount < lasttimecount+150) //while(DigiPlaying!=false) SD_Poll(); } else SD_WaitSoundDone(); ClearMemory (); gamestate.oldscore = gamestate.score; gamestate.mapon = 20; SetupGameLevel (); StartMusic (); PM_CheckMainMem (); player->x = spearx; player->y = speary; player->angle = spearangle; spearflag = false; Thrust (0,0); goto startplayloop; } #endif StopMusic (); ingame = false; if (demorecord && playstate != ex_warped) FinishDemoRecord (); if (startgame || loadedgame) goto restartgame; switch (playstate) { case ex_completed: case ex_secretlevel: gamestate.keys = 0; DrawKeys (); VW_FadeOut (); ClearMemory (); LevelCompleted (); // do the intermission #ifdef SPEARDEMO if (gamestate.mapon == 1) { died = true; // don't "get psyched!" VW_FadeOut (); ClearMemory (); CheckHighScore (gamestate.score,gamestate.mapon+1); #pragma warn -sus #ifndef JAPAN _fstrcpy(MainMenu[viewscores].string,STR_VS); #endif MainMenu[viewscores].routine = CP_ViewScores; #pragma warn +sus return; } #endif #ifdef JAPDEMO if (gamestate.mapon == 3) { died = true; // don't "get psyched!" VW_FadeOut (); ClearMemory (); CheckHighScore (gamestate.score,gamestate.mapon+1); #pragma warn -sus #ifndef JAPAN _fstrcpy(MainMenu[viewscores].string,STR_VS); #endif MainMenu[viewscores].routine = CP_ViewScores; #pragma warn +sus return; } #endif gamestate.oldscore = gamestate.score; #ifndef SPEAR // // COMING BACK FROM SECRET LEVEL // if (gamestate.mapon == 9) gamestate.mapon = ElevatorBackTo[gamestate.episode]; // back from secret else // // GOING TO SECRET LEVEL // if (playstate == ex_secretlevel) gamestate.mapon = 9; #else #define FROMSECRET1 3 #define FROMSECRET2 11 // // GOING TO SECRET LEVEL // if (playstate == ex_secretlevel) switch(gamestate.mapon) { case FROMSECRET1: gamestate.mapon = 18; break; case FROMSECRET2: gamestate.mapon = 19; break; } else // // COMING BACK FROM SECRET LEVEL // if (gamestate.mapon == 18 || gamestate.mapon == 19) switch(gamestate.mapon) { case 18: gamestate.mapon = FROMSECRET1+1; break; case 19: gamestate.mapon = FROMSECRET2+1; break; } #endif else // // GOING TO NEXT LEVEL // gamestate.mapon++; break; case ex_died: Died (); died = true; // don't "get psyched!" if (gamestate.lives > -1) break; // more lives left VW_FadeOut (); ClearMemory (); CheckHighScore (gamestate.score,gamestate.mapon+1); #pragma warn -sus #ifndef JAPAN _fstrcpy(MainMenu[viewscores].string,STR_VS); #endif MainMenu[viewscores].routine = CP_ViewScores; #pragma warn +sus return; case ex_victorious: #ifndef SPEAR VW_FadeOut (); #else VL_FadeOut (0,255,0,17,17,300); #endif ClearMemory (); Victory (); ClearMemory (); CheckHighScore (gamestate.score,gamestate.mapon+1); #pragma warn -sus #ifndef JAPAN _fstrcpy(MainMenu[viewscores].string,STR_VS); #endif MainMenu[viewscores].routine = CP_ViewScores; #pragma warn +sus return; default: ClearMemory (); break; } } while (1); }
int DvigChel_1 (int x, int y) { int time_end = clock(); Point_t loc = {x, y}; Score_t score = {0}; Chel_t chel = {&loc, SPEED}; Reaction_t react = {&loc, &score}; PointEN_t locEN = {291, 195, 5, 5}; PointEN_t locEN2 = {500, 500, 1, 1}; PointEN_t locEN3 = {400, 550, 4, 4}; int time = 0; int counter = -2; int counteren = 0; DrawLevel(); HDC Cover = txLoadImage ("Resourses\\Images\\Cover.bmp"); txPlaySound ("Resourses\\Music\\track_1.wav", SND_ASYNC); DrawArbuz (386, 59); DrawArbuz (449, 269); DrawArbuz (95, 402); DrawArbuz (345, 449); DrawArbuz (723, 491); DrawArbuz (703, 294); while (1) { txBegin(); DrawTimeTable(); Interface (&score, &time, &time_end); DrawWalls_1(); Bonus (&score); txSetColor (TX_YELLOW); txSetFillColor (TX_YELLOW); txRectangle (locEN.x - 13, locEN.y - 13, locEN.x + 13, locEN.y + 13); MoveEnemy (&locEN); counteren++; if (counteren % 12 < 5) DrawEnemy_1 (&locEN); else if (counteren % 12 < 9) DrawEnemy_2 (&locEN); else DrawEnemy_3 (&locEN); if ((loc.x < locEN.x + 14) && (loc.x > locEN.x - 12) && (loc.y < locEN.y + 13) && (loc.y > locEN.y - 12)) return 0; txSetColor (TX_YELLOW); txSetFillColor (TX_YELLOW); txRectangle (locEN2.x - 13, locEN2.y - 13, locEN2.x + 13, locEN2.y + 13); MoveEnemy (&locEN2); counteren++; if (counteren % 12 < 5) DrawEnemy_1 (&locEN2); else if (counteren % 12 < 9) DrawEnemy_2 (&locEN2); else DrawEnemy_3 (&locEN2); if ((loc.x < locEN2.x + 14) && (loc.x > locEN2.x - 12) && (loc.y < locEN2.y + 13) && (loc.y > locEN2.y - 12)) return 0; txSetColor (TX_YELLOW); txSetFillColor (TX_YELLOW); txRectangle (locEN3.x - 13, locEN3.y - 13, locEN3.x + 13, locEN3.y + 13); MoveEnemy (&locEN3); counteren++; if (counteren % 12 < 5) DrawEnemy_1 (&locEN3); else if (counteren % 12 < 9) DrawEnemy_2 (&locEN3); else DrawEnemy_3 (&locEN3); if ((loc.x < locEN3.x + 14) && (loc.x > locEN3.x - 12) && (loc.y < locEN3.y + 13) && (loc.y > locEN3.y - 12)) return 0; txTransparentBlt (txDC(), loc.x - 10, loc.y - 10, 21, 21, Cover, 0, 0, TX_WHITE); if (Controls (&react) == 1) {DrawChel_1 (&loc); return 0;}; if (ReactionEnd1 (&loc) == 1) { if (score.points > 400) return score.points + 20 - time; }; if (time > 40) return 0; counter++; if (counter > 2) counter = -2; if (counter < 0) DrawChel_1 (&loc); else DrawChel_2 (&loc); if (GetAsyncKeyState ('M')) sleep--; if (sleep < 0) sleep = 0; if (GetAsyncKeyState ('P')) sleep++; if (GetAsyncKeyState (VK_ESCAPE)) MenuInGame(&loc, 1); Sleep (sleep); } time_end = time; txDeleteDC (Cover); }
void TerrainPatch::Draw() { DrawLevel(m_LOD); }
void DrawScrolly(int t) { int xp; int yp; int i, j; float a_dir; float v_radius; int all_blue = 0; SDL_Rect draw_from, draw_to; int x, y, r; float bright; if (t < 795) { xp = 8192 - 320 - 3180 + (t * 4); yp = t * 20; } else { xp = 8192 - 320 + ( (t-795) * 10); yp = 795 * 20 - (t-795)*10; } // Palette if ((rand() % 10)==9) { all_blue = 1; } for (i = 0; i < 256; i++) { bright = sin((float)t / 10.0) * 0.2 + 0.4; ending_pal[i].r = (i * bright + (256*(1.0-bright))) * ((float)(all_blue == 0) * 0.5 + 0.5); ending_pal[i].g = (i * bright + (256*(1.0-bright))) * ((float)(all_blue == 0) * 0.5 + 0.5); ending_pal[i].b = i * bright + (256*(1.0-bright)); } DrawLevel(xp, yp, 0, 0); v_radius = sin((float)t / 10.0)*20 + 100; for (i = 0; i < 5; i++) { x = rand()%640; y = rand()%480; r = rand()%500+100; DrawCircleEx(x, y, r+2, r-4, 128); DrawCircleEx(x, y, r, r-2, 255); } for (i = 0; i < 4; i++) { draw_from.x = (8 + i) * 32; draw_from.y = 0; draw_from.w = 32; draw_from.h = 32; a_dir = ((float)t / 10.0) + (M_PI*(float)i/2); for (j = 10; j >= 0; j--) { DrawCircleEx(320+cos(a_dir)*v_radius, 240+sin(a_dir)*v_radius, 22 + j * 2, 0, abs(j-3) * 15); } DrawCircleEx(320+cos(a_dir)*v_radius, 240+sin(a_dir)*v_radius, 20, 0, 0); draw_to.x = 320 + cos(a_dir) * v_radius - 16; draw_to.y = 240 + sin(a_dir) * v_radius - 16; SDL_BlitSurface(artifact_spr, &draw_from, screen, &draw_to); } UpdatePalette(); VideoUpdate(); }
void DrawStream(int t) { int i; int scr_x = 32; int scr_y = 0; int strm_scrl; SDL_Rect draw_from, draw_to; for (i = 0; i < 256; i++) { ending_pal[i].r = i; ending_pal[i].g = (i * 7 / 8) + 16 + sin( (float)t / 8 )*16; ending_pal[i].b = (i * 3 / 4) + 32 + sin( (float)t / 8 )*32; } if (t >= 300) { scr_x = 32 + rand()%32 - rand()%32; scr_y = rand()%8; } if (t < 10) { scr_y = (20 - t * 2); } DrawLevel(scr_x, scr_y, 0, 0); DrawPlayer(344 - scr_x, 228 - scr_y, 0, 0); for (i = 0; i < 7; i++) { strm_scrl = (t * 20) % 128; draw_to.x = 0 - strm_scrl - scr_x + (128*i); draw_to.y = 19 - scr_y; if (i >= 300) { draw_to.y += rand()%4; draw_to.y -= rand()%4; } SDL_BlitSurface(streamspr, NULL, screen, &draw_to); } // glitter for (i = 0; i < 20; i++) { draw_from.x = (rand()%3)*32; draw_from.y = 0; draw_from.w = 32; draw_from.h = 32; draw_to.x = rand()%(640+32)-32; draw_to.y = (rand()%(124)) + 3; SDL_BlitSurface(glitter, &draw_from, screen, &draw_to); } if (t > 250) { if (t < 300) { if (t == 251) { SND_CircuitRelease(1000); } DrawCircle(320+32 - scr_x, 240 - scr_y, (t - 254) * 10, 255); DrawCircle(320+32 - scr_x, 240 - scr_y, (t - 252) * 10, 225); DrawCircle(320+32 - scr_x, 240 - scr_y, (t - 250) * 10, 195); } } UpdatePalette(); VideoUpdate(); }