INT CGpApp::Render() { if(8>m_nSkip) return 0; m_pDev->SetRenderState(LC_RS_CLEAR_COLOR, 0xFF006699); m_pDev->BeginScene(); // Prepare Rendering... m_pDev->Clear(LC_CLEAR_COLOR_BUFFER | LC_CLEAR_DEPTH_BUFFER); // Clear Backbuffer m_pSpt->Begin(); // Sprite Begin // Draw Game Play DrawBackground(); DrawMissile(); DrawShield(); DrawPlayer(); DrawEnergyBar(); DrawPlayerLife(); m_pFontScore->DrawTxt(); if(m_bShowSt) m_pFont->DrawTxt(); // LCXRECT rc; // LCXVECTOR2 vcPos; // // vcPos = m_pFont->GetPosition(); // m_pFont->GetAttrib(LC_FONT_RECT_SCALEUP, &rc); // vcPos.x += rc.w; // // m_pFont->GetRect(&rc, 10); // vcPos.x = rc.x; // vcPos.y = rc.y; // m_pFont->DrawTxt(NULL, 0, -1, &vcPos); m_pSpt->End(); // Sprite End m_pDev->EndScene(); // Post Rendering... return LC_OK; }
/** ** Draw all missiles on map. */ global void DrawMissiles(void) { int missile; int x; int y; for( missile=0; missile<NumMissiles; ++missile ) { if( Missiles[missile].Type==MissileFree ) { continue; } // FIXME: is this correct??? x=Missiles[missile].X-MapX*TileSizeX+MAP_X; y=Missiles[missile].Y-MapY*TileSizeY+MAP_Y; if( x<MAP_X || x>MAP_X+TileSizeX*MapWidth || y<MAP_Y || y>MAP_Y+TileSizeY*MapHeight ) { continue; } DrawMissile(Missiles[missile].Type,Missiles[missile].Frame,x,y); } }