From window, to wind

趣味のゲームとJavaプログラムなどについて 適当に書き綴るブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

文字列を1文字ずつ表示する処理

ゲームなどでメッセージウィンドウに1文字ずつ文字が流れるように表示するコードです。

具体的な流れとしては
1)タイマーイベントなどで周期的な処理を組む。
2)表示させたい文章から最初の1文字を取り出す。
3)取り出した文字列を表示する(描画更新)。
4)表示させる文字列の長さを増やして、あとは繰り返し。

処理の流れは単純ですね。ただ3番目の文字列を表示するという部分が問題です。
グラフィックスを扱うような処理で文字列を表示する場合は簡単に組みこめますが、
ラベルなどの部品にテキストで受け渡したりする場合は描画されないことがあるので面倒です。

今回DispacherTimerという便利なクラスを使っているのでC#ってよりはWPFですかね。
(C#だとdelegateなどを使わないとUIスレッド外からのアクセスうんたらかんたらと怒られたような)
まあ言語に合わせた処理を考えましょう。

というわけで自分が忘れたときに確認するためのソースコードの一部を貼っておきます。
別の文章を表示したいときはview_numを0にしてviewmessageを新しい文章にします。
//メッセージ表示関連
private DispatcherTimer msgtimer;
private string viewmessage="";
private int view_num = 0;

viewmessage = "再生する動画を指定してください";

//メッセージ表示処理
msgtimer = new DispatcherTimer();
msgtimer.Tick += ViewMsg;
msgtimer.Interval = TimeSpan.FromSeconds(1.0/10.0);
msgtimer.Start();

//メッセージ表示
protected void ViewMsg(object sender, EventArgs e) {

textBlock1.Text = viewmessage.Substring(0, view_num);

if (view_num < viewmessage.Length) {
view_num++;
}
}
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://kagenyan.blog69.fc2.com/tb.php/136-9649aa71
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。