C++ SDL_手指向下未正确注册

C++ SDL_手指向下未正确注册,c++,sdl,sdl-2,C++,Sdl,Sdl 2,我不知道为什么SDL\u手指向下记录 即使是简单的触摸事件。它应该登记在滑动手指下来的名字说,对吗?我使用安卓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 =

我不知道为什么
SDL\u手指向下
记录 即使是简单的触摸事件。它应该登记在滑动手指下来的名字说,对吗?我使用安卓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();
}
#包括“SDL.h”
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
SDL_Init(SDL_Init_EVERYTHING);
int r,g,b;
r=g=b=0;
SDL_窗口*窗口;
window=SDL_CreateWindow(“S”,SDL_WINDOWPOS_未定义,SDL_WINDOWPOS_未定义,720,1320,SDL_window_可调整大小);
SDL_表面*屏幕=SDL_GetWindowSurface(窗口);
Uint32白色=SDL_MapRGB(屏幕->格式,255,255);
SDL_FillRect(屏幕,空,白色);
SDL_更新内表面(窗口);
SDL_事件;
bool running=true;
(跑步时)
{
while(SDL_事件和事件))
{
if(event.type==SDL\u FINGERDOWN)
{
运行=错误;
打破
}
//如果结束
}//结束内部时
}
SDL_窗口(窗口);
SDL_退出();
}

您误解了SDL\u FINGERDOWN和SDL\u FINGERUP的含义。
当您将手指放在触摸屏上时,这是SDL\U FINGERDOWN类型的事件。当您将手指从触摸屏上抬起时,这是SDL\U FINGERUP类型的事件。

SDL\U FINGERDOWN与SDL\U KEYDOWN类型相同。它正在检测从向上->向下的状态转换,因此在手指按压时应该发生一次。如果要检测手指是否移动,应该使用SDL_FINGERMOTION。这应该出现在SDL_FINGERDOWN之后和SDL_FINGERUP之前