static void draw() { switch ( status ) { case TITLE: drawBackground(); drawBoss(); drawBulletsWake(); drawBullets(); startDrawBoards(); drawSideBoards(); drawTitle(); endDrawBoards(); break; case IN_GAME: case STAGE_CLEAR: drawBackground(); drawBoss(); drawLasers(); drawShots(); drawBulletsWake(); drawFrags(); drawShip(); drawBullets(); startDrawBoards(); drawSideBoards(); drawBossState(); endDrawBoards(); break; case GAMEOVER: drawBackground(); drawBoss(); drawBulletsWake(); drawFrags(); drawBullets(); startDrawBoards(); drawSideBoards(); drawGameover(); endDrawBoards(); break; case PAUSE: drawBackground(); drawBoss(); drawLasers(); drawShots(); drawBulletsWake(); drawFrags(); drawShip(); drawBullets(); startDrawBoards(); drawSideBoards(); drawBossState(); drawPause(); endDrawBoards(); break; } }
void redraw(unsigned int* framePointer) { drawAliens(); drawHUD(); drawBullets(0x00FF0000); draw_bunker(0x0000FF00); draw_tank(0x0000FF00); drawAliens(); drawHUD(); drawBullets(0x00FF0000); draw_bunker(0x0000FF00); draw_tank(0x0000FF00); }
void updateGUI(Game *game, Level *level){ int i = 0; /* drawBackground(&(level->stars)); drawGameInfo(game, level); if(!level->playerDamaged) { drawShip(level->player.currPos.x, level->player.currPos.y); } else { level->playerDamaged = FALSE; } drawEnemies(level); drawBullets(level); memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer */ if (level->playerDamaged) { for (i = 0; i < 2; i++) { drawBackground(&(level->stars)); drawGameInfo(game, level); //drawShip(level->player.currPos.x, level->player.currPos.y); drawEnemies(level); drawBullets(level); memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer mdelay(50); drawBackground(&(level->stars)); drawGameInfo(game, level); drawShip(level->player.currPos.x, level->player.currPos.y, level->player.type); drawEnemies(level); drawBullets(level); memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer } level->playerDamaged = FALSE; } else { drawBackground(&(level->stars)); drawGameInfo(game, level); drawShip(level->player.currPos.x, level->player.currPos.y, level->player.type); drawEnemies(level); drawBullets(level); memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer i++; } }
void display(void) { glClear(GL_COLOR_BUFFER_BIT); drawShip(angle); drawRocks(); drawBullets(); glutSwapBuffers(); }
void Ship::render(int w, int h) { glUseProgram(gProgram); speed += acceleration; if (speed > MAX_SPEED) speed = MAX_SPEED; x += speed * cos(dirAngle); y += speed * sin(dirAngle); #if 0 LOGI("SHIP speed=%f", speed); LOGI("SHIP acceleration=%f", acceleration); LOGI("SHIP x=%f", x); LOGI("SHIP y=%f", y); LOGI("SHIP rotangle = %f", rotAngle); #endif const GLfloat shipVertices[] = { (x + kx * powf(2, 0.5) * cos(rotAngle)), (y + ky * powf(2, 0.5) * sin(rotAngle)), (x + kx * cos(rotAngle - 3 * M_PI / 4)), (y + ky * sin(rotAngle - 3 * M_PI / 4)), (x + kx * cos(rotAngle + 3 * M_PI / 4)), (y + ky * sin(rotAngle + 3 * M_PI / 4)) }; speed -= (speed >= SPEED_DECREASE ? SPEED_DECREASE : speed); if (x > 3.0f / 2.0f * (float) h / w + kx) x -= 3.0f * (float) h / w + 2 * kx; if (x < -3.0f / 2.0f * (float) h / w - kx) x += 3.0f * (float) h / w + 2 * kx; if (y > 1.0f + ky) y -= 2.0f + 2 * ky; if (y < -1.0f - ky) y += 2.0f + 2 * ky; glVertexAttribPointer(gvPositionHandle, 2, GL_FLOAT, GL_FALSE, 0, shipVertices); glEnableVertexAttribArray(gvPositionHandle); glDrawArrays(GL_TRIANGLES, 0, 3); bulletTimer++; bulletTimer %= BULLET_TIMER; if (!bulletTimer) { Bullet b; b.length = (float) h / w / 10; b.angle = rotAngle; b.x1 = x + kx * powf(2, 0.5) * cos(rotAngle); b.y1 = y + ky * powf(2, 0.5) * sin(rotAngle); b.x2 = b.x1 + b.length * (float) h / w * cos(b.angle); b.y2 = b.y1 + b.length * sin(b.angle); bullets.push_back(b); } drawBullets(w, h); }
void drawGame(Game *game){ drawImage(game->sprites[gBACKGROUND].image, 0, 0); int i,j; for(i=0; i < game->grid->dimensionX; i++) for(j=0; j < game->grid->dimensionY; j++){ drawImage(game->sprites[GRID_TILE].image, game->grid->tiles[i][j].x, game->grid->tiles[i][j].y); char str[1]; sprintf(str, "%i", game->grid->tiles[i][j].distFromExit); drawString(str, game->grid->tiles[i][j].x, game->grid->tiles[i][j].y, game->font, 0, 0, game->fontColor, game->fontBGColor); } drawTowers(game); Enemy *curEnemy = game->enemies; while(curEnemy != NULL){ drawImage(game->sprites[curEnemy->type].image, curEnemy->x, curEnemy->y); //draw health bar SDL_Rect rect = {curEnemy->x, curEnemy->y, game->sprites[curEnemy->type].image->w, 4}; SDL_FillRect(screen, &rect, 0xAAAAAA); rect.w = game->sprites[curEnemy->type].image->w * curEnemy->health / curEnemy->maxHealth; SDL_FillRect(screen, &rect, 0xFF0000); curEnemy = curEnemy->nextEnemy; } drawBullets(game); SDL_Rect rect = {game->grid->selectedTile->x+20, game->grid->selectedTile->y+20, 10, 10}; SDL_FillRect(screen, &rect, SDL_MapRGB(screen->format, game->rRatio, game->gRatio, game->bRatio)); char str[20]; sprintf(str, "Press M to go to menu. Score: %d", game->score); drawString(str, 0, 650, game->font, 1, 0, game->fontColor, game->fontBGColor); sprintf(str, "Red: %i", game->rStored); drawString(str, 0, 20, game->font, 0, 0, game->fontColor, game->fontBGColor); sprintf(str, "Green: %i", game->gStored); drawString(str, 0, 40, game->font, 0, 0, game->fontColor, game->fontBGColor); sprintf(str, "Blue: %i", game->bStored); drawString(str, 0, 60, game->font, 0, 0, game->fontColor, game->fontBGColor); sprintf(str, "R:G:B = %i, %i, %i", game->rRatio, game->gRatio, game->bRatio); drawString(str, 0, 0, game->font, 0, 0, game->fontColor, game->fontBGColor); sprintf(str, "Lives left: %i", game->lives); drawString(str, 0, 80, game->font, 0, 0, game->fontColor, game->fontBGColor); double total = (game->rRatio + game->gRatio + game->bRatio) / (double)game->towerPrices[game->selectedTowerType]; sprintf(str, "Cost for selected Tower: %d,%d,%d", (int)(game->rRatio/total), (int)(game->gRatio/total), (int)(game->bRatio/total)); drawString(str, 0, 0, game->font, 0, 0, game->fontColor, game->fontBGColor); SDL_Flip(screen); };
bool drawGame() { arduboy.clear(); drawScore(); drawLives(); drawEnemies(); if(player.alive) drawPlayer(); drawSupply(); drawBullets(); drawStars(); bool finished = drawExplosions(); arduboy.display(); return finished; }
void HeartGame::draw() { m_win.clear(); if(m_gameover) { drawBrokenHeart(); } else { drawHeart(); } m_win.draw(m_rings); drawBullets(); drawText(); m_win.display(); }
void draw(void) { glClear(GL_COLOR_BUFFER_BIT); drawShip(angle); drawBullets(); }
void EffectBullet::apply() { incrementBullets(); drawBullets(); }
// Create a new bullet if there are less than 4 alien bullets on the screen, // then display the new array of bullets on the screen. void alienFire() { addAlienBullet(); drawBullets(framePointer0); }
static void draw() { switch ( status ) { case TITLE: // Draw background. drawBackground(); drawFoes(); drawBulletsWake(); blendScreen(); // Draw forground. drawBullets(); drawScore(); drawTitleMenu(); break; case IN_GAME: // Draw background. drawBackground(); drawBonuses(); drawFoes(); drawBulletsWake(); drawFrags(); blendScreen(); // Draw forground. drawShots(); drawShip(); drawBullets(); drawScore(); break; case GAMEOVER: // Draw background. drawBackground(); drawFoes(); drawBulletsWake(); drawFrags(); blendScreen(); // Draw forground. drawShots(); drawBullets(); drawScore(); drawGameover(); break; case STAGE_CLEAR: // Draw background. drawBackground(); drawBonuses(); drawFrags(); blendScreen(); // Draw forground. drawShots(); drawShip(); drawScore(); drawStageClear(); break; case PAUSE: // Draw background. drawBackground(); drawBonuses(); drawFoes(); drawBulletsWake(); drawFrags(); blendScreen(); // Draw forground. drawShots(); drawShip(); drawBullets(); drawScore(); drawPause(); break; } }