Как масштабировать CCSprite до любого разрешения в CocosSharp (Android)?

#c# #android #scale #ccsprite #cocossharp

#c# #Android #масштаб #ccsprite #cocossharp

Вопрос:

Я пытаюсь масштабировать CCSprite до любого разрешения в CocosSharp, вот что у меня получилось:

 void AddTruck ()
    {
        var spriteSheet = new CCSpriteSheet ("animations/truck.plist");
        var animationFrames = spriteSheet.Frames.FindAll ((x) => x.TextureFilename.StartsWith ("frame"));

        walkAnim = new CCAnimation (animationFrames, 0.1f);
        walkRepeat = new CCRepeatForever (new CCAnimate (walkAnim));
        truck = new CCSprite (animationFrames.First ()) { Name = "Truck" };
        truck.Scale = 0.70f;

        AddChild (truck);
    }
  

И я хочу, чтобы при добавлении его в сцену его размер изменялся в соответствии с разрешением устройства… Какие-нибудь советы?

Спасибо.

Ответ №1:

Ну, я думаю, что для этого у вас должна быть другая папка с HD-изображениями, и в соответствии с разрешением устройства вы их используете… Но я сделал следующее, и это сработало для меня:

         float ResTruck(CCSprite sprite)
    {
        float scale = 0.0f;
        float resWid = CCScene.DefaultDesignResolutionSize.Width;
        float resHei = CCScene.DefaultDesignResolutionSize.Height;

        if (resWid > 500)
            scale = 0.70f;
        else if (resWid > 1080)
            scale = 0.90f;
        else if (resWid > 1300)
            scale = 1.0f;


        return scale;
    }
  

И затем я присваиваю значение «масштаб» своему спрайту:

             float scale = ResTruck(truck);

        truck.Scale = scale;
  

И это все: v