安卓启动的CocosSharp游戏需要很长时间才能绘制图形



我们有一个用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);
    }

请记住,这只发生在安卓上。提前感谢!

几周

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

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


希望对您有所帮助。

最新更新