0

我在使用 CocosSharp 的基础时遇到问题 - 使用 Xamarin.Forms 进行渲染。在版本 1.7.1 和 Xamarin 2.3.2.127 中有 CocosSharp。根本不为我的 CocosSharpView 调用 ViewCreated 事件(从代码或 xaml 创建)。更重要的是,直接转换为 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),渲染根本没有发生......启用后一切似乎正常工作。很抱歉造成混淆,但是如果有人遇到类似问题,它可能会有所帮助。

4

0 回答 0