首页 > 解决方案 > SDL_FINGERDOWN 未正确注册

问题描述

我不为什么SDL_FINGERDOWN记录甚至简单的触摸事件。它应该像名字所说的那样在滑动手指上注册,对吧?我使用 android N 进行测试。这是我的代码

#include "SDL.h"
#include <SDL2/SDL.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
  SDL_Init(SDL_INIT_EVERYTHING);
  int r, g, b;
  r = g = b = 0;
  SDL_Window *window;
  window = SDL_CreateWindow("S", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 720, 1320, SDL_WINDOW_RESIZABLE);
  SDL_Surface *screen = SDL_GetWindowSurface(window);
  Uint32 white = SDL_MapRGB(screen->format, 255, 255, 255);
  SDL_FillRect(screen, NULL, white);
  SDL_UpdateWindowSurface(window);
  SDL_Event event;
  bool running = true;
  while (running)
  {
    while (SDL_PollEvent(&event))
    {
      if (event.type == SDL_FINGERDOWN)
      {
        running = false;
        break;
      }
      //end if
    } //end inner while
  }
  SDL_DestroyWindow(window);
  SDL_Quit();
}

标签: c++sdlsdl-2

解决方案


您误解了 SDL_FINGERDOWN 和 SDL_FINGERUP 的含义。当您将手指放在触摸屏上时,这是 SDL_FINGERDOWN 类型的事件。当您从触摸屏上抬起手指时,这是 SDL_FINGERUP 类型的事件。


推荐阅读