Exemplo n.º 1
0
void State::Manager::Run(State& entranceState) {
	SDL_setenv("UBUNTU_PLATFORM_API_BACKEND", "touch_mirclient", 1);
	accel = ua_sensors_accelerometer_new();
	ua_sensors_accelerometer_set_reading_cb(accel, tilt_cb, 0);
	ua_sensors_accelerometer_enable(accel);

	current = &entranceState;
	current->Enter();
	//clock_t ticks = clock();
	while (!quit) {
		PollEvent();
		Tilt();
		if (next)
			EnterNextState();
		CallLoopFunction();
		if (param.framerate != 0) {
			/**clock_t nticks = clock();
			int32_t sleeptime = (CLOCKS_PER_SEC/param.framerate - (nticks-ticks)) / 1000;
			if (sleeptime > 0)
				SDL_Delay(sleeptime);*/
			SDL_Delay(1);
			//ticks = nticks;
		}
	}
	current->Exit();
	previous = current;
	current = NULL;
}
Exemplo n.º 2
0
    bool ProcessEvent(Event* event){
        if (current_state_ == 0) {
            return false;
        }

        // ConsumeEvent may change the next_state_
        if (!ConsumeEvent(event)) {
            return false;
        }

        if (next_state_) {
            EnterNextState();
        }
        return true;
    }
Exemplo n.º 3
0
 void SetInitialState(IStateBase* initial_state) {
     StateTransition(initial_state);
     EnterNextState();
 }