Пример #1
0
    void Awake()
    {
        tk2dSprite sprite = t_floor.GetComponent <tk2dSprite>();

        f_spriteX = sprite.GetUntrimmedBounds().size.x *t_floor.localScale.x;
        if (Bird.isPlay)
        {
            //设置初始位置
            floorQueue       = new Queue <Transform>(i_numOfObject);
            barrierQueue     = new Queue <Transform>(4);
            barrierNextPos   = transform.localPosition;
            barrierNextPos.z = 0f;
            barrierNextPos.x = 10f;
            floorNextPos     = transform.localPosition;
            floorNextPos.z   = 0f;
            floorNextPos.y   = -4f;
            //初始化地面
            for (i_index = 0; i_index < i_numOfObject; i_index++)
            {
                Transform tf = (Transform)Instantiate(t_floor);
                tf.localPosition = floorNextPos;
                tf.tag           = "floor";
                //横向X轴平移
                floorNextPos.x += f_spriteX;
                floorQueue.Enqueue(tf);                //加入队列中
            }
            //障碍物
            for (i_index = 0; i_index < 4; i_index++)
            {
                barrierNextPos.y = Random.Range(-6f, -2.5f);
                Transform tf = (Transform)Instantiate(t_barrier);
                tf.localPosition  = barrierNextPos;
                tf.tag            = "barrier";
                barrierNextPos.x += 3.5f;
                barrierQueue.Enqueue(tf);
            }
        }
    }
Пример #2
0
    public void OnSceneGUI()
    {
        if (tk2dPreferences.inst.enableSpriteHandles == false || !tk2dEditorUtility.IsEditable(target))
        {
            return;
        }

        tk2dSprite spr    = (tk2dSprite)target;
        var        sprite = spr.CurrentSprite;

        if (sprite == null)
        {
            return;
        }

        Transform t         = spr.transform;
        Bounds    b         = spr.GetUntrimmedBounds();
        Rect      localRect = new Rect(b.min.x, b.min.y, b.size.x, b.size.y);

        // Draw rect outline
        Handles.color = new Color(1, 1, 1, 0.5f);
        tk2dSceneHelper.DrawRect(localRect, t);

        Handles.BeginGUI();
        // Resize handles
        if (tk2dSceneHelper.RectControlsToggle())
        {
            EditorGUI.BeginChangeCheck();
            Rect resizeRect = tk2dSceneHelper.RectControl(999888, localRect, t);
            if (EditorGUI.EndChangeCheck())
            {
                tk2dUndo.RecordObjects(new Object[] { t, spr }, "Resize");
                spr.ReshapeBounds(new Vector3(resizeRect.xMin, resizeRect.yMin) - new Vector3(localRect.xMin, localRect.yMin),
                                  new Vector3(resizeRect.xMax, resizeRect.yMax) - new Vector3(localRect.xMax, localRect.yMax));
                tk2dUtil.SetDirty(spr);
            }
        }
        // Rotate handles
        if (!tk2dSceneHelper.RectControlsToggle())
        {
            EditorGUI.BeginChangeCheck();
            float theta = tk2dSceneHelper.RectRotateControl(888999, localRect, t, new List <int>());
            if (EditorGUI.EndChangeCheck())
            {
                tk2dUndo.RecordObject(t, "Rotate");
                if (Mathf.Abs(theta) > Mathf.Epsilon)
                {
                    t.Rotate(t.forward, theta, Space.World);
                }
            }
        }
        Handles.EndGUI();

        // Sprite selecting
        tk2dSceneHelper.HandleSelectSprites();

        // Move targeted sprites
        tk2dSceneHelper.HandleMoveSprites(t, localRect);

        if (GUI.changed)
        {
            tk2dUtil.SetDirty(target);
        }
    }
Пример #3
0
 public static void ScaleAndSetSize(tk2dSprite spr,Vector2 size)
 {
     Vector3 sc=new Vector3(size.x/(spr.GetUntrimmedBounds().size.x),
                                    size.y/(spr.GetUntrimmedBounds().size.y),1f);
             spr.scale =( new Vector3(spr.scale.x * sc.x,spr.scale.y * sc.y,spr.scale.z));
 }
Пример #4
0
    public void OnSceneGUI()
    {
        if (tk2dPreferences.inst.enableSpriteHandles == false)
        {
            return;
        }

        tk2dSprite spr    = (tk2dSprite)target;
        var        sprite = spr.CurrentSprite;

        if (sprite == null)
        {
            return;
        }

        Transform t                  = spr.transform;
        Bounds    b                  = spr.GetUntrimmedBounds();
        Rect      localRect          = new Rect(b.min.x, b.min.y, b.size.x, b.size.y);
        Vector3   unscaledBoundsSize = sprite.untrimmedBoundsData[1];

        // Draw rect outline
        Handles.color = new Color(1, 1, 1, 0.5f);
        tk2dSceneHelper.DrawRect(localRect, t);

        Handles.BeginGUI();
        // Resize handles
        if (tk2dSceneHelper.RectControlsToggle())
        {
            EditorGUI.BeginChangeCheck();
            Rect resizeRect = tk2dSceneHelper.RectControl(999888, localRect, t);
            if (EditorGUI.EndChangeCheck())
            {
                Vector3 newScale = new Vector3(resizeRect.width / unscaledBoundsSize.x, resizeRect.height / unscaledBoundsSize.y, spr.scale.z);
                if (newScale != spr.scale)
                {
                    Undo.RegisterUndo(new Object[] { t, spr }, "Resize");
                    float   factorX = (Mathf.Abs(spr.scale.x) > Mathf.Epsilon) ? (newScale.x / spr.scale.x) : 0.0f;
                    float   factorY = (Mathf.Abs(spr.scale.y) > Mathf.Epsilon) ? (newScale.y / spr.scale.y) : 0.0f;
                    Vector3 offset  = new Vector3(resizeRect.xMin - localRect.xMin * factorX,
                                                  resizeRect.yMin - localRect.yMin * factorY, 0.0f);
                    Vector3 newPosition = t.TransformPoint(offset);
                    if (newPosition != t.position)
                    {
                        t.position = newPosition;
                    }
                    spr.scale = newScale;
                    EditorUtility.SetDirty(spr);
                }
            }
        }
        // Rotate handles
        if (!tk2dSceneHelper.RectControlsToggle())
        {
            EditorGUI.BeginChangeCheck();
            float theta = tk2dSceneHelper.RectRotateControl(888999, localRect, t, new List <int>());
            if (EditorGUI.EndChangeCheck())
            {
                Undo.RegisterUndo(t, "Rotate");
                if (Mathf.Abs(theta) > Mathf.Epsilon)
                {
                    t.Rotate(t.forward, theta);
                }
            }
        }
        Handles.EndGUI();

        // Sprite selecting
        tk2dSceneHelper.HandleSelectSprites();

        // Move targeted sprites
        tk2dSceneHelper.HandleMoveSprites(t, localRect);
    }
Пример #5
0
	public void Initialize(string spriteName){
		m_sprite = transform.GetChild(0).GetComponent<tk2dSprite>();
		m_sprite.SetSprite(spriteName);
		
		size = new Vector2(m_sprite.GetUntrimmedBounds().size.x, m_sprite.GetUntrimmedBounds().size.y); 
	}