国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MIDP游戲開發中處理文字的換行方案

2019-11-18 19:09:22
字體:
來源:轉載
供稿:網友

  在游戲中,尤其是情景類的游戲當中,往往需要大量情節介紹的文字。要在小小的手機屏幕上顯示這些文字,就必須對這些文字進行處理,使其能正確的換行,顯示在你想要顯示的寬度的范圍內。下面我就會詳細的介紹如何處理文字的換行。

  首先應該計算需要換行的位置。這里我們以文字需要顯示的寬度linewd,和“/n”為換行的標志

static public int ChangLine(String str, Font font, int linewd, boolean fullWord)
{
 // 計算需要換行的位置 str:需要顯示的文字 font:文字的字體 linewd:需要顯示的寬度
 int len = 0, wd = 0;
 for (int i = 0; i < str.length(); i++)
 {
  if (str.charAt(i) == ’/n’)
  {
   if (i == 0)
    return len + 1;
   else
    return len + 2;
  }
  wd += font.charWidth(str.charAt(i));
  if (wd > linewd)
  {
   if (fullword)
   {
    for (int j = len; j >= 0; j--)
    {
     if (str.charAt(j) < 0x30 || str.charAt(j) >= 128)
     {
      len = j;
      break;
     }
    }
   }
   return len + 1;
  }
  len = i;
 }
 return 0;
}

  計算好位置后,就開始為文字分行。

static public void DoLine(String infostr, int len)
{
 // 為字符串分行,以便于顯示
 String tmpStr;
 Vector InfoLines = null;
 InfoLines = new Vector();
 int tmpint; //需要換行的位置
 while (true)
 {
  tmpint = ChangLine(infostr, DefaultFont, len, false);
  if (tmpint == 0)
  {
   InfoLines.addElement(infostr);
   break;
  }
  else
  {
   if (infostr.charAt(tmpint - 1) == ’/n’)
    tmpStr = infostr.substring(0, tmpint - 1);
   else
    tmpStr = infostr.substring(0, tmpint);
    InfoLines.addElement(tmpStr);
    infostr = infostr.substring(tmpint, infostr.length());
  }
 }
}

  以上就是處理文字分行的代碼。接下來我講介紹程序中制作文字的滾屏效果。請關注后續文章。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色达县| 泰兴市| 安岳县| 山阳县| 昂仁县| 新余市| 定日县| 巴马| 莱阳市| 都匀市| 惠东县| 漾濞| 普安县| 石棉县| 瓮安县| 高要市| 金昌市| 铜梁县| 金华市| 玉田县| 筠连县| 庆云县| 镇原县| 德州市| 武山县| 鲁山县| 承德县| 皮山县| 张家港市| 泉州市| 齐河县| 宁晋县| 台北县| 黄大仙区| 阿坝| 玉树县| 诸城市| 林芝县| 永登县| 富源县| 德钦县|