開発メモ 「1文字ずつ表示(Substring)」
かっこいいチュートリアルを作りたいと思い、
RPGみたいに、テキストを1文字ずつ表示する方法を考えてみた。
まず、
表示結果を以下に示す。
[タップしてすぐ]
[タップして数秒後]
[タップしてしばらく経過]
次に、
今回作った以下のJavaScriptを見ながら、解説していく。
[Tutorial.js]
***************************************************************************
#pragma strict
var labelstyle2 : GUIStyle;//text
private var count : int = 0;//カウンター
private var SumTime2 : float = 0.0;
private var interval2 : float = 0.1;
//表示したい文字列
private var text0 : String = "ようこそ,チュートリアルの世界へ";//count=0
private var text1 : String = "ここでは,このゲームの操作方法を説明します";//count=1
private var text2 : String = "始めに,このゲームはシューティングゲームです";//count=2
private var display : String = "";//格納するための文字列
private var length : int = 0;//現在の文字の表示位置
function Update(){
//画面タップ
if(Input.GetMouseButtonDown(0)){
count++;
length = 0;//lengthの初期化
display = "";//displayの初期化
if(count >= 3){//3回タップしたら,End()へ
End();
}
}
SumTime2 += Time.deltaTime;
if(SumTime2 > interval2){
//表示しきったら終了(text.Lengthは文字列の長さ)
//text0.Substring(length,1)は,text0のlength番目の文字を1字表示
if(count == 0){if(text0.Length > length){display += text0.Substring(length,1);}}
if(count == 1){if(text1.Length > length){display += text1.Substring(length,1);}}
if(count == 2){if(text2.Length > length){display += text2.Substring(length,1);}}
length++;//次の文字へ
SumTime2 = 0;
}
}
function End(){//チュートリアルを終了して,タイトル画面に移る
Application.LoadLevel("Title");
}
function OnGUI(){
var sw : float = Screen.width;
var sh : float = Screen.height;
//文字列表示
var moji : Rect = Rect(sw / 8, sh / 5, sw / 2, sh / 2);//GUI.Label(Rect(x,y,幅,高さ),"文字");
GUI.Label(moji, display, labelstyle2);
}
***************************************************************************
とにかく、今回覚えたのは、上の例でいうと、
display += text0.Substring(length,1);
これは、
text0(文字列)のlength番目の文字を1字表示するという意味。
だから、
文章を1文字ずつ表示するのに便利。
うん。
この表示方法を、
チュートリアルに用いて、ゲームを説明しようと思う。
あと、
このメモの、
3つの画像の中に表示されている3D素材のウサギは、
「元素材:光陰像型 http: //www.geocities.jp/lab_no2/」
でダウンロードしました。光陰像型様、ありがとうございます。
今回は、ここで終わり。