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之前