So-net無料ブログ作成
検索選択
汎用ゲームマップエディタ : FB ブログトップ

Popup Menuで何が選択されているかを所得 [汎用ゲームマップエディタ : FB]

DIM itemID

itemID=BUTTON(_PopW)

以上。


数値のみの入力しか受け付けなくする。Button上でのマウスカーソルアイコンを変える。 [汎用ゲームマップエディタ : FB]

数値のみの入力しか受け付けないようにする。EditFieldで色々やってみたけれど、今イチ。そこで、FutureBASIC4 CDに入っているサンプルソースで良さそうなものがあった。

Examples > ** Donations ** > Robert P's Favorite Examples > Text and Edit Fields > Key filter for EditText control

早速、実装。いい感じです。しかしこのフィルタ、入力部分の見た目はまるっきり、EditFieldなんですが実はEditFieldではなく文字入力が出来るApperanceButtonを使用しているので、先日実装した「EditField上でマウスカーソルアイコンを変える」が、数値入力部上では動作しなくなりました。そこで、

ev = DIALOG(0)
id = DIALOG(ev)

SELECT ev

〜中略〜

 CASE _cursOverNothing
  CURSOR = _arrowCursor

 CASE _cursOverBtn,_cursOverEF
  SELECT id

   CASE _Mapx,_Mapy,_Stage,_ProjectNames
    CURSOR = _IBeamCursor

  END SELECT

〜中略〜

END SELECT

こんな感じに変えました。それぞれIDで指定しないとポップアップボタンにまで反応してしまうので。そこで気になったのが、EditFieldのTEXT内容を所得するにはEDIT$()を使うというのは知ってましたが、ApperanceButtonのTEXT内容所得ってどうやるのかは分からない。調べてみた所、それらしいやり方が見つかったので、試しに次の関数を追加してテストしてみました。最終的にはTEXTを数値に変えなければならないので、それも兼ねて。

LOCAL FN Okay //OKボタンを押すとこの関数へ

DIM dat
DIM As STR255 TextString
TextString = FN ButtonTextString$ (_Mapy) //文字所得(マップの広さのyを入力するフィールドから)
dat=VAL(TextString) //文字を数値に
 PRINT dat

END FN

バッチリです。


エディットフィールド上でのマウスカーソルアイコン [汎用ゲームマップエディタ : FB]

エディットフィールド上にマウスカーソルを持っていくと、Iビームカーソルに変わるようにする。
それ以外では、矢印に戻す。

ダイアログイベント関数にて

SELECT ev

〜中略〜

 CASE _cursOverNothing
  CURSOR = _arrowCursor

 CASE _cursOverEF
  CURSOR = _IBeamCursor

〜中略〜

END SELECT

以上。


覚え書き [汎用ゲームマップエディタ : FB]

オブジェクトサイズの項目を入れ忘れていたので、またもや設定画面のデザイン変更しました。Appearanceランタイムで新規プロジェクトを作り、このWindowを作るファイルをInclファイルにして組み込み。リソースも作り、メインソース用のファイルも作り、いよいよMapEditor作成の体裁を整えました。まず日本語化した後、不具合の調査。グループボックスの中にキャンセル、OKボタンを入れているのですが見た目だけで、ボタンをクリックしても反応しない。グループ化しないといけないと言う事になかなか気付かず、余計な時間を食ってしまいました。

SetRect(r, 20, 283, 297, 360)
APPEARANCE BUTTON _GroupBox, _activeBtn, _kControlSupportsEmbedding,,,"Tiny Game Map Editor", @r,_kControlGroupBoxSecondaryTextTitleProc

三つ目の定数、「_kControlSupportsEmbedding」でグループ化出来るようにしておき、

DEF EmbedButton(_Cansel, _GroupBox)
DEF EmbedButton(_Okay, _GroupBox)

これで良し。ついでにグループボックスのタイプもちょっとカッコ良さげなヤツに変更。
(_kControlGroupBoxSecondaryTextTitleProcがそうです。)

いや、しかしTWEで外観を作り吐き出したソースコードを見ると勉強になります。


TWEを使って初期設定ウィンドウを作る。 [汎用ゲームマップエディタ : FB]

思い立って制作しようとしている汎用ゲームマップエディタ。コーディングのみでGUIを作るのは面倒なので(これまでのSHやSHIIなんかのマップエディタはそれが原因であんな変なインターフェイスになっている)、FutureBASIC4に付属の、The Window Maker(以下、TWE)というFutureBASIC用のインターフェイスビルダーのDEMO版を試しています。だいぶ使い方分かってきました。これは良い。シェアウェアなので登録したいのですが、作者が現在新規のユーザーを受け付けてないのか、サイトを覗いてもTWEのコーナーを休止しているようです。とりあえず作者にメールを送って、このDEMO版を使えるところまで使ってみようかと思っています。

初期設定画面完成。


汎用ゲームマップエディタ : FB ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。