Exemplo n.º 1
0
        /**
         * 配下の描画オブジェクトを全て描画する
         * @param canvas
         * @param paint
         * @return true:再描画あり / false:再描画なし
         */
        public bool draw(Graphics g)
        {
            bool redraw = false;
            SortedDictionary <int, DrawList> lists = mDrawList;

            // 削除要求のかかったオブジェクトを削除する
            removeRequestedList();

            //if (hoverObj != null)
            //{
            //    hoverObj.IsHover = ture;
            //}

            foreach (DrawList list in lists.Values)
            {
                // 毎フレームの処理
                DoActionRet ret = list.doAction();
                if (ret == DoActionRet.Done)
                {
                    redraw = true;
                    break;
                }
                else if (ret == DoActionRet.Redraw)
                {
                    redraw = true;
                }
            }


            // 奥から描画するので、キーが大きい(優先度が低い)順で描画(キーを降順で描画)
            List <int> _list = lists.Keys.ToList <int>();

            // 降順ソート
            _list.Sort((a, b) => b - a);

            foreach (int key in _list)
            {
                if (lists[key].draw(g))
                {
                    redraw = true;
                }
            }

            drawDebugPoint(g);

            return(redraw);
        }
Exemplo n.º 2
0
        /**
         * 毎フレームの処理
         * @return
         */
        public DoActionRet doAction()
        {
            DoActionRet ret = DoActionRet.None;

            foreach (UDrawable obj in list)
            {
                DoActionRet _ret = obj.doAction();
                switch (_ret)
                {
                case DoActionRet.Done:
                    return(_ret);

                case DoActionRet.Redraw:
                    ret = _ret;
                    break;
                }
            }
            return(ret);
        }