コード例 #1
0
ファイル: stark.cpp プロジェクト: Snejp/tlj-residual
void StarkEngine::mainLoop() {
	// Load the initial scene
	_scene = new Scene(_gfx);

	while (!shouldQuit()) {
		// Process events
		Common::Event e;
		while (g_system->getEventManager()->pollEvent(e)) {
			// Handle any buttons, keys and joystick operations
			if (e.type == Common::EVENT_KEYDOWN) {
				if (e.kbd.ascii == 'q') {
					quitGame();
					break;
				} else {
					//handleChars(event.type, event.kbd.keycode, event.kbd.flags, event.kbd.ascii);
				}
			}
			/*if (event.type == Common::EVENT_KEYDOWN || event.type == Common::EVENT_KEYUP) {
				handleControls(event.type, event.kbd.keycode, event.kbd.flags, event.kbd.ascii);
			}*/
			// Check for "Hard" quit"
			//if (e.type == Common::EVENT_QUIT)
			//	return;
			/*if (event.type == Common::EVENT_SCREEN_CHANGED)
				_refreshDrawNeeded = true;*/
		}

		updateDisplayScene();
		g_system->delayMillis(50);
	}
}
コード例 #2
0
ファイル: mainwindow.cpp プロジェクト: Amyya/pd2-Angrybird
void MainWindow::showEvent(QShowEvent *)
{
    // Setting the QGraphicsScene
    scene = new QGraphicsScene(0,0,width(),ui->graphicsView->height());
    ui->graphicsView->setScene(scene);
    scene->setBackgroundBrush(QBrush(QImage(":/image/background.png")));
    // Create world
    world = new b2World(b2Vec2(0.0f, -9.8f));  //橫跟直的重力
    // Setting Size
    GameItem::setGlobalSize(QSizeF(32,18),size());   //size of BOX2D windowsize
    QSound *music =new QSound("angrybird.wav");
    music->play();

    initial();

    // Timer
    connect(&timer,SIGNAL(timeout()), this, SLOT(tick()));
    connect(this,SIGNAL(quitGame()), this, SLOT(QUITSLOT()));
    //connect(&timerpig, SIGNAL(timeout()), this, SLOT(deletepig()));
    timer.start(100/6);
    //timerpig.start(1000);

    //create the restart button
    /*QPushButton *restartButton = new QPushButton;
    restartButton->setGeometry(QRect(QPoint(100,50),QSize(100, 100)));
    QPixmap pixmap(":/image/restart.jpg");
    QIcon ButtonIcon(pixmap);
    restartButton->setIcon(ButtonIcon);
    restartButton->setIconSize(pixmap.rect().size());
    scene->addWidget(restartButton);
    connect(restartButton,SIGNAL(clicked(bool)),this,SLOT(restart()));*/

}
コード例 #3
0
void AGOSEngine_FeebleDemo::exitMenu() {
    for (int i = 1; i <= 20; i++)
        disableBox(i);

    enableBox(21);

    playVideo("fhypno.smk");
    playVideo("fbye1.smk", true);

    HitArea *ha;
    do {
        _lastHitArea = NULL;
        _lastHitArea3 = NULL;

        while (!shouldQuit() && _lastHitArea3 == 0) {
            delay(1);
        }

        ha = _lastHitArea;
    } while (!shouldQuit() && !(ha != NULL && ha->id == 21));

    playVideo("fbye2.smk");
    quitGame();
    delay(0);
}
コード例 #4
0
ファイル: ringworld_demo.cpp プロジェクト: CatalystG/scummvm
void RingworldDemoGame::processEvent(Event &event) {
	if (event.eventType == EVENT_KEYPRESS) {
		switch (event.kbd.keycode) {
		case Common::KEYCODE_F1:
			// F1 - Help
			MessageDialog::show(DEMO_HELP_MSG, OK_BTN_STRING);
			break;

		case Common::KEYCODE_F2: {
			// F2 - Sound Options
			ConfigDialog *dlg = new ConfigDialog();
			dlg->runModal();
			delete dlg;
			g_globals->_soundManager.syncSounds();
			g_globals->_events.setCursorFromFlag();
			break;
		}

		case Common::KEYCODE_F3:
			// F3 - Quit
			quitGame();
			event.handled = false;
			break;

		default:
			break;
		}
	} else if (event.eventType == EVENT_BUTTON_DOWN) {
		pauseGame();
		event.handled = true;
	}
}
コード例 #5
0
ファイル: opcodes.cpp プロジェクト: Templier/scummvm-test
void ToucheEngine::op_setFlag() {
	debugC(9, kDebugOpcodes, "ToucheEngine::op_setFlag()");
	uint16 flag = _script.readNextWord();
	int16 val = *_script.stackDataPtr;
	_flagsTable[flag] = val;
	switch (flag) {
	case 104:
		_currentKeyCharNum = val;
		break;
	case 611:
		if (val != 0)
			quitGame();
		break;
	case 612:
		_flagsTable[613] = getRandomNumber(val);
		break;
	case 614:
	case 615:
		_fullRedrawCounter = 1;
		break;
	case 618:
		showCursor(val == 0);
		break;
	case 619:
		debug(0, "Unknown music flag %d", val);
		break;
	}
}
コード例 #6
0
/** Method to handle key presses. WASD keys move the main character, arrow keys shoot fireballs, and other keys can access start, pause, and quit */
void MainWindow::keyPressEvent(QKeyEvent *e) {
	if(gameInProgress) {
		if(e->key() ==  Qt::Key_D) {
			game->getNinja()->moveRight();
		}
		if(e->key() == Qt::Key_A) {
			game->getNinja()->moveLeft();
		}
		if(e->key() == Qt::Key_W) {
			game->getNinja()->jump();
		}
		if(e->key() ==  Qt::Key_Right) {
			game->fireball(0);
		}
		if(e->key() == Qt::Key_Left) {
			game->fireball(1);
		}
		if(e->key() == Qt::Key_Up) {
			game->fireball(2);
		}
		if(e->key() == Qt::Key_Down) {
			game->fireball(3);
		}
		if(e->key() == Qt::Key_P) {
			pause();
		}
	}
	if(e->key() == Qt::Key_F1) {
		startSlot();
	}
	if(e->key() == Qt::Key_Escape) {
		quitGame();
	}
}
コード例 #7
0
ファイル: ui.c プロジェクト: jeremysrand/a2bejwld
static void endGame(void)
{
    videomode(VIDEOMODE_80x24);
    mixedTextMode();
    
    speakNoMoreMoves();
    
    cputsxy(0, 0, "               No more moves  -  GAME OVER!!");
    gotoxy(0,1);
    cprintf(      "               You made it to level %u", getLevel());
    cputsxy(0, 3, "                    Play again (Y/N)?");
    
    while (true) {
        switch (cgetc()) {
            case 'y':
            case 'Y':
                return;
                
            case 'n':
            case 'N':
            case CH_ESC:
            case 'q':
            case 'Q':
                quitGame();
                break;
                
            default:
                badThingHappened();
                break;
        }
    }
}
コード例 #8
0
ファイル: stark.cpp プロジェクト: orangeforest11/residualvm
void StarkEngine::mainLoop() {
	while (!shouldQuit()) {
		_frameLimiter->startFrame();

		processEvents();

		if (_userInterface->shouldExit()) {
			quitGame();
			break;
		}

		if (_userInterface->hasQuitToMainMenuRequest()) {
			_userInterface->performQuitToMainMenu();
		}

		if (_resourceProvider->hasLocationChangeRequest()) {
			_global->setNormalSpeed();
			_resourceProvider->performLocationChange();
		}

		updateDisplayScene();

		// Swap buffers
		_frameLimiter->delayBeforeSwap();
		_gfx->flipBuffer();
	}
}
コード例 #9
0
ファイル: endlessgamewidget.cpp プロジェクト: tecton/HexGame
void EndlessGameWidget::dealPressed(QPointF mousePos, Qt::MouseButton button)
{
  // Choose the correct item at press position
  currentPos = mousePos;
  if (flame->in(mousePos, gameboardInfo->width(), gameboardInfo->height()))
    itemAtPressPos = flame;
  else if (star->in(mousePos, gameboardInfo->width(), gameboardInfo->height()))
    itemAtPressPos = star;
  else if (hint->in(mousePos, gameboardInfo->width(), gameboardInfo->height()))
    itemAtPressPos = hint;
  else if (resetItem->in(mousePos,
                         gameboardInfo->width(),
                         gameboardInfo->height()))
    itemAtPressPos = resetItem;
  else if (exitItem->in(mousePos, gameboardInfo->width(), gameboardInfo->height()))
    itemAtPressPos = exitItem;
  else
    itemAtPressPos = NULL;

  // Quit if it's a right button
  // May be abandoned later
  if (button == Qt::RightButton)
  {
    quitGame();
    return;
  }

  // Let the gesture controller to deal the press event
  gestureController->dealPressed(mousePos);
}
コード例 #10
0
ファイル: gag.cpp プロジェクト: superg/scummvm
void GagEngine::Init()
{
	initGraphics(_SCREEN_WIDTH, _SCREEN_HEIGHT, true, &_SCREEN_FORMAT);

	//DEBUG: load files from uncompressed file system
	_archive.reset(new Common::FSDirectory(ConfMan.get("path") + '/' + "Gag01", 2, false));
//	_archive.reset(new CdfArchive("Gag01.cdf", false));

	//DEBUG
#ifdef DEBUG_SKIM_SCRIPT
	_script = "GAG_CMD_CLEAN.CFG";
//	_section = "CFG";
	Common::Error script_error = StateScript();
	debug("skim debug: ");
	for(std::set<Common::String>::iterator it = G_STRING_SET.begin(); it != G_STRING_SET.end(); ++it)
		debug("\t%s", it->c_str());
	quitGame();
	_state = GS_ACTIVE;
#endif

//	ExtractCdf("Gag01.cdf");
//	ExtractCdf("Gag02.cdf");
//	ExtractCdf("gag01.cdf");
//	ExtractCdf("GAG3.cdf");
//	ExtractCdf("GARY.cdf");
//	BitmapTest();
//	AnimationTest();
//	AnimationTuckerTest();
}
コード例 #11
0
void ScummEngine_v70he::o70_systemOps() {
	byte *src, string[256];
	int id, len;

	byte subOp = fetchScriptByte();

	switch (subOp) {
	case 158:
		restart();
		break;
	case 160:
		// Confirm shutdown
		quitGame();
		break;
	case 244:
		quitGame();
		break;
	case 250:
		id = pop();
		src = getStringAddress(id);
		len = resStrLen(src) + 1;
		memcpy(string, src, len);
		debug(0, "Start executable (%s)", string);
		break;
	case 251:
		convertMessageToString(_scriptPointer, string, sizeof(string));
		len = resStrLen(_scriptPointer);
		_scriptPointer += len + 1;
		debug(0, "Start executable (%s)", string);
		break;
	case 252:
		convertMessageToString(_scriptPointer, string, sizeof(string));
		len = resStrLen(_scriptPointer);
		_scriptPointer += len + 1;
		debug(0, "Start game (%s)", string);
		break;
	case 253:
		id = pop();
		src = getStringAddress(id);
		len = resStrLen(src) + 1;
		memcpy(string, src, len);
		debug(0, "Start game (%s)", string);
		break;
	default:
		error("o70_systemOps invalid case %d", subOp);
	}
}
コード例 #12
0
void MainWindow::showEvent(QShowEvent *){
    //初始化
    startgame();
    //計時器
    connect(&timer,SIGNAL(timeout()),this,SLOT(tick()));
    connect(this,SIGNAL(quitGame()),this,SLOT(QUITSLOT()));
    timer.start(10);
}
コード例 #13
0
void MainWindow::showEvent(QShowEvent *)
{
    // Setting the QGraphicsScene
    scene = new QGraphicsScene(0,0,width()*2,height()*2);
    QPixmap bg;
    bg.load(":/image/backgroung.png");
    bg = bg.scaled(width()*2,height()*2);
    scene->addPixmap(bg);
    ui->graphicsView->setScene(scene);
    ui->graphicsView-> scale(0.5,0.5);
    for(int i=0;i<10;i++){
        scorenumberPic[i].load("://image/number_"+QString::number(i)+".png");
        scorenumberPic[i]=scorenumberPic[i].scaled(scorenumberPic[i].width()*4,scorenumberPic[i].height()*4);
    }
    button = new QPushButton("",this);
    QPixmap icon;
    icon.load(":/image/restart.png");
    icon = icon.scaled(800,800);
    button->setIcon(icon);
    button->setIconSize(QSize(70,70));
    button->setGeometry(10,10,70,70);
    button->setFlat(true);
    button->show();
    connect(button,SIGNAL(clicked(bool)),this,SLOT(restart()));

    button1 = new QPushButton("",this);
    icon.load(":/image/exit.png");
    icon = icon.scaled(800,800);
    button1->setIcon(icon);
    button1->setIconSize(QSize(70,70));
    button1->setGeometry(100,10,70,70);
    button1->setFlat(true);
    button1->show();
    connect(button1,SIGNAL(clicked(bool)),this,SLOT(quitgame()));

    // Create world
    world = new b2World(b2Vec2(0.0f, -9.8f));
    world->SetContactListener(&listener);
    // Setting Size
    GameItem::setGlobalSize(QSizeF(32,18),size());
    // Create ground (You can edit here)
    itemList.push_back(new Land(32,-17,64,0,QPixmap(":/ground.pn").scaled(width()*2,height()/6.0),world,scene));
    //itemList.push_back(new Land(32,1.5,3,35,QPixmap(":/ground.pn").scaled(width(),height()/6.0),world,scene));//r bound
    //itemList.push_back(new Land(0,1.5,3,35,QPixmap(":/ground.pn").scaled(width(),height()/6.0),world,scene));//l bound
    createStage();
    createBird(blue);
    // Timer
    connect(&timer,SIGNAL(timeout()),this,SLOT(tick()));
    connect(&timer,SIGNAL(timeout()),this,SLOT(showScore()));
    timer.start(100/6);
    connect(this,SIGNAL(quitGame()),this,SLOT(QUITSLOT()));

    connect(&timer_z,SIGNAL(timeout()),this,SLOT(zoomIn()));
    connect(&timer_f,SIGNAL(timeout()),this,SLOT(followBird()));
    connect(&timer_waiter,SIGNAL(timeout()),this,SLOT(createBird()));
}
コード例 #14
0
ファイル: mainwindow.cpp プロジェクト: yih6208/pd2-Angrybird
void MainWindow::showEvent(QShowEvent *)
{
    // Setting the QGraphicsScene


    //scene = new QGraphicsScene(0,0,width(),ui->graphicsView->height());
    scene = new QGraphicsScene(0,0,1920,1080);
    ui->graphicsView->setScene(scene);

    // Create world
    world = new b2World(b2Vec2(0.0f, -9.8f));

    // Setting Size
    GameItem::setGlobalSize(QSizeF(32,18),size());

    // Create ground (You can edit here)
    itemList.push_back(new Land(16,1.5,32,3,QPixmap(":/ground.png").scaled(width(),height()/6.0),world,scene));
        shoot.setPixmap(QPixmap(":/shot.png"));
    scene->addItem(&shoot);



    shoot.setPos(QPointF(500,500));
    // Create bird (You can edit here)
    birdie[0] = new Bird(1,4,0.27f,&timer,QPixmap(":/red.png").scaled(height()/9.0,height()/9.0)   ,world,scene,red);
    birdie[1] = new Bird(2,4,0.27f,&timer,QPixmap(":/blue.png").scaled(height()/9.0,height()/9.0)  ,world,scene,blue);
    birdie[2] = new Bird(3,4,0.27f,&timer,QPixmap(":/yellow.png").scaled(height()/9.0,height()/9.0),world,scene,yellow);
    birdie[3] = new Bird(4,4,0.27f,&timer,QPixmap(":/black.png").scaled(height()/9.0,height()/9.0) ,world,scene,black);
    birdie[7] = new Bird(25,4,0.27f,&timer,QPixmap(":/pig.png").scaled(height()/9.0,height()/9.0) ,world,scene,pig);
    avaliable[7]=true;
    shootpos->setX(150);
    shootpos->setY(200);

    birdie[0]->SetPosion(shootpos);
    birdie[0]->g_body->SetAwake(false);

    // Setting the Velocity
    for (int i=0;i<4;i++){
        avaliable[i]=true;
        shooted  [i]=false;
        birdie[i]->setLinearVelocity(b2Vec2(0,0));
        itemList.push_back(birdie[i]);
    }
    for(int i=4;i<7;i++)avaliable[i]=false;


    // Timer
    connect(&timer,SIGNAL(timeout()),this,SLOT(tick()));
    connect(&sleep,SIGNAL(timeout()),this,SLOT(Ready()));
    connect(this,SIGNAL(quitGame()),this,SLOT(QUITSLOT()));
    connect(ui->QuiButton,SIGNAL(released()),this,SLOT(QUITSLOT()));
    connect(ui->RetryButton,SIGNAL(released()),this,SLOT(Retry()));
    timer.start(100/6);

}
コード例 #15
0
void MainWindow::showEvent(QShowEvent *)
{
    setparam();
    setGame();
    // Timer
    connect(&timer,SIGNAL(timeout()),this,SLOT(tick()));
    connect(this,SIGNAL(quitGame()),this,SLOT(QUITSLOT()));
    timer.start(100/6);


}
コード例 #16
0
void usage() {
    cout << "Usage: lost_penguins [OPTIONS]\n\n";
    cout << "  -datadir     Changes the data directory.            Default: data/\n";
    cout << "  -animfile    Changes the animation file name.       Default: animation_data.anim\n";
    cout << "  -w, -width   Changes resolution (width) of game.    Default: 640\n";
    cout << "  -h, -height  Changes resolution (height) of game.   Default: 480\n";
    cout << "  -fs, -full   Enable fullscreen.                     Default: disabled\n";
    cout << "  -map         Load specified map from data dir.      Default: disabled (map1 as a fallback)\n";
    cout << "  -scenario    Load specified Scenario from data dir. Default: lv1\n";
    cout << "  -h, --help   Show this text \n";
    quitGame(4);
}
コード例 #17
0
ファイル: main_menu.c プロジェクト: LibreGames/edgar
static void doQuit()
{
	if (game.previousStatus == IN_TITLE)
	{
		quitGame();
	}

	else
	{
		game.menu = initYesNoMenu(_("Exit the game?"), &quitToTitle, &showMainMenu);

		game.drawMenu = &drawYesNoMenu;
	}
}
コード例 #18
0
ファイル: gui.c プロジェクト: tuval10/Chess
/* main function of the game. */
int main( int argc, char* args[] ){
	/*need to free mainGame, file_slots, and screen*/
	int gui=((argc>1)&&(!strcmp(args[1],"gui")))?1:0;
	srand ((unsigned int)time(NULL) );
	standart_fail = 0;
	loadChess(gui); /* generic function to load the game with all the functions specific per chess*/
	if(standart_fail){ return 1;}
	if(gui==0){
		(*mainGame->ConsoleMain)(mainGame->gameInfo);
	}
	else{
		/*Initialize all SDL subsystems - where are 8 subsystems composing the SDL=GUI */
		if( SDL_Init( SDL_INIT_VIDEO ) == -1 ){SDL_InitError(); (*mainGame->deleteGameFunc)(gui); deleteSlots(SLOT_NUM); standart_fail=true; return 1;}
		/*THE GUI TREE ROOT */
		screen = BuildWindow(SCREEN_WIDTH, SCREEN_HEIGHT);
		/* never deleted (as long as we don't quit - quit button) */
		if(standart_fail){(*mainGame->deleteGameFunc)(gui) ; deleteSlots(SLOT_NUM); return 1;}
		showMenu();
		if(standart_fail){return quitGame(gui);}
		handleEvents(screen);
	}
	return quitGame(gui);
}
コード例 #19
0
ファイル: mainwindow.cpp プロジェクト: Amyya/pd2-Angrybird
void MainWindow::keyPressEvent(QKeyEvent* event){
    if(event->key()==Qt::Key_Z && birdsitua==3 && birdskill==1){    //放開後飛行中還沒用技能
        std::cout << "skill" << std::endl ;
        birdList[color]->skill();
        std::cout << "skill2" << std::endl ;
        movetimer->start(1000);
        birdsitua = 0;   //放完技能
     }
    if(event->key()==Qt::Key_R){
        restart();
    }
    if(event->key()==Qt::Key_Q){
        quitGame();
    }
}
コード例 #20
0
ファイル: ringworld2_logic.cpp プロジェクト: rkmarvin/scummvm
void Ringworld2Game::processEvent(Event &event) {
	if (event.eventType == EVENT_KEYPRESS) {
		switch (event.kbd.keycode) {
		case Common::KEYCODE_F1:
			// F1 - Help
			HelpDialog::show();
			break;

		case Common::KEYCODE_F2:
			// F2 - Sound Options
			SoundDialog::execute();
			break;

		case Common::KEYCODE_F3:
			// F3 - Quit
			quitGame();
			event.handled = false;
			break;

		case Common::KEYCODE_F4:
			// F4 - Restart
			restartGame();
			g_globals->_events.setCursorFromFlag();
			break;

		case Common::KEYCODE_F7:
			// F7 - Restore
			restoreGame();
			g_globals->_events.setCursorFromFlag();
			break;

		case Common::KEYCODE_F8:
			// F8 - Credits
			warning("TODO: Show Credits");
			break;

		case Common::KEYCODE_F10:
			// F10 - Pause
			GfxDialog::setPalette();
			MessageDialog::show(GAME_PAUSED_MSG, OK_BTN_STRING);
			g_globals->_events.setCursorFromFlag();
			break;

		default:
			break;
		}
	}
}
コード例 #21
0
ファイル: ringworld_logic.cpp プロジェクト: TomFrost/scummvm
void RingworldGame::processEvent(Event &event) {
	if (event.eventType == EVENT_KEYPRESS) {
		switch (event.kbd.keycode) {
		case Common::KEYCODE_F1:
			// F1 - Help
			MessageDialog::show(HELP_MSG, OK_BTN_STRING);
			break;

		case Common::KEYCODE_F2: {
			// F2 - Sound Options
			ConfigDialog *dlg = new ConfigDialog();
			dlg->runModal();
			delete dlg;
			_globals->_soundManager.syncSounds();
			_globals->_events.setCursorFromFlag();
			break;
		}

		case Common::KEYCODE_F3:
			// F3 - Quit
			quitGame();
			event.handled = false;
			break;

		case Common::KEYCODE_F4:
			// F4 - Restart
			restartGame();
			_globals->_events.setCursorFromFlag();
			break;

		case Common::KEYCODE_F7:
			// F7 - Restore
			restoreGame();
			_globals->_events.setCursorFromFlag();
			break;

		case Common::KEYCODE_F10:
			// F10 - Pause
			GfxDialog::setPalette();
			MessageDialog::show(GAME_PAUSED_MSG, OK_BTN_STRING);
			_globals->_events.setCursorFromFlag();
			break;

		default:
			break;
		}
	}
}
コード例 #22
0
int main(int argc, char* argv[]) {
    cout << "Starting Lost Penguins!\n";
    //Clean exit on Windows close...
    atexit(SDL_Quit);

    cout << "Loading configuration file...\n";
    //Maybe: add some more location checks...
    if (readConfig("/usr/local/etc/lost_penguins.conf")) cout << "Loaded /usr/local/etc/lost_penguins.conf...\n";
    else cout << "Configuration files not found! Set default parameters...\n";

    parseInput(argc,argv);

    if (SDL_Init(SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_AUDIO)==0) {
        cout << "Initialized SDL...\n";
    } else {
        cout << "Couldn't initialize SDL!\n";
        exit(-1);
    }
    SDL_ShowCursor(SDL_DISABLE);
    //Change directory to datadir

    cout << "ImageCache...\n";
    imgcache=new ImageCache();
    cout << "SoundCache...\n";
    sndcache=new SoundCache();
    cout << "GraphicsEngine...\n";
    gfxeng=new GraphicsEngine();
    cout << "SoundEngine...\n";
    sfxeng=new SoundsEngine();
    cout << "Fonts...\n";
    font=new Font(imgcache->loadImage(1,"font_arial_white_16_01.png").surface);
    font2=new Font(imgcache->loadImage(1,"font_arial_red_16_01.png").surface);
    cout << "InputHandler...\n";
    input=new InputHandler();
    cout << "Initializing Scenario...\n";
    scenario=new Scenario();

    startScreen();

    while (true) {
        input->update();
        scenario->physic->update();
        gfxeng->draw();
        SDL_Delay(1);
    }

    quitGame(-2);
}
コード例 #23
0
ファイル: events.cpp プロジェクト: jaeyeonkim/scummvm-kor
void ZVision::processEvents() {
	while (_eventMan->pollEvent(_event)) {
		switch (_event.type) {
		case Common::EVENT_LBUTTONDOWN:
			onMouseDown(_event.mouse);
			break;

		case Common::EVENT_LBUTTONUP:
			onMouseUp(_event.mouse);
			break;

		case Common::EVENT_RBUTTONDOWN:
			// TODO: Inventory logic
			break;

		case Common::EVENT_MOUSEMOVE:
			onMouseMove(_event.mouse);
			break;

		case Common::EVENT_KEYDOWN:
			switch (_event.kbd.keycode) {
			case Common::KEYCODE_d:
				if (_event.kbd.hasFlags(Common::KBD_CTRL)) {
					// Start the debugger
					_console->attach();
					_console->onFrame();
				}
				break;
			case Common::KEYCODE_q:
				if (_event.kbd.hasFlags(Common::KBD_CTRL))
					quitGame();
				break;
			default:
				break;
			}

			_scriptManager->onKeyDown(_event.kbd);
			break;
		case Common::EVENT_KEYUP:
			_scriptManager->onKeyUp(_event.kbd);
			break;
		default:
			break;
		}
	}
}
コード例 #24
0
ファイル: Minesweeper.cpp プロジェクト: joao29a/Minesweeper
void Minesweeper::keyPressedDown(SDLKey key){
  if (key == SDLK_ESCAPE)
    quitGame();
  else if (key == SDLK_r)
    resetGame();
  else if (key == SDLK_s){
    cheat << "s";
  }
  else if (key == SDLK_h){
    cheat << "h";
  }
  else if (key == SDLK_o){
    cheat << "o";
  }
  else if (key == SDLK_w){
    cheat << "w";
  }
}
コード例 #25
0
ファイル: script_s1.cpp プロジェクト: Bundesdrucker/scummvm
void AGOSEngine_Simon1::os1_pauseGame() {
	// 135: pause game
	_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);

	Common::KeyCode keyYes, keyNo;

	Common::getLanguageYesNo(_language, keyYes, keyNo);

	while (!shouldQuit()) {
		delay(1);
		if (_keyPressed.keycode == keyYes)
			quitGame();
		else if (_keyPressed.keycode == keyNo)
			break;
	}

	_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
}
コード例 #26
0
ファイル: moc_fugio.cpp プロジェクト: mcgregc/Fugio
int Fugio::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: startGame(); break;
        case 1: quitGame(); break;
        case 2: about(); break;
        case 3: aboutQt(); break;
        case 4: close(); break;
        default: ;
        }
        _id -= 5;
    }
    return _id;
}
コード例 #27
0
void AGOSEngine_Simon1::os1_pauseGame() {
	// 135: pause game
	_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);

	// If all else fails, use English as fallback.
	Common::KeyCode keyYes = Common::KEYCODE_y;
	Common::KeyCode keyNo = Common::KEYCODE_n;

	switch (_language) {
	case Common::RU_RUS:
		break;
	case Common::PL_POL:
		keyYes = Common::KEYCODE_t;
		break;
	case Common::HE_ISR:
		keyYes = Common::KEYCODE_f;
		break;
	case Common::ES_ESP:
		keyYes = Common::KEYCODE_s;
		break;
	case Common::IT_ITA:
		keyYes = Common::KEYCODE_s;
		break;
	case Common::FR_FRA:
		keyYes = Common::KEYCODE_o;
		break;
	case Common::DE_DEU:
		keyYes = Common::KEYCODE_j;
		break;
	default:
		break;
	}

	while (!shouldQuit()) {
		delay(1);
		if (_keyPressed.keycode == keyYes)
			quitGame();
		else if (_keyPressed.keycode == keyNo)
			break;
	}

	_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
}
コード例 #28
0
ファイル: gamemenu.cpp プロジェクト: manocha/z0mb
GameMenu::GameMenu(MainWindow *_par) {
	parent = _par;

	startAction = new QAction("Start", this);
	addAction(startAction);
	connect(startAction, SIGNAL(triggered()), this, SLOT(startGame()));
	
	quitAction = new QAction("Quit", this);
	addAction(quitAction);
	connect(quitAction, SIGNAL(triggered()), this, SLOT(quitGame()));

	addSeparator();

	nameLabel = new QLabel("Player Name: ");
	addWidget(nameLabel);
	nameEdit = new QLineEdit();
	addWidget(nameEdit);

	setMovable(false);
}
コード例 #29
0
STATE::STATE Cmenu::run(Cvao &vanilla, CshaderProgram &vanillaProgram, Cloader &loader, Copengl &opengl) {
    //This flag lets us set if we should restart the menu music next time the menu is entered
    //To start with we don't play menu music as the loading screen will have already started it and
    //we don't want to restart it.
    static bool shouldStartMenuMusic = false;
    if (shouldStartMenuMusic == true) {
        Csound::play_music(loader.get_menu_music());
    }
    //Should always be set to restart by default.
    shouldStartMenuMusic = true;

    if (init(vanilla, vanillaProgram, loader, opengl) == false) {
        return STATE::ENCOUNTERED_ERROR;
    }

    Cbutton startGame(MENU::START_GAME::X, MENU::START_GAME::Y, MENU::START_GAME::W, MENU::START_GAME::H);
    Cbutton tutorial(MENU::TUTORIAL::X, MENU::TUTORIAL::Y, MENU::TUTORIAL::W, MENU::TUTORIAL::H);
    Cbutton quitGame(MENU::QUIT_GAME::X, MENU::QUIT_GAME::Y, MENU::QUIT_GAME::W, MENU::QUIT_GAME::H);

    while (true) {
        SDL_Event event;
        SDL_WaitEvent(&event);

        if (event.type == SDL_MOUSEBUTTONDOWN) {
            float x = opengl.convert_to_opengl_from_window_x(event.button.x);
            float y = opengl.convert_to_opengl_from_window_y(event.button.y);
            if (startGame.isClicked(x, y) == true) {
                return STATE::GAMEPLAY;
            } else if (tutorial.isClicked(x, y) == true) {
                //We're going to the tutorial but will be back soon.
                //The current music should just keep going (not restart when they return to the menu).
                shouldStartMenuMusic = false;
                return STATE::TUTORIAL;
            } else if (quitGame.isClicked(x, y) == true) {
                return STATE::END_GAME;
            }
        } else if (event.type == SDL_QUIT || (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE)) {
            return STATE::END_GAME;
        }
    }
}
コード例 #30
0
void MainWindow::showEvent(QShowEvent *)
{
    // play music
    QMediaPlayer *player = new QMediaPlayer();
    player->setMedia(QUrl("qrc:/sound/Fight.mp3"));
    player->setVolume(60);
    player->play();

    // Setting the QGraphicsScene
    scene = new QGraphicsScene(0,0,960,540);
    ui->graphicsView->setScene(scene);
    ui->graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    ui->graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff );
    // Create world
    world = new b2World(b2Vec2(0.0f, -9.8f));
    // Create self listener and set to the world
    myContactListener = new myContactChecker();
    world->SetContactListener(myContactListener);
    // Setting Size
    GameItem::setGlobalSize(QSizeF(64,36), QSizeF(960,540));

    // Create manager
    mySceneManager = new sceneManager(&timer,world,scene);
    myBirdManager = new birdManager(&timer,world,scene);

    // Game process
    // set up start page
    mySceneManager->buildStartScene();
    this->buildStartButton();
    // wait user to click play button
    // go see 'onStartButton'(1st)

    //mySceneManager->buildLossScene();
    //this->buildEndButton();

    // Timer
    connect(&timer,SIGNAL(timeout()),this,SLOT(tick()));
    connect(this,SIGNAL(quitGame()),this,SLOT(QUITSLOT()));
    timer.start(100/6);

}