如何在 CocosSharp (Android) 中将 CCSprite 缩放到任何分辨率?
How to scale a CCSprite to any resolution in CocosSharp (Android)?
我正在尝试将 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);
}
而且我希望在将其添加到场景时根据设备分辨率调整大小...有什么提示吗?
谢谢。
好吧,我认为为了做到这一点,您必须有另一个包含高清图像的文件夹,并且根据设备分辨率,您使用它们...但我做了以下操作,它适用于我:
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;
}
然后,我将 "scale" 值赋给我的精灵:
float scale = ResTruck(truck);
truck.Scale = scale;
就是这样:v
我正在尝试将 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);
}
而且我希望在将其添加到场景时根据设备分辨率调整大小...有什么提示吗?
谢谢。
好吧,我认为为了做到这一点,您必须有另一个包含高清图像的文件夹,并且根据设备分辨率,您使用它们...但我做了以下操作,它适用于我:
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;
}
然后,我将 "scale" 值赋给我的精灵:
float scale = ResTruck(truck);
truck.Scale = scale;
就是这样:v