難しいと思いますが…
投稿者 : メリッサ(p147.net059086013.tnc.ne.jp)
- 2007/06/10(Sun) 20:13
No.11312
|
|
|
|
|
今、タイピングゲームの調整中で、 drawtextでのアルファベッドの横の長さを、文字によらず一定にしたいです 例えば、 同じ5文字でも「iiiii」と「ooooo」では横の長さがずいぶん違います。 これを同じにしたいです。 難しいと思いますが、お願いします。
|
Re: 難しいと思いますが…
投稿者 : 鼎(ntgifu072239.gifu.nt.ftth.ppp.infoweb.ne.jp)
- 2007/06/10(Sun) 21:24
No.11313
|
|
|
|
文字列が配列に入っているならば、array関数とfor文を使ってtextを一文字ずつ書き出すことができます。
letter = newArray(); // 文字列が入っている配列
while(1) { no=0; for(l in letter) { margin+=20; //文字幅 drawText(x+margin,100,l,$clwhite,20,-10); } update(); }
タイピングゲームでしたら文字列を一文字ずつに区切って扱うでしょうから、配列を使うのは有効な手段かと思います。
|
Re: 難しいと思いますが…
投稿者 : メリッサ(p254.net059086007.tnc.ne.jp)
- 2007/06/10(Sun) 21:40
No.11314
|
|
|
|
う〜ん。一応タイピングはできるんですが、長い文だとはみ出してしまうんで、文字をスクロールさせることを考えたんですが、今考えると、そう簡単にはいかないことがわかりました。
文字列を1文字ずつ分解して、for文を使うのはいい考えですねfor文まではなかなか気付かなかった…。
ありがとうございました。 プロジェクトに改良版のタイピングをアップしたいと思っていますので、そのときは宜しくお願いします(宣伝か!スミマセン。)
|
Re: 難しいと思いますが…
投稿者 : マッキー(0x3d2cbf5e.rev.ncv.ne.jp)
- 2007/06/10(Sun) 21:42
No.11315
|
|
|
|
パネルで、drawtextを1つずつ使えばいいと思います。 例えば、$panel.drawtext(?文字目*5,10,?文字目の文字例,255); そして、String.substringメゾットで、一文字ずつ読みこんでいけばいいと思います。 なので、text="akasatana"とあれば、 for(i=0;i<文字の長さ;i++){ text2=substring(i,i+1); $panel.drawtext(i*5,10,text2,255); } すると、一文字ずつ処理されていきます。 パネルは文字表示を変えるとき意外、処理落ちしないのが長所です。 ちなみに、長さをはかるには、String.byteLengthメゾットでできます。 Stringのヘルプは、 ttp://tonyu.jp/wiki/index.php?String
|
Re: 難しいと思いますが…
投稿者 : メリッサ(p011.net059086008.tnc.ne.jp)
- 2007/06/10(Sun) 23:00
No.11317
|
|
|
|
うーん。すみません。
わざわざ、返答してくださったのにすみません。
文字の長さが分かればタイピングで長い文でもスクロールさせることで可能になると思っていましたが、そうはいかず、日本語の文が長いとやっぱしはみ出てしまって、その場合スクロールさせるのも困難になってしまいます。
すみません。これからはもっと気をつけてから質問します。
鼎さんやマッキーさんのコメントも他の人が見て役に立つ内容だと思いますので、これからも宜しくお願いしますm(u_u)m
|
Re: 難しいと思いますが…
投稿者 : ごま太郎(i222-150-115-131.s02.a002.ap.plala.or.jp)
- 2007/06/11(Mon) 12:27
No.11318
|
|
|
|
setfont()で等幅フォントにするのは試してみましたか? 初期設定がどうなっているか忘れましたが、プロポーショナルフォントであれば等幅に変えることで一文字ずつの文字幅は同じになると思います。
|
Re: 難しいと思いますが…
投稿者 : メリッサ(p048.net059086010.tnc.ne.jp)
- 2007/06/11(Mon) 16:22
No.11319
|
|
|
|
今度、プロポーショナルフォントについて調べて、いろいろ研究してみます。 アドバイスありがとうございます。
|
|