Esempio n. 1
0
        public GifCommand(string gifFile)
        {
            GifFile            = gifFile.ToLower();
            CommandDescription = $"!gif {gifFile}";

            GifAnimator = new GifAnimator();
        }
Esempio n. 2
0
    //アニメーションありの初期化
    public void init(List <Sprite> aSprite, float aInterval, MapBehaviourAttribute aAttribute)
    {
        if (mAttribute != null)
        {
            return;
        }
        mAttribute = aAttribute;
        GifAnimator tGif = gameObject.AddComponent <GifAnimator>();

        tGif.setSprites(aSprite);
        tGif.setInterval(aInterval);
        tGif.play();
    }
Esempio n. 3
0
 // Use this for initialization
 void Start()
 {
     DirectoryInfo dir = new DirectoryInfo (filePath);
     FileInfo[] info = dir.GetFiles ("*.*");
     frames = new Texture2D[info.Length / 2];
     int index = 0;
     foreach (FileInfo f in info) {
         string[] name = f.Name.Split('.');
         if (f.Exists && (name[name.Length - 1].Equals("png"))) {
             string imagePath = f.Directory + "/" + f.Name;
             //Debug.Log(imagePath);
             frames[index] = LoadTexture(imagePath);
             index++;
         }
     }
     animator = this.GetComponent<GifAnimator> ();
     animator.startMovie (frames);
 }
Esempio n. 4
0
    public override void initImage(Arg aArg, string aDirectory)
    {
        createChild();
        mAnimator = MyBehaviour.create <GifAnimator>();
        mAnimator.gameObject.transform.SetParent(mChild.transform, false);
        Arg tAnimationData = aArg.get <Arg>("animation");

        //更新インターバル
        mAnimator.setInterval(tAnimationData.get <float>("interval"));
        //画像のpivot
        Vector2 tPivot = new Vector2(aArg.ContainsKey("pivotX") ? aArg.get <float>("pivotX") : 0.5f,
                                     aArg.ContainsKey("pivotY") ? (aArg.get <float>("pivotY")) : 0.5f);
        //画像
        List <Sprite> tSprites = new List <Sprite>();

        if (tAnimationData.ContainsKey("tile"))//コマを座標指定
        {
            int tWidth  = (aArg.ContainsKey("width")) ? aArg.get <int>("width") : 1;
            int tHeight = (aArg.ContainsKey("height")) ? aArg.get <int>("height") : 1;
            foreach (List <int> tXY in tAnimationData.get <List <List <int> > >("tile"))
            {
                tSprites.Add(ChipLoader.load(aDirectory + "/" + aArg.get <string>("file"), tXY[0], tXY[1], tWidth, tHeight));
            }
        }
        else if (tAnimationData.get <string>("direction") == "horizontal")//コマが横方向
        {
            for (int i = 0; i < tAnimationData.get <int>("frame"); i++)
            {
                tSprites.Add(ChipLoader.load(aDirectory + "/" + aArg.get <string>("file"), aArg.get <int>("x") + i * aArg.get <int>("width"), aArg.get <int>("y"),
                                             aArg.get <int>("width"), aArg.get <int>("height"), tPivot));
            }
        }
        else  //コマが縦方向
        {
            for (int i = 0; i < tAnimationData.get <int>("frame"); i++)
            {
                tSprites.Add(ChipLoader.load(aDirectory + "/" + aArg.get <string>("file"), aArg.get <int>("x"), aArg.get <int>("y") + i * aArg.get <int>("height"),
                                             aArg.get <int>("width"), aArg.get <int>("height"), tPivot));
            }
        }
        mAnimator.setSprites(tSprites);
        mAnimator.play();
    }
Esempio n. 5
0
    ///初期化
    public void init(string aAiName, Dictionary <string, List <Sprite> > aSprites, Vector2 aColliderSize, Direction?aDirection = null, string aName = "")
    {
        if (mSprites != null)
        {
            return;
        }
        mSprites = aSprites;
        mAi      = createAi(aAiName);
        mState   = new StandState(this);
        //名前
        mName           = aName;
        gameObject.name = (mName == "") ? "NPC" : mName;
        //親要素
        gameObject.transform.parent = GameObject.Find("mapSpeakers").transform;
        //向き
        mDirection = (aDirection == null) ? new Direction(Direction.direction.Down) : (Direction)aDirection;
        //初期画像
        mGifAnimator = MyBehaviour.create <GifAnimator>();
        mGifAnimator.transform.parent = gameObject.transform;
        changeImage("stand" + mDirection.str);
        mGifAnimator.setInterval(0.2f);
        mGifAnimator.play();
        //当たり判定
        BoxCollider2D tCollider = gameObject.AddComponent <BoxCollider2D>();

        tCollider.offset = new Vector2(0, ((Vector2)aColliderSize).y / 2);
        tCollider.size   = aColliderSize;
        //マップ属性
        gameObject.AddComponent <MapAttributeBehaviour>().setAttribute(MapBehaviourAttribute.Attribute.character);
        //rigidbody
        Rigidbody2D tRigid = gameObject.AddComponent <Rigidbody2D>();

        tRigid.bodyType = RigidbodyType2D.Kinematic;
        //移動コンポーネント
        mMoveComponent = gameObject.AddComponent <MapBehaviourMoveComponent>();
    }
Esempio n. 6
0
 public void Execute(OnMessageReceivedArgs e, string memeSong = null, string gifFile = null)
 {
     GifAnimator.Animate(gifFile);
 }