« ROBOBASIC講座(どっちが速い?) | トップページ | のらみみ »

RZ1Basic v0.2.7 公開

Rz1bicon04

RZ1Basic v0.2.7を公開しました。

今回のバージョンでは、前々から付けたかった条件コンパイルの機能を付けましたgood

最新版のRZ1Basicはここからダウンロードできます。

更新内容

  1. DIR, INIT, GYROSET, GYRODIR, GYROSENSE, POS, GETMOTORSET, ZEROにおいてもMOVEと同じように、モーター番号と名称を表示するようにした。Rz1basicdebugscreensnapz001

  2. ON...GOTOのラベル名の番号を表示するようにした。
    Rz1basicdebugscreensnapz002
  3. ON...GOTOのラベル名をOption(またはALT)+ダブルクリックで、ジャンプ先を表示できるようにした。
  4. シミュレーション画像の足の接地切換えのコマンドに対応
  5. 条件コンパイル機能を追加

《足の接地切換えコマンドについて》
シミュレーション画像の足の接地の切換えを行うコマンド

  • '<--FOOTGROUNDING RIGHT-->
  • '<--FOOTGROUNDING LEFT-->
  • '<--FOOTGROUNDING FREE-->

の3種類に対応しました。
これは、RZ1Actionと同じコマンドです。現バージョンのRZ1Basicでは、RZ1Actionのようにコードの再生に対応していませんので、上のコードが書かれている行にカーソルがあるか、選択されると、足の接地が切換えることくらいしかできません。ゆくゆくはRZ1Basicにも再生機能を付ける予定でいます。

《条件コンパイルについて》
条件付きコンパイルができるような仕組みを付けました。現バージョンでは関係演算子は使えないので簡単な条件しか作れませんが、デバグ時にコードを書いたり消したりするのが面倒な方は、お役立て頂ければと思います。

但し、この条件付きコンパイルの機能はroboBASICにはない機能です。ソースコードは、RZ1Basicだけで使えればいいという訳ではないので、ちょっとややこしい仕組みになっていますので、以下の例を参考にしてやってみて下さい

条件コンパイルのステートメントは、

  • '#IF
  • '#ELSEIF
  • '#ELSE
  • '#ENDIF

になります。どれも「'」を付けてコメントとしてます。

one

CONST STACKCHECK=1
....
....

'#IF STACKCHECK
'    sp=PEEK(&h04D5)
'    IF sp<&h0D02 OR sp>&h0E00 THEN
'        MUSIC "G"
'        END
'    ENDIF
'#ENDIF

  • STACKCHECKをCONSTで定義しますが、定義する場合は、条件コンパイルの文章が出てくる前に定義しておく必要があります。
  • STACKCHECK=0とするか、STACKCHECKそのものを定義しなければ、この部分はコンパイルされることはありません。
  • '#IFと'#ENDIFで挟まれた部分は、コメントにしておかないとroboBASICでコンパイルする場合、STACKCHECKの状態に関わらずコンパイルされてしまいますので、コメントにしておくのが無難だと思います。RZ1Basicのみでしかコンパイルしないというなら、コメントは外しても構いません。

two

'CONST SPEEDTEST01=1
CONST SPEEDTEST04=1
....
....
'#IF SPEEDTEST01
'    SPEED 1
'#ELSEIF SPEEDTEST04
'    SPEED 4
'#ELSE
    SPEED 7
'#ENDIF

  • SPEEDTEST01はコメントになっているので、'#ELSEIFのSPEEDTEST04の部分がコンパイルされます。'#ELSEIFの中も、例oneと同じ理由でコメントにしておいた方が無難だと思います。
  • '#ELSEを使う場合、'#ELSEの中は、どの条件にも関係ないという意味でしょうからコメントは外しておいて構わない(roboBASICでコンパイルする場合でも影響がない)ということになると思います。

その他:

  • 現バージョンでは、以下のような条件コンパイル文を入れ子(条件コンパイル文の中に条件コンパイル文を書く)にすることはできませんのでご注意下さい。

'#IF HOGEHOGE
    '#IF IREKO1
       'PRINT FORMAT(A,HEX,2)
    '#ELSEIF IREKO2
        '.....
        '.....
    '#ENDIF
'#ELSE
    ......
    ......
'#ENDIF

以上です。


|

« ROBOBASIC講座(どっちが速い?) | トップページ | のらみみ »

RZ1Basic」カテゴリの記事

コメント

いつもお世話様です。
初心者掲示板・ケイレン症状の書き込みを
見ましたが、
初心者には、多分理解できないと思います。
私も理解できないです。
なぜケイレンが起きるかを知りたいのです。
もっと、簡単に説明出来ないでしょうか?
失礼な事を言って、すみません!

投稿: shirasu | 2008年3月 6日 (木) 20時15分

こんばんは

ここでは、RETURNがなぜあるのか?という質問だったので、それに答えたんですが、、、

なぜ以前のGOSUB REMGETだと、痙攣してしまうかは、

RETURNされないで、MAINに戻ってくると、またGOSUB REMGETが呼ばれますので、スタックオーバーフローになって暴走するのではないでしょうか?

私はこの暴走するというプログラムを入れて試したことがないので、本当のところはどうなのか解りません。

スタックに関しては、
http://micono.cocolog-nifty.com/blog/2008/02/robobasicgosubr_2e48.html

で、見てみて下さい。

投稿: micono | 2008年3月 6日 (木) 20時31分

こんにちは。
やっと暖かく成り、盆梅も咲き始めました。

お蔭様で、
アナログスティックの操作も、
順調です。
有難う御座いました。

i-SOBOTを手に入れました。
世界最小のロボット、愛嬌があって、
可愛いですね~。
音声(不鮮明ですが)・効果音が良いですね。
RZ-1とは又違った楽しみ方が有りそうです。
RZ-1で効果音は出来るでしょうが、
音声はどうでしょう?
ハードを増設したら出来るのでしょうか?

投稿: shirasu | 2008年3月 8日 (土) 15時17分

miconoさん、こんばんは。RZ-1シリーズの開発いつもご苦労さまです。

v.0.2.7インストールさせて頂きました。モーター番号と名称の表示は非常に便利ですね。ナイスアイデアだと思いました。

以下は要望と気付いた点です。

・ソースリストをポイントするとエディターウインドウ下部に行番号表示されますが、ウインドウ左側にも(他のエディターソフトによくあるように)行番号を表示し続けてくれる機能があると大変助かります。→行番号でも検索できるとさらに便利に思われます。

・私の環境だとメインウインドウ右上に終了・最小化・最大化のアイコンが表示されませんが、これって仕様でしたでしょうか?

使用OSはWindows XP Home EditionのSP2です。
大変恐縮ですが、次回のバージョンアップの際にでも検討して頂けると幸いです。

それでは。

投稿: ヒロビ | 2008年3月 9日 (日) 23時04分

shirasuさん
うまく動くようになってよかったです。
しきい値を少し変更させた方が反応性がよくなりましたでしょうかね?
RZ-1は音声認識はできるようになるんですかね?音声を出す為にはどうすればいいのでしょうね?

投稿: micono | 2008年3月10日 (月) 00時02分

ヒロビさん
ありがとうございます。

まず、行番号の件ですが、そういうAPIがあればいいのですが、ないので簡単にはできないんですよね。Visual Studio系のエディタは、行を表示させるAPIがありそうな気がしますが、みんな手作りで実装してるのかなぁ??行番号をエディタの左側に表示させて、エディタのスクロールと連動させるっていう、インチキっぽいやり方でいいなら、そんなに難しくはないけど。。。少しその方法でエディタの動きとうまく追従できるかやってみますね。

もひとつの最小化/最大化のボタンですね。コントローラーのウインドウに関してはオフにしてあるので表示されなくて問題ないです。エディターの方はオフにしてないので表示されると思います。コントローラのウインドウの、最小化/最大化のボタンを使えるようにしても、動作に問題ないようでしたら、次のバージョンでは、使えるようにしますね。

ところで、やっぱりWindowsユーザーさんにとってはMDIの方が使いやすいですかね?ボタンを大きく作ってあるので、MDIにしちゃうと、エディットフィールドの領域が小さくなってしまうんですよね〜〜

投稿: micono | 2008年3月10日 (月) 00時24分

miconoさん、こんばんは。

行番号の件は、APIが無いので難しいとのこと。う~む、無い物ねだりになりそうですね。ちなみに私の手元にあるVisual C#2005の参考書(700頁あります)を調べてみると・・・こちらの方もどうやら該当するメソッドは無いようですね。おしゃるように意外に皆さん、手作りで頑張ってらっしゃるのかも。
お手数がかかりそうでしたら、この件は結構です。

コントローラー(メニューバー)の右端のボタンの件ですが、私の場合ソフトの終了時には反射的に右端の終了ボタンを探してしまいますので、もしMacの作法に反しなければ終了ボタン「×」を付けていただければ大変ありがたいと思います。(考えてみると最小化や最大化のボタンは意味がないですね。)
ただし、この辺りはmiconoさんの設計思想やポリシーもあると思いますので、検討して頂ければ幸いです。

ウインドウの管理方法ですが、私はMDIでなくても全然平気ですよ。最近のマイクロソフト社のソフトは皆非MDIですし、実際RZ1BasicがインパクトがあるのはSDIによるところも大きいと思います。

なんだかmiconoさんを煩わしそうで恐縮です。どうか無理をせず、楽しみながら開発を続けて下さい。

それでは。


投稿: ヒロビ | 2008年3月10日 (月) 21時56分

ヒロビさん
こんばんは、ありがとうございます。

まずエディタの行番号表示ですが、
インチキな方法を少し試してみたのですが、スクロールの値が整数値でしか取得できないので、スクロールさせた時、行番号がカクカク動いてしまいますし、行の途中でスクロールが止まってる場合は、行番号にズレが出てしまいます。ということで現時点では対応は難しいようです。

あと、最小化/最大化/閉じるのボタンですが、Windowsの場合はウインドウを閉じる=アプリの終了なんですよね。マックの場合は、メニューバーがウインドウに付いている訳じゃないので、ウインドウを閉じることとアプリの終了は別ものなんですよね。

とはいうもののマックにもクローズボックスでアプリが終了する仕様のものもありますので、クローズボックスを使えるようにしますね。あと最大化は現時点では意味ないのでオフのままで、最小化は使えるようにします。

あまり煩わすとか気を使われなくても大丈夫ですよ。いろいろと挑戦する楽しみがなくなったら、つまんないですから、あれこれ言って下さいね。

投稿: micono | 2008年3月11日 (火) 03時02分

2.7以後musicが鳴らなくなった。
windowです。

投稿: hshira | 2008年3月22日 (土) 08時23分

hshiraさん
動作チェックありがとうございます。
ご利用のマシンはWindowsのXPでしょうか?私の環境のXPでは一応音はなるようです。特別プログラミングを変えてはいないので、現時点では原因をみつけるのが難しいですね。ごめんなさい。

投稿: micono | 2008年3月22日 (土) 21時18分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/221673/40271987

この記事へのトラックバック一覧です: RZ1Basic v0.2.7 公開:

« ROBOBASIC講座(どっちが速い?) | トップページ | のらみみ »