无法在Xamarin.Forms中渲染CocosSharpView

时间:2016-11-21 10:59:35

标签: xaml xamarin xamarin.forms cocossharp

我在使用CocosSharp的基础时遇到了问题 - 使用Xamarin.Forms进行渲染。 拥有版本1.7.1中的CocosSharp和Xamarin 2.3.2.127。 我的CocosSharpView(根据代码或xaml创建)根本不调用ViewCreated事件。更重要的是,直接转换为CCGameView会引发编译错误:

Error CS0039: Cannot convert type 'CocosSharp.CocosSharpView' to 'CocosSharp.CCGameView' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion

此外,我在CocosSharpView ViewCreated 事件中将直接元素强制转换为强制转换:

private void HandleViewCreated(object sender, EventArgs e)
    {
        var gameView = sender as CCGameView;
        if (gameView == null) return;

        (...)
    }

但是,永远不会调用该事件,视图永远不会呈现。我的 xaml 文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:cf="clr-namespace:CocosSharp;assembly=CocosSharp.Forms"
    x:Class="LocationTeacher.MainPage">
  <Grid x:Name="MainGrid">
    <Grid.RowDefinitions>
      <RowDefinition Height="1*" />
      <RowDefinition Height="1*" />
    </Grid.RowDefinitions>
    <cf:CocosSharpView x:Name="CocosView"
                         Grid.Row="0"
                         ResolutionPolicy="ShowAll"
                         HorizontalOptions="FillAndExpand"
                         VerticalOptions="FillAndExpand"
                         BackgroundColor="Transparent" />
    <StackLayout Grid.Row="1">
      <Button Text="Move Circle Left" />
      <Button Text="Move Circle Right" />
    </StackLayout>
  </Grid>
</ContentPage>

我的代码背后:

public partial class MainPage : ContentPage
{
    private GameScene gameScene;

    public MainPage()
    {
        InitializeComponent();
        CocosView.ViewCreated += HandleViewCreated;
    }

    private void HandleViewCreated(object sender, EventArgs e)
    {
        var gameView = sender as CCGameView;
        if (gameView == null) return;

        (...)
    }
}

有人遇到同样的问题吗? (并设法解决它,如果是 - 那么如何?)

编辑:解决方案确实非常简单......说这个很愚蠢,但显然我没有在我的模拟器中启用硬件加速(使用主机GPU),因此渲染根本没有发生......启用一切似乎正常工作。 对于这种混乱感到抱歉,但如果有人遇到类似的问题,这可能会有所帮助。

0 个答案:

没有答案