void DrawStars() { for (int iStarRow = 0; iStarRow < 9; ++iStarRow) { float fY = 6.0/13.0 + (iStarRow + 1)*((7.0/13.0)/10); // Alternate between rows of five or six stars if (iStarRow % 2 == 0) { for (int iStarCol = 0; iStarCol < 6; ++iStarCol) { DrawStar(iStarCol*((0.76/1.9)/6.0) + (0.76/1.9)/12.0, fY); } } else { for (int iStarCol = 0; iStarCol < 5; ++iStarCol) { DrawStar((iStarCol + 1)*((0.76/1.9)/6.0), fY); } } } }
void Render(HDC * hDC) //increment and display { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glRotated(UpdateTrigger(_spin_triggers[0]), 1.0, 0.0, 0.0); glRotated(UpdateTrigger(_spin_triggers[1]), 0.0, 1.0, 0.0); glRotated(UpdateTrigger(_spin_triggers[2]), 0.0, 0.0, 1.0); glEnable(GL_TEXTURE_2D); int i; _lp_vertex _curr = 0; if (_display_nebulae) { _curr = _nebulae; for (i = 0; i < _num_neb; i++) { DrawNebula(_curr); CheckNebula(_curr, i); _curr++; } } _curr = _stars; for (i = 0; i < _num_stars; i++) { DrawStar(_curr); CheckStar(_curr, i); _curr++; } /* _curr = _stars; for (i = 0; i < _num_stars; i++) { DrawPlanet(_curr); _curr++; } */ if (_display_rings) { _curr = _rings; SortRings(0); for (i = 0; i < _num_rings; i++) { //DrawRing(_curr); DrawRing(_sringidx[i]); CheckRing(_curr, i, 0); _curr++; } } glDisable(GL_TEXTURE_2D); SwapBuffers(*hDC); glPopMatrix(); }
void sstSequence::Draw( vsRenderQueue *queue ) { vsDisplayList *list = queue->GetGenericList(); float musicTime = m_mode->GetMusicTime(); // vsColor baseColor = vsColor::Blue; // vsColor c = vsColor::Blue; for ( int i = 0; i < m_beatCount; i++ ) m_segment[i].m_color = vsColor::Blue * GetBrightnessForTimeDelta( musicTime - m_segment[i].m_time ); float starBrightness = 0.5f; float starFadeInTime = 2.0f; float starFadeOutTime = 2.0f; if ( musicTime < m_start + starFadeInTime ) { starBrightness = vsInterpolate( (musicTime-m_start) / starFadeInTime, 0.f, starBrightness ); } else if ( musicTime < m_end - starFadeOutTime ) { starBrightness = 0.5f; } else { float startFadingOutTime = m_end - starFadeOutTime; starBrightness = vsInterpolate( (musicTime-startFadingOutTime) / starFadeOutTime, starBrightness, 0.f ); } list->SetColor( vsColor(1.0f, 1.0f, 1.0f, starBrightness) ); for ( int i = 0; i < m_beatCount; i++ ) { DrawStar( list, i ); } for ( int i = 0; i < m_beatCount; i++ ) { DrawTarget( list, i ); if ( i < m_beatCount-1 ) { DrawConnectingLine( list, i, i+1 ); } } }
main() { int size; int i=0; int key; int station; InstallGraph(); setbkcolor(BLACK); cleardevice(); setcolor(BLUE); outtextxy(80,100,"Ready!...Any key to SET OFF!!!"); DrawGun(); getch(); cleardevice(); DrawGun(); DrawPlan(); DrawStar(); setcolor(LIGHTRED); do { putimage(x0-width2,y0-height-3*width1-i,buf,XOR_PUT); i+=2; putimage(x0-width2,y0-height-3*width1-i,buf,XOR_PUT); key=getch(); if(y0-height-3*width1-i==0) outtextxy(60,100,"Successfullly!!!Press ESC to quit"); if(key==ESC) { if(y0-height-3*width1-i>0) { cleardevice(); outtextxy(100,100,"Failure.What did you do?"); outtextxy(130,130,"Press any key to quit."); getch(); } } } while(key!=ESC); free(buf); closegraph(); return 0; }
void Ending(void) { char stuff[][2][32] = { {"XSoldier staff", ""}, {"Producer", "Y.Hashimoto"}, {"Program", "R.Masuda"}, {"", "Y.Hashimoto"}, {"Character Algorithm", "K.Inomata"}, {"", "H.Yokobori"}, {"", "M.Nakayama"}, {"", "Y.Hashimoto"}, {"Character Design", "H.Hayakawa"}, {"", "Y.Hashimoto"}, {"1.x Series Developer", "Oohara Yuuma"}, {"Special Thanks", "N.Oohashi"}, {"", "T.Yamada"}, {"", "T.Igari"}, {"", "RAKI all members"}, {"", ".... and YOU."}, }; char msg[][30] = { "Try Next Stage!!", "You are a great soldier!!!", "crazy ........" }; /* number of staffs */ int stfnumber = 16; int count = 0; int time = (stfnumber + 6) * 100; int len; int i; while (1) { if (waittime && (signal_delivered==0)) pause(); signal_delivered = 0; if (count < time) { count++; } if (event_handle_ending() == 0) return; clear_window(); DrawStar(StarPtn1); DrawStar(StarPtn2); for (i=0; i<stfnumber; i++) { if (i == 0) { draw_string(210, FieldH - count + 100 * i, stuff[i][0], strlen(stuff[i][0])); draw_string(450, FieldH - count + 100 * i, stuff[i][1], strlen(stuff[i][1])); } else { draw_string(100, FieldH - count + 100 * i, stuff[i][0], strlen(stuff[i][0])); draw_string(300, FieldH - count + 100 * i + 30, stuff[i][1], strlen(stuff[i][1])); } } if (count > time-30) { len = count - (time-30); if (manage->Loop < 3) { if (len >= strlen(msg[manage->Loop-1])) { draw_string(200, 440, "Press space key", strlen("Press space key")); len = strlen(msg[manage->Loop-1]); } draw_string(200, 400, msg[manage->Loop-1], len); } else { if (len >= strlen(msg[2])) { draw_string(200, 440, "Press space key", strlen("Press space key")); len = strlen(msg[2]); } } } redraw_window(); } }
VOID DrawBarriers(int i) { DOUBLE trackTop = i * 0.25 + (i % 2) * 0.01; DOUBLE trackBottom = (i + 1) * 0.25 + ((i + 1) % 2) * 0.01; HGDIOBJ backBrush; SelectObject(hdcBuffer, GetStockObject(GRAY_BRUSH)); for (UINT j = 0; j < global.barriers[i].size(); j++) { double lastBarrierX = -1.; double lastBarrierHeight = 0.; barrierX = stickmanX + // Position of Stickman (global.barriers[i][j].msecs - gameTimePass) / global.currSong().msPerBeat / beatPerScreen; if (barrierX < -0.2 && j < global.barriers[i].size() - 1) continue; if (j >= 1) { lastBarrierX = stickmanX + // Position of Stickman (global.barriers[i][j - 1].msecs - gameTimePass) / global.currSong().msPerBeat / beatPerScreen; lastBarrierHeight = global.barriers[i][j - 1].height; } if (lastBarrierX >= 1.) break; if (i & 1) backBrush = GetStockObject(BLACK_BRUSH); else backBrush = GetStockObject(WHITE_BRUSH); // Draw the Floor before this Barrier SelectObject(hdcBuffer, GetStockObject(GRAY_BRUSH)); Rectangle(hdcBuffer, ToWindowX(lastBarrierX + 0.4 / beatPerScreen), ToWindowY(trackBottom - 0.05 * (lastBarrierHeight + 1.)) - 1, ToWindowX(barrierX), ToWindowY(trackBottom) + 1); // Draw Judge Line if (!settings.hideJudgeLine) { SelectObject(hdcBuffer, GetStockObject(GRAY_BRUSH)); Rectangle(hdcBuffer, ToWindowX(barrierX) - 2, ToWindowY(trackTop) - 1, ToWindowX(barrierX) + 2, ToWindowY(trackBottom) + 1); } // Clear Barrier Area SelectObject(hdcBuffer, backBrush); Rectangle(hdcBuffer, ToWindowX(barrierX) + global.heroWidth / 2, ToWindowY(trackTop), ToWindowX(barrierX + 0.4 / beatPerScreen) - global.heroWidth / 2, ToWindowY(trackBottom) + 1); // Draw Barrier SelectObject(hdcBuffer, GetStockObject(GRAY_BRUSH)); switch (global.barriers[i][j].type) { case 0: DrawSpikes(i, j); break; case 1: DrawCliff(i, j); break; case 2: DrawBonus(i, j); break; case 3: DrawStar(i, j); break; case 4: DrawNoise(i, j); break; case INT_MAX: DrawNoBarrier(i, j); break; default: DrawSpikes(i, j); break; } SelectObject(hdcBuffer, GetStockObject(GRAY_BRUSH)); if (j == global.barriers[i].size() - 1) { Rectangle(hdcBuffer, ToWindowX(barrierX + 0.4 / beatPerScreen), ToWindowY(trackBottom - 0.05 * (global.barriers[i][j].height + 1.)) - 1, ToWindowX(1) + 1, ToWindowY(trackBottom) + 1); } } }
void DrawMenuPieces(struct MainMenu* pMenu, Gc* pgc) { const int nDimensionSize = 6; int nPieceWidth = SCREEN_WIDTH/nDimensionSize; int nPieceHeight = (SCREEN_HEIGHT-60)/nDimensionSize; int nMinPieceDim = nPieceWidth > nPieceHeight ? nPieceHeight : nPieceWidth; int nWidthNeeded = nDimensionSize*nMinPieceDim; int nHeightNeeded = nDimensionSize*nMinPieceDim; int x = (SCREEN_WIDTH - nWidthNeeded)/2; int y = (SCREEN_HEIGHT - nHeightNeeded)/2; for(int nX=0; nX<nDimensionSize; nX++) { for(int nY=0; nY<nDimensionSize; nY++) { int nPieceX = x + nX*nMinPieceDim; int nPieceY = y + nY*nMinPieceDim; int nLevelNum = nY*nDimensionSize + nX + 1/*0-based to 1-based*/; int bCurrentRow = 0; int nColorIndex = 0; if( pMenu->m_eChoice == Play ) { if( pMenu->m_nLevelNum >= 1 && pMenu->m_nLevelNum <= 6 && nLevelNum >= 1 && nLevelNum <= 6 ) { nColorIndex = 0; bCurrentRow = 1; } else if( pMenu->m_nLevelNum >= 7 && pMenu->m_nLevelNum <= 12 && nLevelNum >= 7 && nLevelNum <= 12 ) { nColorIndex = 1; bCurrentRow = 1; } else if( pMenu->m_nLevelNum >= 13 && pMenu->m_nLevelNum <= 18 && nLevelNum >= 13 && nLevelNum <= 18 ) { nColorIndex = 2; bCurrentRow = 1; } else if( pMenu->m_nLevelNum >= 19 && pMenu->m_nLevelNum <= 24 && nLevelNum >= 19 && nLevelNum <= 24 ) { nColorIndex = 3; bCurrentRow = 1; } else if( pMenu->m_nLevelNum >= 25 && pMenu->m_nLevelNum <= 30 && nLevelNum >= 25 && nLevelNum <= 30 ) { nColorIndex = 4; bCurrentRow = 1; } else if( pMenu->m_nLevelNum >= 31 && nLevelNum >= 31 ) { nColorIndex = 5; bCurrentRow = 1; } } if( bCurrentRow == 1 ) { LevelColors clr = g_Colors[nColorIndex]; gui_gc_setColorRGB(*pgc, clr.r, clr.g, clr.b); //gui_gc_setColorRGB(*pgc, 0, 220, 0); } else { gui_gc_setColorRGB(*pgc, 0x59, 0x59, 0x59); } gui_gc_fillRect(*pgc, nPieceX + 2, nPieceY + 2, nMinPieceDim-3, nMinPieceDim-3); if( pMenu->m_eChoice == Play && pMenu->m_nLevelNum == nLevelNum ) { gui_gc_setColorRGB(*pgc, 255, 0, 0); gui_gc_drawRect(*pgc, nPieceX, nPieceY, nMinPieceDim, nMinPieceDim); } gui_gc_setColorRGB(*pgc, 255, 255, 255); char buf[8]; sprintf(buf, "%d", nLevelNum); char buffer[16]; ascii2utf16(buffer, buf, 16); int nHeightSpaceDesired = gui_gc_getStringSmallHeight(*pgc, gui_gc_getFont(*pgc), buf, 0, 1); int nWidthSpaceDesired = gui_gc_getStringWidth(*pgc, gui_gc_getFont(*pgc), buf, 0, 1); int nXOffset = nMinPieceDim/2 - nWidthSpaceDesired/2; int nYOffset = 2; int nPosX = nPieceX + nXOffset; int nPosY = nPieceY + nYOffset; gui_gc_drawString(*pgc, buffer, nPosX, nPosY, GC_SM_TOP); int nStars = 0; GetBeatLevel(pMenu->m_pConfig, nLevelNum-1, &nStars); int a = nMinPieceDim/3; for(int nStarsToDraw=0; nStarsToDraw<nStars; nStarsToDraw++) { DrawStar(pgc, nPieceX+nStarsToDraw*a+a/2+1, nPosY+nMinPieceDim-a, a); } } } }