本文整理汇总了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);
}
//.........这里部分代码省略.........