我们有一个用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);
希望对您有所帮助。