[もどる]
一括表示
0197 Ver0.150
投稿者:たくみ 2005/05/10(火) 21:48

Ver0.150をリリースしました。

■繰り返し命令 LOOP, LOOPEND を実装しました。
ようやくユーリスで繰り返し命令が使えるようになりました(T▽T
いままでこれがなかったために、繰り返しさせたい場所でわざわざラベルを作り、
条件分岐でジャンプさせてむりやり繰り返し処理をさせていましたが、
そういう苦労をしなくて済むようになりました(TーT
サンプルスクリプト1を見ていただければと思いますが、
CGのフェード処理などをほぼループ命令に差し替えました。
結構シンプルになって見やすくなったかと思います。
また、理解のしやすさにも繋がったかなと思います。

■アーカイブツールで圧縮にかかった時間を表示するようにしました。
細かいことですが、結構便利だったりします。
データサイズがいい感じに膨大になってくると、
圧縮処理にかかる時間が気になるようになってきまして…。
圧縮にかかる時間を把握しておけば、いろいろと残り時間を逆算できたりとか(^^;
即売会の締切が近づいてきた時など(ぉ(^^;ゞ


さて、残りの実装もいろいろ急ぎます!
少なくとも今月中にはセーブロードと文章履歴を実装完了させます!

0198 Ver0.151
投稿者:たくみ 2005/05/11(水) 13:28

Ver0.151をリリースしました。

■LOOPBREAK, LOOPCONTINUE を実装しました。
C言語の for や while に対する「break」「continue」と同様の働きをします。
LOOP〜LOOPEND ブロックの中で LOOPBREAK 命令があった場合、強制的に LOOP〜LOOPEND ブロックを抜けます。
また LOOPCONTINUE は、直前の LOOP 命令まで戻り、そこから実行を再開します。
その際、1ループ分カウントされます。

0199 Ver0.152
投稿者:たくみ 2005/05/13(金) 13:15

Ver0.152をリリースしました。

■VARINFO 命令を実装しました。
変数の型、次元数、各次元の要素数を調べられます。
普段は使わなさそうな命令ですが、今後サブルーチンやマクロ機能を
強化したとき、この命令の存在のおかげで
自由なサイズの変数の受け渡しができるようになります(^^
詳しいやり方はその時にしようと思います。

■TEXTINFO 命令に CX, CY キーワードを実装しました。
現在のテキストカーソル座標を取得できます。
テキスト行末処理と組み合わせて使うことで、
文字の隣にクリック待ちアイコンが表示できるようになります。
ただちょっとユーリスのテキスト仕様自体にクセがある感じで、
例えば行末処理ルーチンの最初に取得しようと思っても正確な位置が取得できず、
行末処理ルーチン内でクリック待ちループをさせ、
その中なら取得できるようになっています。
参考にと、近いうちに新しいサンプルを作りますが、
それが最終的な仕様になるかはちょっと分かりません…。

■IF, GOSUB, LOOP のネスト数を16(レベル)までに制限しました。
一見すると改悪したように思われるかもしれませんが、
基本的にプログラムやスクリプトを組む上で、そんなに必要ではなかったりします。
もちろん、たくさんネストした組み方で組むこともできますが、視認性が悪くなるのと、
スクリプトバグをたくさん生み出してしまう可能性があるため、
他の言語と同程度のレベルに抑えることにしました。
逆にメリットとしては、例えばもし間違ったGOSUBループを作ってしまった場合でも、
ネストエラーが17レベル以上で出てくるので、
エラーがすぐに出てくれるようになる(バグの早期発見につながる)こともあります。

0200 Ver0.153
投稿者:たくみ 2005/05/13(金) 13:17

Ver0.153をリリースしました。

■CGACT 命令に RECTPAINT 命令を実装しました。
レイヤーを任意の色で塗りつぶすことが出来ます。
いまのところレイヤーの全域を塗りつぶすことしか出来ませんが、
範囲指定ができるよう現在制作中です。
また現在、空のレイヤーを生成する機能も実装中です。
それと組み合わせれば、画像ファイルを何も用意しなくても、
任意の色とサイズのレイヤーを作成出来るようになります。

0201 Ver0.154
投稿者:たくみ 2005/05/14(土) 02:47

Ver0.154をリリースしました。

■CG 命令を使って、縦横1ピクセルの黒画像レイヤーを生成できるようになりました。
CG[NO=1 FILE=""]
このようにファイル名を無指定にした場合、1x1ピクセルの黒のレイヤーが生成されます。
これを CGACT で任意の大きさに引き伸ばしたり、色を変えたりして
いろいろな用途に使うことが出来ます。以前要望のありました、
画像ファイル無しで選択肢バーを作成するということも、これで実現できます(^^
命令1発で出来ず、生成→色変更→拡大と、ちょっとステップを踏まなければいけないのが難点ですが…。
細かい命令を増やさずに、既存の命令で、かつ命令の内容に例外を出さないように、
(例えば CG 命令なら「レイヤー生成」と「属性値を変える」のみであり、
CGACT 命令なら「CGを加工」するのみであるように)
そういう方向性で考えた結果、こういう形になりました(^^;ゞ
実際にサンプルスクリプト2を、画像ファイルを使わないVerに書き換えましたので、
参考になればと思います。

■TASKINFO 命令を実装しました。
各タスクの状態を調べられるようになりました。
そのうち各タスクで実行しているスクリプトファイル名や、何行目を実行中かも
取得できるようにする予定です。そうすることで、
別タスクを使ってデバッグ表示させたりと、後々便利に使えたりするようになります。

■LOOP 命令で無限ループできるようになりました。
LOOP[ ] というように、角括弧の中に何も書かないことで、
無限ループするようになりました。
基本は無限ループで、ユーザーからの入力に対して LOOPBREAK などで抜ける場合などに
役立つかと思います。

0203 Ver0.155
投稿者:たくみ 2005/05/18(水) 03:32

Ver0.155をリリースしました。
って、これ書いてる時点で0.157出てますけど…(;
我ながらペース早くてテキストまで書いてる時間が…(;

■ループ命令の中でループカウンタを取得できるようになりました。
ループカウンタというのは簡単に言うと、ループした回数が入っている変数です。
システム変数 @_LC がそのループカウンタで、LOOP 命令で1にセットされ、
その後ループする度に @_LC に1が加算されていきます。
例えば、
LOOP[SET=5]
  ループカウンタの値は@[_LC]です。
LOOPEND[]
として実行すると、
ループカウンタの値は1です。
ループカウンタの値は2です。
ループカウンタの値は3です。
ループカウンタの値は4です。
ループカウンタの値は5です。
と表示され、@LC の値が逐次変わっていってるのがわかります。

また、
LOOP[SET=10]//※1
  LOOP[SET=5]//※2
    ループカウンタの値は@[_LC]です。
  LOOPEND[]
LOOPEND[]
このように多重ループにした場合どうなるかと言うと、直前のループ(※2のほうのループカウンタ)が
取得されます。もし※1のループカウンタを、※2のループ内で使いたいという場合は、
LOOP[SET=10]//※1
  @LC1 = @_LC
  LOOP[SET=5]//※2
    ループカウンタの値は@[LC1]と@[_LC]です。
  LOOPEND[]
LOOPEND[]
このようにすることで取得、保持できます。


■IFBREAK, IFCONTINUE, LOOPBREAK, LOOPCONTINUE 命令それぞれに LV キーワードを実装しました。
これも具体例で説明します。

IF[〜〜]
  IF[〜〜]
    あああ
    IFBREAK[LV=2]
    いいい
  IFEND[]//※1
  ううう
IFEND[]//※2
えええ

これを実行した場合、普通なら「あああ」と表示され、そのあと IFBREAK で次の IFEND(※1) まで飛び、
その次の「ううう」が表示され、そして最後に「えええ」と表示されるハズですが、
IFBREAK[LV=2] と指定すると、IFEND 2つ分(正確には2レベル分)戻れ、という意味になります。つまり、
最初から順を追っていくとまず「あああ」と表示され、そのあとの IFBREAK で ※2のIFEND まで飛び、
「えええ」と表示される形となります。
また、IFCONTINUE に関しては、

IF[〜〜]//※1
  IF[〜〜]//※2
    IFCONTINUE[LV=2]
  IFEND[]
IFEND[]

IFCONTINUE で、通常※2の位置に戻るところを、LV=2 なので※1の位置に戻る、といった感じになります。
LOOP, LOOPCONTINUE に関しても全く同じ扱いです。
マニュアルのほうでも説明してありますので合わせてお読みください。

0204 Ver0.156
投稿者:たくみ 2005/05/18(水) 03:33

Ver0.156をリリースしました。

■JPEG 画像の読込に対応しました。
YU-RISでJPEG画像の読込が出来るようになりました。
ネット上でのフリーウェアや体験版の配布の際など、
ファイルサイズ削減にかなり効果があると思います(^^
実際に今回のバージョンから、YU-RISに入っているサンプルの画像をほぼ
JPEG に差し替えました。おかげでかなり容量が減りました(^^

0205 Ver0.157
投稿者:たくみ 2005/05/18(水) 03:33

Ver0.157をリリースしました。

■32bitBMP画像の読込に対応しました。
これでBMPは1,4,8,24,32bit対応となりました。
ただ、ひとまず普通のBMPとして読み込めるようになっただけでして、
α情報(不透明度情報)は現段階では切り捨てられます。
次はαチャンネル付PNG画像の読込にも対応させてしまいたいと思います。

さてさて、実装しておかなくちゃと以前から思っていたものが、少しずつ出来てきました。
そろそろテキスト関係の実装もしていきたいと思います。
その際、またいくらかの仕様変更がある予定です。
いろいろご迷惑をおかけします…。
より簡単に組める仕様作りのため、ご理解いただければと思います。

0206 Ver0.158
投稿者:たくみ 2005/05/19(木) 05:14

Ver0.158をリリースしました。

■αチャンネル付きPNG画像の読込に対応しました。
ただし、αチャンネルデータは現状では無視されます。
αチャンネルを同時に読み込めるようになるとかなり便利になりますが、
実装はCGレイヤの仕様を若干改善してからになりそうです。

0208 Ver0.159
投稿者:たくみ 2005/05/19(木) 21:42

Ver0.159をリリースしました。

■文字列変数の文字数を調べられるようになりました。
文字数なので全角の「あ」も半角の「A」も同じ1文字としてのカウントになります。

さてさてテキスト系命令の実装に移行してきました。今後の予定としては、
「文字列変数系命令の実装」→「文字表示系命令の実装」→「文章履歴の実装」の順で
行く感じになります。
あと1週間である程度実装してしまいたい考えです。
それが終わったら次はセーブロードです。
急げー!