/// <summary> /// スプライトの作成 /// </summary> /// <param name="name">取得、または作成するスプライト名</param> /// <param name="tx">基本テクスチャーハンドル</param> /// <param name="rc">テクスチャーから切り取る短径</param> /// <param name="x">アンカー位置X</param> /// <param name="y">アンカー表示位置Y</param> /// <returns>描画するスプライトMCDrawSprite</returns> public MCSprite GetCreateSprite(string name, MCBaseTexture tx, MCRect rc, float x = float.MinValue, float y = float.MinValue) { MCSprite sprite = null; bool ret; if (tx == null) { return(null); } //===================================== // スプライト作成 MCBaseSprite spTmp; if (App.SpriteMgr.GetSpriteData(name, out spTmp)) { MCRect rect; if (spTmp.GetID() != MCSprite.SpriteID) { return(null); } sprite = (MCSprite)spTmp; if (sprite.flags.SpriteType != (int)MC_SPRITE_DATA.SIMPLE) { throw new Exception(name + " スプライトは、分割タイプ"); } sprite.GetRect(out rect); if (!(rc == rect)) { return(sprite); } } else { if (x == float.MinValue || y == float.MinValue) { sprite = MCSprite.CreateSprite(App, name, tx, rc, MC_SPRITE_ANCHOR.CENTER); } else { sprite = MCSprite.CreateSprite(App, name, tx, rc, MC_SPRITE_ANCHOR.CUSTOM, x, y); } if (sprite == null) { return(null); } } return(sprite); }