Пример #1
0
    /// <summary>
    /// 创建单个背景精灵
    /// </summary>
    /// <param name="spName"></param>
    public BgSpriteObject CreateBgSpriteObject(string spName)
    {
        BgSpriteObject spObj = ObjectsPool.GetInstance().GetPoolClassAtPool <BgSpriteObject>();

        spObj.Init(_foregroundLayerTf);
        spObj.SetSprite(spName);
        AddBgSpriteObject(spObj);
        return(spObj);
    }
    /// <summary>
    /// 设置前景对象的速度
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBgSpriteObjectVelocity(ILuaState luaState)
    {
        BgSpriteObject spObj    = luaState.ToUserData(-3) as BgSpriteObject;
        float          velocity = (float)luaState.ToNumber(-2);
        float          angle    = (float)luaState.ToNumber(-1);

        luaState.Pop(3);
        spObj.SetVelocity(velocity, angle);
        return(0);
    }
    /// <summary>
    /// 加速运动
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBgSpriteObjectAcce(ILuaState luaState)
    {
        BgSpriteObject spObj = luaState.ToUserData(-3) as BgSpriteObject;
        float          acce  = (float)luaState.ToNumber(-2);
        float          angle = (float)luaState.ToNumber(-1);

        luaState.Pop(3);
        spObj.SetAcce(acce, angle);
        return(0);
    }
    /// <summary>
    /// 设置前景对象的缩放
    /// <para>spObj 对象本体</para>
    /// <para>scaleX</para>
    /// <para>scaleY</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBgSpriteObjectScale(ILuaState luaState)
    {
        BgSpriteObject spObj  = luaState.ToUserData(-3) as BgSpriteObject;
        float          scaleX = (float)luaState.ToNumber(-2);
        float          scaleY = (float)luaState.ToNumber(-1);

        luaState.Pop(3);
        spObj.SetScale(scaleX, scaleY, 1);
        return(0);
    }
    /// <summary>
    /// 设置前景对象的位置
    /// <para>spObj 对象本体</para>
    /// <para>posX</para>
    /// <para>posY</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBgSprteObjectPos(ILuaState luaState)
    {
        BgSpriteObject spObj = luaState.ToUserData(-3) as BgSpriteObject;
        float          posX  = (float)luaState.ToNumber(-2);
        float          posY  = (float)luaState.ToNumber(-1);

        luaState.Pop(3);
        spObj.SetToPos(posX, posY);
        return(0);
    }
    /// <summary>
    /// 延时之后前景对象逐渐消失的效果
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int BgSpriteObjectDoFade(ILuaState luaState)
    {
        BgSpriteObject spObj        = luaState.ToUserData(-3) as BgSpriteObject;
        int            fadeDuration = luaState.ToInteger(-2);
        int            fadeDelay    = luaState.ToInteger(-1);

        luaState.Pop(3);
        spObj.DoFade(fadeDuration, fadeDelay);
        return(0);
    }
    /// <summary>
    /// 有限制的加速运动
    /// <para>acce</para>
    /// <para>angle</para>
    /// <para>duration</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBgSpriteObjectAcceWithLimitation(ILuaState luaState)
    {
        BgSpriteObject spObj    = luaState.ToUserData(-4) as BgSpriteObject;
        float          acce     = (float)luaState.ToNumber(-3);
        float          angle    = (float)luaState.ToNumber(-2);
        int            duration = luaState.ToInteger(-1);

        luaState.Pop(4);
        spObj.SetAcce(acce, angle, duration);
        return(0);
    }
    /// <summary>
    /// 设置前景对象的当前旋转角度
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBgSpriteObjectRotation(ILuaState luaState)
    {
        BgSpriteObject spObj  = luaState.ToUserData(-4) as BgSpriteObject;
        float          xAngle = (float)luaState.ToNumber(-3);
        float          yAngle = (float)luaState.ToNumber(-2);
        float          zAngle = (float)luaState.ToNumber(-2);

        luaState.Pop(4);
        spObj.SetRotation(new Vector3(xAngle, yAngle, zAngle));
        return(0);
    }
Пример #9
0
 public override void Update(int curFrame)
 {
     if (curFrame % 30 == 0)
     {
         BgSpriteObject spObj = CreateBgSpriteObject("Common/MapleLeaf1");
         float          posX  = Random.Range(80, 150);
         float          posY  = Random.Range(200, 225);
         spObj.SetToPos(posX, posY);
         float scale = Random.Range(0.2f, 1);
         spObj.SetScale(new Vector3(scale, scale));
         spObj.SetVelocity(Random.Range(1f, 3f), Random.Range(-150, -30));
         spObj.SetSelfRotateAngle(new Vector3(0, 0, Random.Range(1f, 2f)));
         spObj.DoFade(Random.Range(90, 180), Random.Range(180, 300));
     }
     if (_isCameraMoving)
     {
         MoveCamera();
     }
     base.Update(curFrame);
 }
Пример #10
0
 /// <summary>
 /// 将背景精灵添加到列表中
 /// </summary>
 /// <param name="spObj"></param>
 public void AddBgSpriteObject(BgSpriteObject spObj)
 {
     _spriteObjList.Add(spObj);
     _spriteObjCount++;
 }