iOS上的OpenFeint滚动视图中的触摸问题

时间:2011-04-19 02:38:46

标签: cocoa-touch ios uiscrollview openfeint

到目前为止,我一直在寻找并询问各地,无济于事。我有一个游戏,我将OpenFeint放入其中,我在OpenFeint的仪表板中遇到滚动视图问题。排行榜和成就(以及其他当前不相关的)的滚动视图,并且在每个中都可以滚动,但它似乎永远不会得到任何触摸结束事件。当你放手时,内容就会保持原样,即使它在视图之外 - 它也不会反弹。当你再次触摸时,它会立即跳回来,并且可以再次滚动。

由此导致的更大问题是,您通常无法在滚动视图中选择任何内容(我猜它们是通过触摸结束事件选择的)。我能够选择两个手指和大量敲击的东西,但实际上它不起作用。我知道这是我的应用程序的错,因为它在示例应用程序中工作正常。

相关细节:该应用程序使用SDL(1.3中的git快照,我必须自己编译并可以提供任何相关的源代码),OpenGL,几乎完全是C ++。我正在使用OpenFeint 2.10(最新),XCode 4.0.2(最新)和iOS 4.3.2(在模拟器中;在我的实际设备上稍微旧版本)。我想我已经做到这一点,所以游戏没有检查事件,而OF仪表板出现以防万一是问题,但要么我失败了,要么没有效果。

以下是模拟器中卡住滚动视图的屏幕截图: http://www.happyspork.com/pics/of_scrollview.png

2 个答案:

答案 0 :(得分:1)

虽然this tutorial用于将Cocos2D与Openfeint集成,但它解决了类似的问题,其中OpenFeint仪表板的输入变得乱码:

  

特别注意dashboardDidAppear和dashboardDidDisappear方法。你会   看到我们暂时暂停Cocos2D导演,然后重新启用它   仪表板消失了。这是一个关键步骤,否则输入可能会   显示仪表板时不一致甚至不捕获。但通过暂停   导演,我们确保仪表板捕获所有用户输入。

我不知道SDL是否具有类似的“暂停”功能,但以类似的方式调用它可能会解决您的问题。

以下是该示例中的相关代码:

- (void)dashboardDidAppear
   {
    [[Director sharedDirector] pause];
    [[Director sharedDirector] stopAnimation];
   }
- (void)dashboardDidDisappear
   {
    [[Director sharedDirector] resume];
    [[Director sharedDirector] startAnimation];
   }

答案 1 :(得分:0)

如果其他人遇到此问题,此链接基本上是为我修复的: http://forums.libsdl.org/viewtopic.php?t=5678&sid=99aa9531656e0aa398ce35a7c348fe88

到目前为止,它还没有解决滚动问题,但它确实解决了选择问题,这是主要问题。也许另一个可以通过一些摆弄来修复。