• 締切済み

DirectX9で文字を一文字ずつ表示

現在、DirectX9の勉強のために簡単なノベルゲームを制作しています。 画像やテキストを表示させたりするといった事は出来たのですが、 ノベルゲームらしくテキストが一文字ずつ流れるように表示させたいのですが、 やり方がわからずに困っています。 自分なりに考えてみたのですが、こんなのしか思い浮かびませんでした・・・。 switch( ( timeGetTime() - nowtimedayo ) / 300 ){ case 3: strcpy(buff,"僕"); break; case 4: strcpy(buff,"僕は"); break; case 5: strcpy(buff,"僕はこ"); break; case 6: strcpy(buff,"僕はここ"); break; case 7: strcpy(buff,"僕はここに"); break; case 8: strcpy(buff,"僕はここにい"); break; case 9: strcpy(buff,"僕はここにいる"); break; } どうか、お力をお貸しいただけないでしょうか・・・。 宜しくお願い致します。

みんなの回答

回答No.3

すいません。先に載せたURLがうまくジャンプしてくれませんでした。 これもジャンプしなかったら、"DirectX8による2Dゲームプログラミング講座"でググって下さい。

参考URL:
http://rina.jpn.ph/~rance/directx8/11/03.html
回答No.2

こんにちは。私もOUHOさんと同じことをしていて同じ壁に突き当たったので、僭越ながら参考程度にしかならないとは思いますが助言させて頂きます。 ※私の場合、DirectX8なのでもしかしたら実行できないかもしれませんが "http://rina.jpn.ph/~rance/directx8/index.html" 上記のサイトに文字を表示するサンプルがあるのでこれを実装したとします。 内部に DrawTextA() という関数があります。この関数の第三引数が -1 になっていますがこれは表示する文字列のサイズを表しています。つまり、これをカウンタ等で増加させると第二引数で指定した文字列が一文字ずつ表示されます。 …あまる上手い説明ができなくてすいません。私もDirectXは慣れなくて殆ど把握できてませんのでご容赦ください。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

switch~caseは不要。 ヒント。 ・文字列を漢字一文字づつに分解する。 ・一文字づつ、表示座標を変えて表示する。 ・現在表示している文字の先頭からの番号と表示する座標を覚える変数を用意する。 ・表示タイミングはSetTimerなどを利用する。 http://wisdom.sakura.ne.jp/system/winapi/win32/win47.html

関連するQ&A

専門家に質問してみよう