0

好的,所以我必须为比赛创建一个游戏,但我遇到了以下问题:我必须获得 Acceleromter 的 x、y、z 轴。我使用 xamarin 并创建了一个 CocosSharp 游戏。我设法在 MainActivity 中获取它们,但我必须在 GameLayer.Cs 中获取它们。在这里我必须使用CCEventAccelerationCCAccelerometer但它似乎不起作用。直到现在我试图以这种方式获得它们

CCEventAccelerate Acl;
CCLabel label;
label = new CCLabel("Score: 0", "Arial", 20, CCLabelFormat.SystemFont);
label.PositionX = 50;
label.PositionY = 880;
label.AnchorPoint = CCPoint.AnchorUpperLeft;
AddChild(label);

然后我尝试了

try
   {
      label.text = Acl.Acceleration.X.ToString();
   }
catch(Exception ex)
{
label.text = ex.ToString();
}
4

1 回答 1

0

您需要激活加速度计,并注册一个事件监听器,请参见下面的示例。查看 CocosSharp 测试项目了解更多详情: https ://github.com/mono/CocosSharp/blob/master/tests/tests/classes/tests/AccelerometerTest/AccelerometerTest.cs

GameView.Accelerometer.Enabled = true;
var accelListener = new CCEventListenerAccelerometer();
accelListener.OnAccelerate = DidAccelerate;
AddEventListener(accelListener); 

public void DidAccelerate(CCEventAccelerate accelEvent)
{
   label.text = accelEvent.Acceleration.X.ToString();
}
于 2016-04-15T09:52:50.050 回答