void placeKey() { for (int x = 0; x < 4; x++) { for (int y = 0; y < 4; y++) { if (key.t[x*4+y] == 1) { if (key.r+x <=4) gameOver(); matrix[key.r+x][key.c+y] = 1; colorMatrix[key.r+x][key.c+y] = key.color; } } } checkForScore(); key.t = next.t; key.color = next.color; key.r = 0; key.c = 3; int nextType = qran_range(0,7); int *n; n = tetriminos[nextType]; next.t = n; next.color = colors[nextType]; drawMatrix(); setNextPiece(next); droppedYet = 0; }
void Ultra::play() { float volume = 0.0; FMOD_Channel_SetVolume(musicChannel, 1.0); FMOD_Channel_GetVolume(musicChannel, &volume); fout << volume << std::endl; playMusic(ultraMusic); setCurrentGamePiece(createNewPiece()); setNextPiece(createNewPiece()); enableCurrentPiece(); setLinesCompleted(0); setLevel(1); setFallIterationDelay(computeFallIterationDelay()); setScore(0); setState(RUNNING); sf::Clock fallingClock; fallingClock.Reset(); float currentTime = 0, precTime = 0; while(renderArea->IsOpened()) { if(getState() == PAUSED) { setBackground(PAUSE_IMG); timer.pause(); if(handlePauseInput() == RETURN_MAIN) return; } else { timer.start(); currentTime = fallingClock.GetElapsedTime(); handleTimerInput(currentTime, precTime); handleUserInput(); if(Game::gameOver() || timeElapsed()) { if(handleGameOverInput() == RETURN_MAIN) return; } else render(); } renderArea->Display(); } }
void Sprint::play() { playMusic(sprintMusic); setCurrentGamePiece(createNewPiece()); setNextPiece(createNewPiece()); enableCurrentPiece(); setLinesCompleted(0); setLevel(1); setFallIterationDelay(computeFallIterationDelay()); setScore(0); setState(RUNNING); sf::Clock fallingClock; fallingClock.Reset(); float currentTime = 0, precTime = 0; while(renderArea->IsOpened()) { setNbLinesToDelete(NB_LINES_TO_DELETE - getLinesCompleted()); if(getState() == PAUSED) { timer.pause(); if(handlePauseInput() == RETURN_MAIN) return; } else { timer.start(); currentTime = fallingClock.GetElapsedTime(); handleTimerInput(currentTime, precTime); handleUserInput(); if(Game::gameOver() || finished()) { timer.pause(); if(handleGameOverInput() == RETURN_MAIN) return; } else render(); } renderArea->Display(); } }
void Game::play() { playMusic(marathonMusic); setCurrentGamePiece(createNewPiece()); setNextPiece(createNewPiece()); enableCurrentPiece(); setLinesCompleted(0); setLevel(1); setFallIterationDelay(computeFallIterationDelay()); setScore(0); setState(RUNNING); sf::Clock fallingClock; fallingClock.Reset(); float currentTime = 0, precTime = 0; while(renderArea->IsOpened()) { if(getState() == PAUSED) { if(handlePauseInput() == RETURN_MAIN) return; } else { currentTime = fallingClock.GetElapsedTime(); handleTimerInput(currentTime, precTime); handleUserInput(); if(!gameOver()) render(BG_IMG); else { if(handleGameOverInput() == RETURN_MAIN) return; } } renderArea->Display(); } }
void Game::handlePieceLandAction() { if(!gameOver()) { gameArea.moveCurrentPieceDown(); setCurrentGamePiece(getNextPiece()); enableCurrentPiece(); setNextPiece(createNewPiece()); int n = gameArea.deletePossibleLines(); if(n != 0) playSound(deletion); updateGameInfos(n); } }
void Game::restart() { continueMusic(); firstTimeHolding = true; shuffleRandomBag(); currentPieceIndex = 0; gameArea.clear(); setLinesCompleted(0); setLevel(1); setScore(0); setFallIterationDelay(computeFallIterationDelay()); setState(RUNNING); setCurrentGamePiece(createNewPiece()); setNextPiece(createNewPiece()); enableCurrentPiece(); }
/* =============================== * BOARD SETUP * =============================== */ void setupBoard() { REG_DISPCTL = MODE3 | BG2_ENABLE; int tetType = qran_range(0,7); int nextType = qran_range(0,7); int *t; int *n; t = tetriminos[tetType]; n = tetriminos[nextType]; // Generate random tetrimino to start falling and // generate random tetrimino to show as next tetrmino key.t = t; next.t = n; next.color = colors[nextType]; key.color = colors[tetType]; key.r = 0; key.c = 3; keyLastR = 0; keyLastC = 3; for (int i = 0; i < 16; i++) { keyLastT[i] = key.t[i]; } /* Draw back screen */ dma_mem[3].cnt = 0; u16 *black = BLACK; dma_mem[3].src = black; dma_mem[3].dst = videoBuffer; dma_mem[3].cnt = 38400 | DMA_ON | DMA_SOURCE_FIXED; /* Draw board and pieces */ drawMatrixBorders(); setNextPiece(next); }