void ThreadProc::StatusEndProc ()
{
    GetEndTime ();
    UIFreshFoo(theTaskList.length ()-1);
    GameOver ();
    return;
}
Exemplo n.º 2
0
void LifeCounter::Die() {
	if (lives == 0) {
		GameOver();
	} else {
		lives--;
	}
}
Exemplo n.º 3
0
void Game::GameOver()
{
    sf::Texture BackgroundTexture;
    sf::Sprite BackgroundSprite;
    BackgroundTexture.loadFromFile("Graphics/MainMenu.jpg");
    BackgroundSprite.setTexture(BackgroundTexture);
    sf::Text GameOver("Game Over...", Font, 90U);
    GameOver.setStyle(sf::Text::Bold);
    GameOver.setPosition(300, 320);

    sf::Event Event;
    while(Window.isOpen()) 
    {
        while(Window.pollEvent(Event))
        {
            if(Event.type == sf::Event::KeyPressed)
            {
                exit(0);
            }
        }
        Window.clear();
        Window.draw(BackgroundSprite);
        Window.draw(GameOver);
        Window.display();
    }
}
Exemplo n.º 4
0
void CTetrisDlg::OnTimer(UINT_PTR nIDEvent)
{
    if(m_pBlock->canMoveDown())
    {
        m_pBlock->moveDown();
    }
    else
    {
        for(CHAR i = ROW - 1; i >= 0; --i)
        {
            if(CheckLine(i))
            {
                RemoveLine(i);
                ++i;
            }
        }
        MSG msg;
        while(::PeekMessage(&msg, m_hWnd, 0, 0, PM_REMOVE));
        if(IsGameOver(m_gameParam & 0xE0))
        {
            GameOver();
        }
        else
        {
            delete m_pBlock;
            m_pBlock = BlockFromIndex(m_gameParam & 0xE0);
            NextRandomBlock();
            m_nextColor = NextRandomColor();
        }
    }
    Invalidate(FALSE);
    CDialog::OnTimer(nIDEvent);
}
void MyPS2Application::Update()
{
	// Tell DMAC to send previous graphics data to Graphics Synthesiser (GS)
	VIFDynamicDMA.Fire();
	
	// Read the control pad into data buffer
	pad_update(PAD_0);
	
	// Check for exit condition
	if((pad[0].buttons & PAD_START)&&(pad[0].buttons & PAD_SELECT)) quitting_ = true;

	// State Handler
	switch (game_state)
	{
	case INTRO:
		Intro();
		break;
	
	case MENU:
		Menu();
		break;
		
	case GAME:
		Game();
		break;
		
	case GAME_OVER:
		GameOver();
		break;
	}
	
	DSP0.HandleAudio();
	DSP1.HandleAudio();
}
Exemplo n.º 6
0
// Handle the gameflow, start, restartm die...etc.
void ShipRace::Update()
{
	// Get the button to start the game if the game is not already started...Meh !
	if (gDInput->keyPressed(DIK_SPACE) && !mGameStarted)
	{
		// Init the game
		InitGame();
	}
	
	// If gameOver...
	if (!mGameOver)
	{
		// and the game is started...
		if (mGameStarted)
		{
			// and the ship is dead
			if (ship->GetIsDead())
			{
				// Gameover !
				GameOver();
			}
		}
	}
	// Else if space is pressed and it is gameover
	else if (gDInput->keyPressed(DIK_SPACE) && mGameOver)
	{
		// Restart the game
		RestartGame();
	}
	
}
Exemplo n.º 7
0
bool GameClassic::doRun()
{
	SDL_Event event;
	if(SDL_PollEvent(&event))
	{
		switch(event.type)
		{
			case SDL_QUIT:
			{
				return false;
				break;
			}
			case SDL_KEYDOWN:
			{
				if ( event.key.keysym.sym == SDLK_ESCAPE ) 
				{
					m_mgr->SetActiveModule(MAINMENU);
					return true;
				} 
				if ( event.key.keysym.sym == SDLK_p || event.key.keysym.sym == SDLK_SPACE) 
				{
					doPause();
				} 
				if ( event.key.keysym.sym == SDLK_UP && snake->GetDirection()!=Down) 
				{
					snake->SetDirection(Up);
				} 
				if ( event.key.keysym.sym == SDLK_DOWN && snake->GetDirection()!=Up) 
				{
					snake->SetDirection(Down);
				} 
				if ( event.key.keysym.sym == SDLK_LEFT && snake->GetDirection()!=Right) 
				{
					snake->SetDirection(Left);
				} 
				if ( event.key.keysym.sym == SDLK_RIGHT && snake->GetDirection()!=Left) 
				{
					snake->SetDirection(Right);
				} 
				break;
			}
		}

	}
	if(snake->Move())
	{
		Converter.Convert();
		DrawField();
		DrawTop();
		SDL_Delay(50);
	}
	else
	{
		Converter.Convert();
		DrawField();
		DrawTop();
		GameOver();		
	}
	return true;
}
Exemplo n.º 8
0
int main(void)
{
	int menu;
	FsOpenWindow(32, 32, winWidth, winHeight, 1); // 800x600 pixels, useDoubleBuffer=1

	int listBase;
	listBase=glGenLists(256);
	YsGlUseFontBitmap8x12(listBase);
	glListBase(listBase);

	glDisable(GL_DEPTH_TEST);
	glDisable(GL_LIGHTING);
	glDepthFunc(GL_ALWAYS);

	while(1)
	{
		menu=Menu();
		if(menu==1)
		{
			int score;
			score=Game();
			GameOver(score);
		}
		else if(menu==eStop)
		{
			break;
		}
	}

	return 0;
}
Exemplo n.º 9
0
void Level::Update(float dt)
{
    world->Step((dt / 100), 5, 5);
    if (player->GetYPos() > lvlHeight)
    {

        GameOver();
    }
}
Exemplo n.º 10
0
void ControlTetris::siguientePieza(){
	posX = 3;
	posY = 1;
	if(p != NULL) delete p;
	p = pSig;
	if(!mt->pintaPiezaEn(*p,posY,posX))	throw(GameOver(*mt));
	pSig = piezaAleatoria();
	mt->pintaPiezaSig(*pSig);
}
Exemplo n.º 11
0
void StepManiaLanServer::ParseData(PacketFunctions& Packet, const unsigned int clientNum)
{
	int command = Packet.Read1();
	switch (command)
	{
	case NSCPing:
		// No Operation
		SendValue(NSServerOffset + NSCPingR, clientNum);
		break;
	case NSCPingR:
		// No Operation response
		break;
	case NSCHello:
		// Hello
		Hello(Packet, clientNum);
		break;
	case NSCGSR:
		// Start Request
		Client[clientNum]->StartRequest(Packet);
		CheckReady();  //This is what ACTUALLY starts the games
		break;
	case NSCGON:
		// GameOver 
		GameOver(Packet, clientNum);
		break;
	case NSCGSU:
		// StatsUpdate
		Client[clientNum]->UpdateStats(Packet);
		if (!Client[clientNum]->lowerJudge)
			CheckLowerJudge(clientNum);
		break;
	case NSCSU:
		// Style Update
		Client[clientNum]->StyleUpdate(Packet);
		SendUserList();
		break;
	case NSCCM:
		// Chat message
		AnalizeChat(Packet, clientNum);
		break;
	case NSCRSG:
		SelectSong(Packet, clientNum);
		break;
	case NSCSMS:
		ScreenNetMusicSelectStatus(Packet, clientNum);
		break;
	case NSCUPOpts:
		Client[clientNum]->Player[0].options = Packet.ReadNT();		
		Client[clientNum]->Player[1].options = Packet.ReadNT();		
		break;
	default:
		break;
	}
}	 
Exemplo n.º 12
0
void Grid::drop()
{
	if(GameOver())
	{
		return;
	}

	while(!collision())
	{
		current->nudge(0,-1);
	}
}
Exemplo n.º 13
0
// 블럭 상태 및 스테이지 업뎃
void Tetris::Update()
{
	int key = KeyInput();
	switch( stage )
	{
	case INIT :
		press_any_key( key );
		break;
	case READY :
		level_select( key );
		break;
	case RUNNING :
		m_block->Move( key );

		// 블럭이 바닥이나 다른 블럭에 닿았다면 합침
		if( m_block->GetBlockState() == 2 )
			merge_block( m_block->GetBlockX(), m_block->GetBlockY() );

		// 꽉 찬 라인이 있는지 확인
		m_full_line_num = check_full_line();
		if( m_full_line_num != 0 )
			full_line_Set();

		if( stage_data[m_level].clear_line == m_line )
		{
			++m_level;
			if( m_level >= MAX_STAGE )
			{
				stage = SUCCESS;
			}
			m_line = 0;
		}

		// 게임 오버~
		if( GameOver() )
			stage = FAILED;
		break;
	case SUCCESS:
	case FAILED:
		if( key == 'y' || key == 'Y' )
		{
			stage = READY;
			Init();
		}
		if( key == 'n' || key == 'N' )
			stage = RESULT;
		break;
	case RESULT:
			m_bIsGameOver = true;
		break;
	}
}
Exemplo n.º 14
0
void Grid::spin()
{
	if(GameOver())
	{
		return;
	}

	if (current)
	{
		SoundManager::instance()->playSound(spinfx);
		current->spin();
	}
}
Exemplo n.º 15
0
void GameLayer::update(float dt){
    if (!HeadCollideBody(head->getDirec()) && !OutofRange()) {
         MoveStep();
        if(ifGetFood()){
            AddBody();
            SetFood();
        }
        lastbodyposi = body.at(body.size()-1)->getPosition();
    }
    else{
        GameOver();
    }
}
Exemplo n.º 16
0
void byoSnake::Died()
{
    if ( --m_Lives == 0 )
    {
        Refresh();
        GameOver();
        return;
    }

    InitializeSnake();
    RandomizeApple();
    StartSnake();
}
Exemplo n.º 17
0
void CGame::Play()
{
	CBoard *Board = new CBoard;
	Board->DrawBoard();
	delete Board;
	CSnake *Snake = new CSnake;
	//sets difficulty
	switch(dif_lvl)
	{
	case easy:
		CSnake::delay = 160;
		CSnake::multiplier = 1;
		break;
	case medium:
		CSnake::delay = 140;
		CSnake::multiplier = 1;
		break;
	case hard:
		CSnake::delay = 120;
		CSnake::multiplier = 0.9;
		break;
	case extreme:
		CSnake::delay = 100;
		CSnake::multiplier = 0.8;
		break;
	}
	while(Snake->Move() != 0)
	{
		if(GetAsyncKeyState(VK_UP) & 0x8000)
		{
			Snake->ChangeDirection(up);
		}
		else if(GetAsyncKeyState(VK_DOWN) & 0x8000)
		{
			Snake->ChangeDirection(down);
		}
		else if(GetAsyncKeyState(VK_LEFT) & 0x8000)
		{
			Snake->ChangeDirection(static_cast<Direction>(2));
		}
		else if(GetAsyncKeyState(VK_RIGHT) & 0x8000)
		{
			Snake->ChangeDirection(static_cast<Direction>(3));
		}
		else if(GetAsyncKeyState(VK_ESCAPE) & 0x8000)
			break; 
	}
	int score = Snake->GetScore();
	delete Snake;
	GameOver(score);
}
Exemplo n.º 18
0
void GameScene::Update( float elapsedTime )
{
	GameStateModel::Update(elapsedTime);
	if (GameStateModel::TimeRemaining() <= 0) {
		GameOver();
		return;
	}

	ScoreView::Update(elapsedTime);
	TimerController::Update(elapsedTime);
	BoardView::get()->Update(elapsedTime);
	SelectedTextLabel::get()->Update(elapsedTime);
	TimeTankView::Update(elapsedTime);
}
Exemplo n.º 19
0
void GameManager::AI()
{
	CheckKey();
	if (GameStart() && !GamePause() && !GameOver())
	{
		Produce(_T("Enemy"));
		Produce(_T("Cloud"));
		Produce(_T("Angela"));
		CheckCollision();
		MoveIt();
		Fire();
		TrashRecycle();
	}
}
Exemplo n.º 20
0
// This is my primary Event Loop. This is where most of the fun stuff happens ;)
void Megamaniac() {
    // WTF does this do? Something to do with my Data Structure I assume...
    Game game;

	while (true) {
	    // Let's run our initial setup to get everything for the game ready.
	    SetupGame(&game);

	    // Do we need to change the level? Not really but we should probably start at Level 1.
	    ChangeLevel(&game);

		// This is where the Event Loop actually starts. This will run repeatedly until our game is over.
	    while (!game.game_over) {
		    clear_screen();
		    GameStats(&game);
			int userInput = UserInput(&game);
		    MovementPlayer(&game, userInput);
			MovementMissiles(&game, userInput);
		    MovementAliens(&game);
			MovementBombs(&game);
			MovementBonuses(&game);

			CollisionMissiles(&game);
			CollisionAliens(&game);
		    CollisionBombs(&game);
			CollisionBonuses(&game);

			UpdateScreen(&game);
		    show_screen();
		    timer_pause(25);
	    }

		GameOver(&game);

		int userInput = wait_char();
		while (userInput != 'r' && userInput >= 0) {
			if (userInput == 'q') {
				exit(0);
			}
			if (userInput == 'r') {
				Megamaniac();
			}
			userInput = wait_char();
		}
	}
}
Exemplo n.º 21
0
void GameBoard::timerEvent(QTimerEvent *)
{
    encart();
    flameAnim();
    splashScreen();
    movementMario();
    movementPeach();
    movementEncart();
    getModel()->brickOrganisation();
    goldAnim();
    intersectPeachMario();
    shockAnim();
    hurted();
    GameOver();
    Peach();
    view->repaint();
}
Exemplo n.º 22
0
void Player::doLife(float change)
{
  if(!mDestroyed)
  {
    mLife+=change;
    if(mLife>1.0f)
      mLife=1.0f;
    else if(mLife<0.0f)
    {
      mLife=0.0f;
      GameOver();
      RegisterFx(new FXSprite("PlrExplosion", mSprite.GetPosition().x, mSprite.GetPosition().y, 5, 5));
      mDestroyed=true;
      PlaySound("Sound/BoomPlayer.wav");
    }
  }
}
Exemplo n.º 23
0
//食らった
int CSystem::Damage() {
	if( life == 0 ) {
		if( !GameOver() )
			return 0;
	}
	else {
		life --;
		bomb = 3;
		//弾をすべてアイテムに
		TamaToItem();
		//エフェクト
		g_lEffect2.Add( new CEffectDamage( g_pPlayer->GetX(),g_pPlayer->GetY() ));
		//位置初期化
		g_pPlayer->ResetPosition();
	}
	return 1;
}
Exemplo n.º 24
0
int main()
{
	//initialize random seed
	srand((unsigned)time(NULL));

	bool runGame = true;

	while(runGame)
	{
		if(WantsToPlay())
		{
			hPtr deck = (hPtr)malloc(sizeof(_h));
			hPtr player1Hand = (hPtr)malloc(sizeof(_h));
			hPtr player2Hand = (hPtr)malloc(sizeof(_h));
			hPtr player3Hand = (hPtr)malloc(sizeof(_h));
			hPtr player4Hand = (hPtr)malloc(sizeof(_h));
			if(Initialize(deck, player1Hand, player2Hand, player3Hand, player4Hand))
			{
				while(!GameOver(deck, player1Hand, player2Hand, player3Hand, player4Hand))
				{
					PlayRound();
				}
				CalculateWinner();

				if(!FreeMemory())
				{
					printf("ERROR: Memory could not be freed.\n");
					break;
				}
			}
			else
			{
				printf("ERROR: Could not initialize game.\n");
				break;
			}
		}
		else
		{
			runGame = false;
			printf("See you next time!\n");
		}
	}

	return 0;
}
Exemplo n.º 25
0
State<Dtype> Environment<Dtype>::GetState( bool newGame ) {
  if ( GameOver() ) {
    return State<Dtype>();
  }
  shared_ptr<FrameState<Dtype> > nowFrame = GetFrame();
  
  if ( newGame ) {
    for ( int i = 0; i < HISTORY_SIZE; ++i ) {
      frames_[i] = nowFrame;
    }
  } else {
    for ( int i = HISTORY_SIZE - 1; i >= 1; --i ) {
      frames_[i] = frames_[i - 1];
    }
    frames_[0] = nowFrame;
  }
  return State<Dtype>( frames_, HISTORY_SIZE );
}
Exemplo n.º 26
0
void MainWindow::on_rangeButton_clicked()
{
    if(enemy.takeDamage(player.rangeAttack(desc))){
        QString temp;
        desc += "\n\nThe " + enemy.getName() + " is still alive\n\n"
             + "It " + enemy.atkDes() + " for " + temp.setNum(enemy.attack()) + " damage";
        if(!player.takedamage(enemy.attack())){
            GameOver();
        }
        updateHealth();
    }
    else{
        desc += "\n\nYou have killed the " + enemy.getName() + "\n\n" + rollReward();
        player.kill();
        exitCombat();
    }
    ui->description->setText(desc);
}
Exemplo n.º 27
0
/****************蛇的移动********************
*
*算法需要改进
********************************************/
void SnakeMove(int x,int y)
{
	int i;
	//根据当前移动方向确定下一步的坐标
	
	if(GameOver(x,y))
	{
		GameState = 2;
		Pause = FALSE;
		return;
	}
	//判断是否吃到了食物
	if(SnakeEatFood(x,y))
	{
		for(i =SnakeLength;i>0;i--)
			Snake[i]= Snake[i-1];
		Snake[0].x = x;
		Snake[0].y = y;
		SnakeLength++;
		Food();
	}
	else 
	{
		for(i =SnakeLength-1;i>0;i--)
			Snake[i]= Snake[i-1];
		Snake[0].x = x;
		Snake[0].y = y;
	}
	if(SnakeLength>=20&&SnakeLength<40)
	{
		GameLevel = 2;
		GameSpeed = 100 ;
	}
	else if(SnakeLength>=40&&SnakeLength<80)
	{
		GameLevel = 3;
		GameSpeed = 80;
	}
	else if(SnakeLength>=80)
	{
		GameLevel = 4;
		GameSpeed = 50;
	}
}
TKeyResponse CSpaceInvadersAppView::HandleKeyEventL(const TKeyEvent& aKeyEvent,
        TEventCode aType)
{
    TKeyResponse retVal = EKeyWasNotConsumed;

    if ( aKeyEvent.iCode == EKeyUpArrow )
    {
        MoveShipUp();
        retVal = EKeyWasConsumed;
    }
    else if ( aKeyEvent.iCode == EKeyRightArrow )
    {
        MoveShipRight();
        retVal = EKeyWasConsumed;
    }
    else if ( aKeyEvent.iCode == EKeyDownArrow )
    {
        MoveShipDown();
        retVal = EKeyWasConsumed;
    }
    else if ( aKeyEvent.iCode == EKeyLeftArrow )
    {
        MoveShipLeft();
        retVal = EKeyWasConsumed;
    }
    else if ( aKeyEvent.iCode == EKeyDevice1 )
    {
        GameOver();
        retVal = EKeyWasConsumed;
    }
    else if ( aKeyEvent.iCode == EKeyDevice3
              || aKeyEvent.iCode == EKeyEnter )
    {
        if ( ! iShip->HasFired() )
        {
            iShip->ShotFired();
        }

        retVal = EKeyWasConsumed;
    }

    return retVal;
}
Exemplo n.º 29
0
shared_ptr<FrameState<Dtype> > Environment<Dtype>::GetFrame() {
  CHECK( !GameOver() );
  const ALEScreen & screen = ale_->getScreen();
  
  CHECK_EQ( screen.height(), SCREEN_HEIGHT );
  CHECK_EQ( screen.width(), SCREEN_WIDTH );
  GetFrameGrayScale( screen.getArray() );
  
  const double xRatio = (double)SCREEN_HEIGHT / CROP_HEIGHT;    
  const double yRatio = (double)SCREEN_WIDTH / CROP_WIDTH;
  
  static Dtype pixels[CROP_SIZE];
  for ( int i = 0; i < CROP_HEIGHT; ++i ) {
    for ( int j = 0; j < CROP_WIDTH; ++j ) {
      int xL = int(i * xRatio);
      int xR = int((i + 1) * xRatio);
      int yL = int(j * yRatio);
      int yR = int((j + 1) * yRatio);
      double result = 0.0;
#define GET_WEIGHT( i, x, ratio, l, r, weight ) \
  weight = 1.0; \
  if ( x == l ) weight = x + 1 - i * ratio; \
  else if ( x == r ) weight = (i + 1) * ratio - x; \
  CHECK_LE( 0.0, weight ); \
  CHECK_LE( weight, 1.0 );
      double xWeight, yWeight;
      for ( int x = xL; x <= xR; ++x ) {
        GET_WEIGHT( i, x, xRatio, xL, xR, xWeight );
        for ( int y = yL; y <= yR; ++y ) {
          GET_WEIGHT( j, y, yRatio, yL, yR, yWeight );
          Dtype grayScale = GrayScale( x, y );
          result += (xWeight / xRatio) * (yWeight / yRatio) * grayScale;
        }
      }
#undef GET_WEIGHT
      pixels[i * CROP_WIDTH + j] = result;
    }
  }
  FrameState<Dtype>* frame = new FrameState<Dtype>( pixels, CROP_SIZE );
  //frame->inspect( "Environment::Getframe" );
  return shared_ptr<FrameState<Dtype> >( frame );
}
Exemplo n.º 30
0
Arquivo: Game.cpp Projeto: akkez/Snake
void GamePressKey(unsigned char key) {
	if (key == 27) {
		if (isGamePaused) {
			GameOver();
			return;
		}
		TogglePauseGame();
		return;
	}
	if (key == 13) {
		if (isGameOver) {
			//змейка худеет полностью
			WipeSnake(false);
			Window = W_CHAMPION;

			//расчет на ассемблере количества очков, полученных во время игры
			int pointsC = GamePoints + GameBonusPoints * BonusEffect;
			int pointsAsm;
			__asm {
				push eax;
				push edx;
				mov eax, GameBonusPoints;
				cdq;
				imul BonusEffect;
				add eax, GamePoints;
				mov pointsAsm, eax;
				pop edx;
				pop eax;
			}
			assert(pointsC == pointsAsm);

			HandleHighscoreUpdate(
				CurrentDifficulty, CurrentGamemode, pointsAsm, LivingTicks
			);
			return;	
		}
	}
	if (isGamePaused) {
		TogglePauseGame();
		return;		
	}
}