使用 SDL2 平滑(惯性)滚动?

Chr*_*tou 2 c++ scroll sdl sdl-2

我正在使用 C++为macOS构建SDL2应用程序。我需要为应用程序(如网络浏览器)进行一些“基本”滚动。我使用SDL_MouseWheel 事件实现了这一点,它为我提供了功能齐全的“类似窗口”的滚动。我正在使用 Macbook Pro,我想引入触控板的功能。

简单地说,我要求更好的滚动算法(Macbook 的触控板滚动,惯性滚动

我知道SDL_MultiGesture 事件,但我真的不知道如何把事情放在一起来达到我想要的结果。

小智 5

我遇到了同样的问题,结果是 SDL通过关闭用户默认系统中的默认值来选择退出动量滚动事件AppleMomentumScrollSupported

您可以使用以下 Objective-C++ 在您的应用程序中重新打开它,您的SDL_MouseWheel事件将变得平滑。

NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:
                            [NSNumber numberWithBool:YES], @"AppleMomentumScrollSupported",
                            nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
[appDefaults release];
Run Code Online (Sandbox Code Playgroud)