0

我们有一个使用 CocosSharp 编写的简单游戏。该游戏位于另一个 Xamarin.Forms 应用程序中。当玩家点击玩游戏时,我们会将他们带到启动画面。在 iOS 上,此屏幕立即显示,但在 Android 上,屏幕仅黑屏约 15 秒。音乐几乎立即在两个平台上播放。

下面是从 CocosSharpView 的 ViewCreated 事件中调用的。

InitializeAudio();
var scene = new Scenes.SplashScene(GameView);
GameView.RunWithScene(scene);

挂断似乎是在创建标签时。以下需要大约 10 秒才能完成,其中 99% 在第一个标签的构造函数中。我们在构造函数中调用我们的 CreateText。

    private void CreateText()
    {
        var label = new CCLabel("Text 1", "BD_CARTOON_SHOUT.TTF", 80)
        {
            PositionX = layer.ContentSize.Width / 2.0f,
            PositionY = layer.ContentSize.Height / 1.5f,
            Color = CCColor3B.DarkGray
        };
        layer.AddChild(label);

        label = new CCLabel("Text 2", "BD_CARTOON_SHOUT.TTF", 60)            
        {
            PositionX = layer.ContentSize.Width / 2.0f,
            PositionY = 50f,
            Color = CCColor3B.DarkGray
        };

        layer.AddChild(label);
    }

请记住,这只发生在 Android 上。提前致谢!

4

1 回答 1

0

几周前我遇到了同样的问题。问题是 CCLabel 构造函数,它不知道您使用的是哪种字体,因此在最终尝试最后一种正确的字体之前尝试了所有其他类型。您需要在 CCLabel 构造函数中指定字体类型,如下所示:

    var label = new CCLabel("Text 1", "BD_CARTOON_SHOUT.TTF", 80, CCLabelFormat.SystemFont);


希望能帮助到你。

于 2017-12-04T15:55:44.053 回答