Example #1
0
GameState events_sim_paused(GameVars *game_vars) {
    SDL_Event ev;
    while (SDL_PollEvent(&ev)) {
        GameEvent gameev = events_parse(&ev);
        switch (gameev) {
        case EV_EXIT:
            return STATE_EXIT;
        case EV_KEY_ESC:
            return STATE_SIM_MENU;
        case EV_KEY_SPACE:
            return STATE_SIM_RUNNING;
        case EV_KEY_RIGHT:
            grid_logic(game_vars->grid);
            break;
        case EV_MOUSE_L_D:
            if (mouse_state == MOUSESTATE_LEFT_DOWN) {
                grid_set_alive(game_vars->grid, ev.motion.x/game_vars->settings.cell_size, ev.motion.y/game_vars->settings.cell_size);
            }
            break;
        case EV_MOUSE_R_D:
            if (mouse_state == MOUSESTATE_RIGHT_DOWN) {
                grid_set_dead(game_vars->grid, ev.motion.x/game_vars->settings.cell_size, ev.motion.y/game_vars->settings.cell_size);
            }
            break;
        case EV_MOUSE_MOTION:
            switch (mouse_state) {
            case MOUSESTATE_LEFT_DOWN:
                grid_set_alive(game_vars->grid, ev.motion.x/game_vars->settings.cell_size, ev.motion.y/game_vars->settings.cell_size);
                break;
            case MOUSESTATE_RIGHT_DOWN:
                grid_set_dead(game_vars->grid, ev.motion.x/game_vars->settings.cell_size, ev.motion.y/game_vars->settings.cell_size);
                break;
            default:
                break;
            }
            break;
        case EV_MWHEELUP:
            if (game_vars->settings.cell_size < 1024) {
                game_vars->settings.cell_size*=2;
            }
            break;
        case EV_MWHEELDOWN:
            if (game_vars->settings.cell_size > 1) {
                game_vars->settings.cell_size/=2;
            }
            break;
        case EV_RESIZE:
            Event_SetWindowSize(game_vars, ev.window.data1, ev.window.data2);
            break;
        default:
            break;
        }
    }
    return game_vars->state;
}
Example #2
0
int main(int argc, char* argv[]){
	srand(time(NULL));

	Application app;
	app.init();
	
	app.setDebug(true); //set to false when ready to deploy
	
	app.log_info("Program initialized.");
	
	SDL_Rect default_position = {0, 0, 0, 0}; //for objects that are purely logic, no rendering DO NOT MODIFY (replace default renders in this code with ones that accept const SDL_rects)
	
	
	app.log_info("Initializing and adding the AppGrid to application...");
	
	AppGridLogic grid_logic(&app, &default_position, 72, 72);
	ObjectRenderer grid_renderer;
	ApplicationObject grid_object(&app, &grid_renderer, &grid_logic);
	app.addObject(&grid_object);
	
	app.log_info("AppGrid successfully added.");	
	app.log_info("Adding target_object to application...");
	
	SDL_Rect target_rect = {0, 0, 72, 72};
	SDL_Color target_color = {200, 200, 0, 1};
	AppGridCoord target_location = {3, 1};
	AppGridObjectLogic target_logic(&app, &target_rect, &grid_logic, target_location);
	SquareRenderer target_renderer(app.getRenderer(), &target_rect, &target_color);
	ApplicationObject target_object(&app, &target_renderer, &target_logic);
	app.addObject(&target_object);
	grid_logic.addObject(&target_object, target_location);
	
	app.log_info("Target_object successfully added.");
	
	
	//the manager will change colors based on whether the player answered correctly (red = no, green = yes)
	SDL_Rect manager_rect = {0, 0, 360, 72};
	SDL_Color manager_color = {150, 150, 150, 1};
	AppGridCoord manager_location = {1, 5};
	ColorManagerLogic manager_logic(&app, &manager_rect, &grid_logic, manager_location, &target_color);
	SquareRenderer manager_renderer(app.getRenderer(), &manager_rect, &manager_color);
	ApplicationObject manager_object(&app, &manager_renderer, &manager_logic);
	app.addObject(&manager_object);
	grid_logic.addObject(&manager_object, manager_location);
	
	app.log_info("Adding option1_object to application...");
	
	SDL_Rect option1_rect = {0, 0, 72, 72};
	SDL_Color option1_color = {250, 150, 0, 1};
	AppGridCoord option1_location = {1, 3};
	ColorObjectLogic option1_logic(&app, &option1_rect, &grid_logic, option1_location, &option1_color, &manager_logic);
	SquareRenderer option1_renderer(app.getRenderer(), &option1_rect, &option1_color);
	ApplicationObject option1_object(&app, &option1_renderer, &option1_logic);
	app.addObject(&option1_object);
	grid_logic.addObject(&option1_object, option1_location);
	
	app.log_info("Option1_object successfully added.");
	app.log_info("Adding option2_object to application...");
	
	SDL_Rect option2_rect = {0, 0, 72, 72};
	SDL_Color option2_color = {150, 250, 0, 1};
	AppGridCoord option2_location = {3, 3};
	ColorObjectLogic option2_logic(&app, &option2_rect, &grid_logic, option2_location, &option2_color, &manager_logic);
	SquareRenderer option2_renderer(app.getRenderer(), &option2_rect, &option2_color);
	ApplicationObject option2_object(&app, &option2_renderer, &option2_logic);
	app.addObject(&option2_object);
	grid_logic.addObject(&option2_object, option2_location);
	
	app.log_info("Option2_object successfully added.");
	app.log_info("Adding option3_object to application...");
	
	SDL_Rect option3_rect = {0, 0, 72, 72};
	SDL_Color option3_color = {150, 50, 100, 1};
	AppGridCoord option3_location = {5, 3};
	ColorObjectLogic option3_logic(&app, &option3_rect, &grid_logic, option3_location, &option3_color, &manager_logic);
	SquareRenderer option3_renderer(app.getRenderer(), &option3_rect, &option3_color);
	ApplicationObject option3_object(&app, &option3_renderer, &option3_logic);
	app.addObject(&option3_object);
	grid_logic.addObject(&option3_object, option3_location);
	
	app.log_info("Option3_object successfully added.");
	
	
	manager_logic.addShownColor(&option1_color);
	manager_logic.addShownColor(&option2_color);
	manager_logic.addShownColor(&option3_color);
	
	
	app.log_info("Entering application loop...");
	
	app.loop();
	
	app.log_info("Application loop terminated, exiting program.");
	return 0;
}