2008/9/29(Mon) 16:59:15|NO.19868
>>動くメーター
これって格闘ゲームの北斗の体力ゲージとかギルティのテンションゲージのことですか?
(要はゲージの長さは同じでもスクロールしてやつってこと?)
あれは最大値の2倍の長さの絵を用意して
コピー位置をずらしながらループしているだけです。
(コピー位置が最大値の時の長さと同じ位置に来たら最初に戻すだけ)
↓ゲージ画像
---------------------------------------------
| | |
---------------------------------------------
|← 最大値の長さ →|
|←コピー開始位置
|←ゲージの量→|
|←その次のコピー開始位置
|←さらにその次のコピー開始位置
・
・
・
|←ここに来たら最初に戻す
流れる方向はコピーする位置のずらし方をきちんと調節すればどうとでもなります。
反転表示を使うのもありでしょう。
他に方法はあるのかもしれんが、俺は知りません。
あと1文字ずつ文字を表示する方法ですが、
出力用の文字列を入れる変数を用意し、1フレームごとに文字を追加していく。
出力はE3DDrawTextで。
てかE3DDrawTextByFontIDWithCnt やE3DDrawTextByFontIDWithCnt2があるのに
使わないのは敢えて?
Easy3Dは最初にマニュアル読んだ段階で投げた(hgimgやZGPの方が2D関連が
充実していると思ったから)ので表示や画像のロードに関しては詳しいことは
わかりませんが、マニュアルを見る限りゲージスクロールの方法は使えそうもありません。
gcopyやhgrotateのように表示する範囲を毎フレーム指令できる命令がないと
無理です。
ちなみに、C++&Direct3Dでガチ書きの場合、スプライトの表示する範囲は
テクスチャの一部のみを指定するも可能なので、
「スプライトの表示範囲=テクスチャ全体」なってしまうのはEasy3Dの仕様のようです。
hgrotateのような仕様の命令を探すか、なければ追加されるのを待つか、おちゃっこさんに
お願いするか、あきらめるか、別の方法を考えるか、プラグインを変えてでもやるか、
それはかってぃんぐさんの判断です。
|