YU-RIS サポート掲示板

0233 拡縮&回転
投稿者:春男 2005/06/10(金) 10:18

春男です。

> やっぱり拡大縮小させながら回転処理させるとそのくらいになってしまうのかな…。
30度おきの表示の場合ですね。この場合は回転処理だけです。

> 今のところ、とりあえず実装できたという段階なので、まだチューン出来ていないんですよね…。
> まだまだ速度改善できそうなので、近いうちにチューンしてみます。
よろしくお願いいたします。標準的なマシン構成で WAIT[FLAME=1] のループで、拡大回転の組み合わせ等よく使いそうな組み合わせでコマ落ちが起きないまたは起きにくい速度の確保ができると色々できそうです。

> > はい。まず、SET の値の代入方法に関してですが、
> 例えば SET=1.3*5 とすると、式の中に少数(実数)がありますので、式が自動的にFLOATで計算されるようになっています。
> で、1.3 * 5 = 6.5 となり、その時点で整数に置き換えられ(小数以下が切り捨てられ)、SET に 6 の値がセットされます。
なるほど、変数の宣言した型に自動キャストされるんですね。スクリプト修正ありがとうございます。うは…ループの開始直後に範囲外の値の代入になっていましたか。お手数かけました。

思ったのですが、エラー表示で「範囲外です」と表示するだけでなく、エラーになった値も一緒に表示頂ければデバッグが速くなるかも知れません。たとえば「0は、1〜????の、範囲外です。」または、「代入処理:範囲外の値の代入:値=0、範囲=1〜????」なんかどうでしょうか。

> > これで動くかと思います。
修正いただきありがとうございました。無事に動作を確認しました。確認したところ、縮小値が大きい(=小さく表示される)あいだはスムーズに表示できているのですが、当倍に近づくにつれてコマ表示になりました。やはり今後の高速化に期待します。

> ひとまず参考になればと、今、拡大縮小&回転それぞれのサンプルを作ってますので、しばらくお待ちくださいませ。
ありがとうございます。

> > > Q3.WAIT[FLAME=????]とは違うアプローチですが、WAITせず普通に画面に更新してくれと伝える命令と、
> > なるべく精度の高い経過時間を検出して処理を分岐したいので、高精度タイマーが欲しいのですが(timeGetTime()またはマルチメディア系の
> > 高精度タイマーのような)、ございますか?
> > はい。ありますです。システム変数に @_OS_TIME() という変数がありまして、これは中で timeGetTime() を呼び出しています。
おお @_OS_TIME() ですか。参考にします。
あと、WAITせず即時画面更新をする命令の方はどうでしょうか。もしかして WAIT[FLAME=0] で実現できたりしますか。または、描画の指示は WAIT[FLAME=?] のみによる実現が推奨されるようなシステムの構造をしていたりするなど意味があるため WAIT[] を使用して欲しい状況でしょうか。

あと、今回 CGACT[] を使ってみて、レイヤの表示状態についてもう少し詳しく知りたいと感じました。

たとえば、サンプルスクリプトの回転処理では CGACT[NO=a BNO=b ...]のように書かれていましたので真似しましたが、これは、レイヤaからレイヤbに回転後の画像を複製する、という意味ですよね。そして、画面に表示されるのはこの場合レイヤbのみのようですが、それぞれのレイヤの表示状態がいつどのような条件で非表示になったり表示状態になったりするのかがわかりません。


- 関連一覧ツリー (■ をクリックするとツリー全体を一括表示します)