渲染和填充MobileMenuListItem

Posted on 2013-06-08 17:24  neocsl  阅读(172)  评论(0编辑  收藏  举报

  在MobileMenuElement中有var vector2D VpPos,VpSize;  分别是列表的位置和大小。然后在MobileMenuListItem中有Height和Width。分别表示每一个item的长度和宽度。

  在MobileMenuListItem中可以填充这些元素。

  我自己定义了一种文字var array<AntDrawText> Parts;

  AntDrawText是自定义的文字类,里面的Render(Canvas,Alpha);//是文字的渲染函数

  function RenderItem(MobileMenuList List,Canvas canvas,float DeltaTime)

  {

      local AntDrawText Part;

      local float Percentage,AlphaVal;   //我们定义了一个百分比和显示的Alpha值,目的是为了让人员名单两边以渐变的形式消隐

      super.RenderItem(List,Canvas,DeltaTime);

      Percentage=FMax(0,VpPos.Y)/Clip.Y;     //纵轴在屏幕的百分比

      AlphaVal=1.f;

      if(Percentage<0.2f)    //如果是在顶部20%区域

      {

                       AlphaVal=FMin(1,0.5f*Percentage);   
      }

      else

      {

        Percentage=FMax(0,VpPos.Y+height)/Canvas.ClipY; //下部的话,我们得算上其宽度

        if(Percentage>0.8)

        {

          Percentage=1-Percentage;

          AlphaVal=FMin(1,Percentage*5.0f);
        }

        
      }  

      foreach Parts(part)

      {

        Part.Render(Canvas,FClamp(AlphaVal,0,1));
      }


  }