YU-RIS サポート掲示板

0481 見ました
投稿者:たくみ 2006/05/31(水) 04:36

Deathworksさんどうもです。
時間がなくてまだ私のほうで十分な確認ができていませんが、
ひとつ気になったのは、
LABEL[#="DW_Dist_Loop01"] 〜 GO[#="DW_Dist_Loop01"] の間をループして、そこでキー入力処理をしていますが、
そのループ内にウェイト命令が入っていないのに気づきました。

\[r]_

の部分を、

WAIT[FRAME=1]

に変えてみてもらえれば、多分正しく動くのではないかと思います。


多分原因としては、
「ウェイト命令が入っていないため延々と処理され続け、CPU使用率が100%になったまま、
YU-RISが応答不能になっている」のだと思います。

このあたりもマニュアルでいまいち説明不足だったので申し訳ないのですが、
キー/マウス/パッド入力処理をさせたり画面を描画させたりしつつ、ループ処理をさせる場合は、
必ずウェイト処理が必要になります。
で、そのウェイト処理を行う命令というのが、
 ・WAIT 命令 (←指定したフレームまたは時間分だけウェイト)
 ・表示文字 (←文字を表示しつつ、1フレームウェイト)
の2つなのです。
※YU-RISマニュアルの「タスク」の項目の下のほうに、一応簡単な説明があります。

で、\[r]__ と書いたら上手くいったのは、「__」が表示文字として認識されて、
1回ループするたびに1フレームのウェイトが入ったために、上手く動いたのだと思います。

このあたりは YU-RISのちょっと特殊な仕様で申し訳ないのですが、
とりあえず、難しいことは考えずに、
「ループ処理しつつ描画させたり入力処理させたい場合は、ループの最初か最後に WAIT 命令を入れる」
とだけ覚えておいてもらえればOKだと思います(^^


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