[2009年7月5日修正、追記]
更新.txtには「カーソルキー入力を得たい場合はbclearとbexecの間にbcursor命令を入れてください。」と書いてありますが、エンターキーとスペースキーの入力を得たい場合もbcursor命令を使用する必要があります。 以下、検証用スクリプト。 *define game *start ;bcursor bexec $0 caption $0 goto *start 押されたキーをタイトルバーに表示するだけのスクリプトです。bcursor命令をコメントアウトしていない場合とした場合で、カーソルキー・エンターキー・スペースキーに対する挙動が変化することを確認できるはずです。bcursor命令を使用しない場合、 [追記] きなこさんからのコメントを受けて、スプライトボタンに関して調べていなかったことに気がついたので、ちょっと試してみました。 *define game *start bclear lsp 1,":s#FFFFFF#FF0000あいうえお",0,0 print 1 bsp 1 ;btrans *loop bexec $0,%0 if %0 > 0 inc %1:itoa $1,%1:caption "sp"+$1:goto *start goto *loop 上記スクリプトは、スプライトボタンを1個設置し、それがクリックされるとspX(Xにはボタンがクリックされた回数が入る)という文字列をタイトルバーに表示するものです。このスクリプトにおいて、スプライトボタンに対して左クリックをした場合とカーソルで選択→エンターキーないしスペースキーで決定した場合では、明らかに動作が異なります。 具体的には、左クリックの場合はマウスの左ボタンがアップされた後でbexecから処理が返ってくるのに対し、エンターキー・スペースキーの場合はキーがダウンされてすぐに処理が返るという違いがあります。なので、後者ではキーを押している間中数字が増え続けることになります。 もしbcursor命令を使用しない場合は「戻り値がLCLICKでもマウスからの入力とキーボードからの入力の2通りの場合があり、動作が異なる」ことを覚えておかなければなりませんね。 余談ですが。 上記スクリプトでbtrans命令のコメントアウトを外すと、カーソルキーでボタンを選択しようとしても透過部分にカーソルがあってしまい、エンターキーを押しても決定できません。 まあ、bexecで選択肢命令を自作する(=文字列をスプライトボタン化する)場合はbtransを使用しないでしょうし、真ん中が透過されているボタンというのも想像できないので、実害はないでしょう。
by lyricist_m
| 2009-07-05 16:49
| NScripter
|
web拍手を送る
個人サイト
検索
カテゴリ
以前の記事
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
リンク
サークル関係
NightShifts k'のBlog NScripter関係 ■ Takahashi's Web ■ Binary Heaven NScripter Scripting Factory NScripter-Tips nscrplg NS栗 Withoutlimit 永字八法 貴史たま+MEのHP 君影草工房 ※以下、更新停止中 nscr SGP -Sphere Game Production 花鳥風月 牛小屋 |
ファン申請 |
||