WEB开发网
开发学院WEB开发Jsp 游戏开发小技巧—低级界面下的文本自动换行 阅读

游戏开发小技巧—低级界面下的文本自动换行

 2008-01-05 08:54:13 来源:WEB开发网   
核心提示:在应用中,有时候需要显示大段的文字,游戏开发小技巧—低级界面下的文本自动换行,如游戏中的帮助信息,以及RPG游戏的人物对白,怎么加我都不怕,嘿嘿,对于这种大量文字的显示,我们会很自然地想到使用高级界面的Form来显示

在应用中,有时候需要显示大段的文字。如游戏中的帮助信息,以及RPG游戏的人物对白。对于这种大量文字的显示,我们会很自然地想到使用高级界面的Form来显示,好处就是简单方便,我们不用去操心文字的断行排版,Form会为你搞定一切。
但是,有时候我们无法使用高级界面,如游戏规定必须使用低级界面,再有就是RPG类的游戏也是必须要使用低级界面来显示对白的。
使用低级界面显示大段文字,要害在于你要把它给排好版。最直接的问题就是:一行可以显示几个字?
很多人这样做:通过真机(必须用真机,模拟器不行的,会有差异)测量好一行能显示几个字,比如说7个。然后把大段的文字分成7个一行,变成了一个字符串数组,如:
final String[] strGameHelp = {
   "年份不详的一个",
   "时代中,妖与人",
   "类都存在于世界",
   "上,并基本为对",
   "立状态,但是不",
   "排除有相处一起",
   "的可能,因为人",
   "类基本已经接受",
   "世界上有妖的事",
   "实了。"
};
有了这么一个字符串数组,我们就可以循环把它画出来:
for(int i=0;i<strGameHelp.length;i++){
  g.drawString(strGameHelp[i],5,5+20*i,Graphics.TOPGraphics.LEFT);
}
上NOKIA、SE、MOTO几个模拟器一看,恩,不错,很管用,效果很好。当下把几个版本呼啦呼啦就全给搞定了。
当你正要端起杯子喝口水的时候,策划跑了过来
K700的文字怎么出框了
不可能啊,我量好了的,模拟器上看的好好的
不信你看……,策划掏出了K700
你一看,果然出了框,看起来一行只能显示6个字。
无奈,你开始挪字,改成:
final String[] strGameHelp = {
   "年份不详的一",
   "个时代中,妖",
   "与人类都存在",
   "于世界上,并",
   "基本为对立状",
   "态,但是不排",
   "除有相处一起",
   "的可能,因为",
   "人类基本已经",
   "接受世界上有",
   "妖的事实了。"
};
保存,编译,打包发给策划。
但策划拒绝了文件传送。
干吗不收啊,你问。
还要改个东西,加一个字,改成“在年份不详的……”,策划告诉你。
你想了想,问策划:能不能不改?
不能。策划回答的很快,我也不想加的,某某领导要求的。
你无语。预备再开始挪字……
忽然想:我不能老是改文字呀,万一下次他跑过来说再加个什么东西怎么办?
得想个法子搞定它。
于是写了个函数:
final int CharacterNumber = 6;
public Vector getSubsection(String str){
  Vector vector = new Vector();
  int i=0;
  while(!str.equals(""){
   if(str.length>6){
    vector.addElement(str.substring(0,CharacterNumber));
    str = str.substring(CharacterNumber);
   }
   else{
    vector.addElement(str);
    str = "";
   }
  }
  return vector;
}
再把帮助信息改一改:
final String strGamehelp =
   "在年份不详的一"+
   "个时代中,妖"+
   "与人类都存在"+
   "于世界上,并"+
   "基本为对立状"+
   "态,但是不排"+
   "除有相处一起"+
   "的可能,因为"+
   "人类基本已经"+
   "接受世界上有"+
   "妖的事实了。";
最后是画出来:
Vector vector = getSubsection(strGamehelp);
for(int i=0;i<vector.size();i++){
  g.drawString((String)vector.elementAt(i),5,5+20*i,Graphics.TOPGraphics.LEFT);
}
vector = null;
这下好了,随便加,怎么加我都不怕,嘿嘿,自动换行。


Tags:游戏 开发 技巧

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接