当前位置: 首页>>代码示例>>C++>>正文


C++ Tetris::handleInput方法代码示例

本文整理汇总了C++中Tetris::handleInput方法的典型用法代码示例。如果您正苦于以下问题:C++ Tetris::handleInput方法的具体用法?C++ Tetris::handleInput怎么用?C++ Tetris::handleInput使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tetris的用法示例。


在下文中一共展示了Tetris::handleInput方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: start

void Game::start(const int TICKS_PER_SECOND, const int MAX_FRAMESKIP) {

    bool quit = false;
    const int SKIP_TICKS = 1000 / TICKS_PER_SECOND;
    Uint32 next_tick = SDL_GetTicks();

	Uint32 fps_ticks = SDL_GetTicks();
	Uint32 fps = 0;
	SDL_Rect fpsRenderRect = { 10, 10, 50, 30 };
    SDL_Color fpsColor = {255, 255, 255, 255};

    int loops;
    float interpolation;
	Tetris tetris;
	tetris.init();
    SDL_Event e;
    
    GLuint MatrixID = glGetUniformLocation(_programID, "mvp");
    
    bool moveUp = false;
    bool moveDown = false;
    bool moveLeft = false;
    bool moveRight = false;
    float testValY = 0.0f;
    float testValX = 0.0f;
    bool projectionMod = false;
    float angle = 0.0f;
    float prevAngle = angle;
    
    glm::mat4 Projection = glm::perspective(glm::radians(90.0f), _screen.x / _screen.y, 0.1f, 100.0f);
    
    glm::mat4 View = glm::lookAt(
                                 glm::vec3(0, 0, 1),
                                 glm::vec3(0, 0, 0),
                                 glm::vec3(0, 1, 0)
                                 );
    
    glm::mat4 Translate = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f));
    
    glm::mat4 Scale = glm::scale(glm::mat4(1.0f), glm::vec3(1.0));

    glm::mat4 Rotate = glm::rotate(glm::mat4(1.0f), 0.0f, glm::vec3(0.0f));
    
    glm::mat4 Model = glm::mat4(1.0f);
    
    glm::mat4 MVP = Projection * View * Model;

    while(!quit) {
        loops = 0;
        while (SDL_GetTicks() > next_tick && loops < MAX_FRAMESKIP) {

			if (SDL_GetTicks() > fps_ticks) {
				float fps_delta = (SDL_GetTicks() - fps_ticks) / 1000.0f;
				fps = Uint32(1.0 / fps_delta);
			}

            while(SDL_PollEvent(&e)) {
                if (e.type == SDL_QUIT) {
                    quit = true;
                }
                if (e.type == SDL_KEYDOWN) {
                    switch( e.key.keysym.sym ) {
                        case SDLK_UP:
                            moveUp = true;
                            break;
                        case SDLK_DOWN:
                            moveDown = true;
                            break;
                        case SDLK_LEFT:
                            moveLeft = true;
                            break;
                        case SDLK_RIGHT:
                            moveRight = true;
                            break;
                        case SDLK_RETURN:
                            projectionMod = !projectionMod;
                        default:
                            break;
                    }
                }
                if (e.type == SDL_KEYUP) {
                    switch( e.key.keysym.sym ) {
                        case SDLK_UP:
                            moveUp = false;
                            break;
                        case SDLK_DOWN:
                            moveDown = false;
                            break;
                        case SDLK_LEFT:
                            moveLeft = false;
                            break;
                        case SDLK_RIGHT:
                            moveRight = false;
                            break;
                        default:
                            break;
                    }
                }
				tetris.handleInput(e);
            }
//.........这里部分代码省略.........
开发者ID:SuperiorJT,项目名称:sdl-tetris,代码行数:101,代码来源:game.cpp


注:本文中的Tetris::handleInput方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。