多点触控不适用于Windows Phone 8.1设备

时间:2015-01-26 14:52:05

标签: c# c++ windows-phone-8.1 cocos2d-x cocos2d-x-3.0

我有真正的设备诺基亚Lumia 730(Windows Phone 8.1)用于测试我的游戏cocos2d-x。而且我发现多点触控不起作用。

首先是示例代码:

auto listener = EventListenerTouchAllAtOnce::create();

listener->onTouchesBegan = [&](std::vector touches, Event* event){
log("onTouchesBegan: %d", touches.size());
}

listener->onTouchesMoved = [&](std::vector touches, Event* event){
log("onTouchesMoved: %d", touches.size());
}

listener->onTouchesEnded = [&](std::vector touches, Event* event){
log("onTouchesEnded: %d", touches.size());
}

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

无论我用多少手指触摸它总是说1。 我在Android(三星Galaxy s3)上运行了相同的应用程序并且运行良好。

我发现没有必要/没有办法在Windows手机上启用多点触控,默认情况下它已经启用。

其次,我在win8.1-xaml项目中进行了简单测试(没有测试win8.1-universal,无论如何都不能使用它,因为缺少像admob这样的第三方库支持):

Touch.FrameReported += Touch_FrameReported;

void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
if (Visibility == Visibility.Collapsed)
return;
TouchPointCollection pointCollection = e.GetTouchPoints(this);
Debug.WriteLine("points touched: " + pointCollection.Count);
}

这实际上有效并打印正确的值。 因此,同时运行这两段代码会产生以下结果:

  

onTouchesBegan:1< - cocos2d-x part

     

点动:2< - c#项目部分

科科斯认为只有一次触摸,但是wp知道还有更多(2)。

帮助!

0 个答案:

没有答案