Exemplo n.º 1
0
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;
  }
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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++;
	}
	
	
}
Exemplo n.º 4
0
void
display(void)
{
  glClear(GL_COLOR_BUFFER_BIT);
  drawShip(angle);
  drawRocks();
  drawBullets();
  glutSwapBuffers();
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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);
};
Exemplo n.º 7
0
bool drawGame()
{
    arduboy.clear();
    drawScore();
    drawLives();
    drawEnemies();
    if(player.alive)
        drawPlayer();
    drawSupply();
    drawBullets();
    drawStars();
    bool finished = drawExplosions();
    arduboy.display();
    return finished;
}
Exemplo n.º 8
0
void HeartGame::draw()
{
    m_win.clear();
    if(m_gameover)
    {
        drawBrokenHeart();
    }
    else
    {
        drawHeart();
    }
    m_win.draw(m_rings);
    drawBullets();
    drawText();
    m_win.display();
}
Exemplo n.º 9
0
void draw(void)
{
  glClear(GL_COLOR_BUFFER_BIT);
  drawShip(angle);
  drawBullets();
}
Exemplo n.º 10
0
void EffectBullet::apply()
{
	incrementBullets();
	drawBullets();
}
Exemplo n.º 11
0
// 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);
}
Exemplo n.º 12
0
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;
  }
}