Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2009-05-11

GW明けでボケボケだよ~

| 19:04

 GWは、途中でびっくりな出来事があったりもしましたが、予定通り遊び呆けました;

 といっても、新型インフルのせいで海外旅行というわけにもいかず(っていうそれ以前に先立つものがないよ!)白熊の赤ちゃんを見に行ったり、アルパカの子っこちゃんをもふもふしたりしたりしただけですが(汗)


 それにしても、しばらく離れていると忘れますね~;

 フツーに書けていた命令をいちいち命令一覧で調べる羽目になってたり(--;

 というわけで、課題の解決もなんとなく難航中。

 本当は、4月中にクイズを完成させてしまいたかったんですけどね~・・・


 っていうか、バージョンUPで、4/30の記事に無いと書いた、マウス入った時~と、マウス出た時~が追加されました。

 多分、記事書いたころには既にUPされてたんだね~(ToT)

 しかし、しようがないので、ないものとしてマウス移動したとき~を使って作り始めたサンプルを、とりあえず動くようにしましたよ!

#-----母艦設計--------------------------------------------------
!母艦設計=「母艦の可視はオフ母艦のタイトルは「マウスIN/OUT関数サンプル」
母艦を$FFFFFFで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦のクライアント幅は640。母艦のクライアント高さは480。
母艦中央移動
母艦の可視はオン。
#--------------------------------------------------------------

#-----ボタン準備------------------------------------------------
裏画面とはイメージの可視はオフの幅は200。の高さは160。

ボタン幅とは整数=100。
ボタン高さとは整数=40。
ボタン位置Xとは整数=50。
ボタン位置Yとは整数=50。
ボタン隔とは整数=10。
選択ボタンとは整数=0。
前選択ボタンとは整数=0。


4
  塗り色は$888888
  裏画面の0,(回数-1)*ボタン高さからボタン幅,回数*ボタン高さへ四角。
  裏画面の25,(回数-1)*ボタン高さ+10へ「ボタン{回数}」を文字描画。

4
  回数条件分岐
    1ならば
      塗り色は$FFAAAA
    2ならば
      塗り色は$AAFFAA
    3ならば
      塗り色は$AAAAFF
    4ならば
      塗り色は$FFFFAA
  裏画面のボタン幅,(回数-1)*ボタン高さからボタン幅*2,回数*ボタン高さへ四角。
  裏画面のボタン幅+25,(回数-1)*ボタン高さ+10へ「ボタン{回数}」を文字描画。
#--------------------------------------------------------------


#-----ボタンを設定----------------------------------------------
選択肢とは配列。 #0ボタン表示位置X、1ボタン表示位置Y、2ボタン幅、ボタン高さ
4
  選択肢¥回数,0はボタン位置X
  選択肢¥回数,1はボタン位置Y+(回数-1)*(ボタン高さ+ボタン隔)
  選択肢¥回数,2はボタン幅
  選択肢¥回数,3はボタン高さ
#--------------------------------------------------------------

#-----ボタンを描画------------------------------------------------------
裏画面の0,0を選択肢でマウスオーバーボタン表示
#-----------------------------------------------------------------------

#----マウス入力待ち----------------------------------------------
母艦マウス移動した時は~
  裏画面の選択肢をマウスインアウト反映。

母艦のマウス押した時は~
  もし、前選択ボタン=0でなければ
    「ボタン{前選択ボタン}をクリック」と言う
#--------------------------------------------------------------

#--------------------------------------------------------------
●マウスオーバーボタン表示({グループ=?}OBJ1のX,YをAで)
  A\0,0=X。A\0,1=Y
  (Aの要素数-1)
    OBJ1のX,Y+(回数-1)*(A¥回数,3),(A¥回数,2),(A¥回数,3)を母艦の(A¥回数,0),(A¥回数,1)へ画像部分コピー。

●マウス位置判定(Aの)
  (Aの要素数-1)
    もし、((母艦のマウスX)>(A¥回数,0))かつ
      ((母艦のマウスX)<(A¥回数,0)+(A¥回数,2))かつ
      ((母艦のマウスY)>(A¥回数,1))かつ
      ((母艦のマウスY)<(A¥回数,1)+(A¥回数,3))ならば
        選択ボタン回数。
    違えばもし、(回数=Aの要素数)かつ(選択ボタン=0)ならば
      選択ボタンは0。
    ここまで

●マウスインアウト反映({グループ=?}OBJ1のAを)
  Aのマウス位置判定

  もし、前選択ボタン<>選択ボタンならば
    もし、前選択ボタン>0ならば
      OBJ1の(A\0,0),(A\0,1)+(前選択ボタン-1)*(A¥(前選択ボタン),3),(A¥(前選択ボタン),2),(A¥(前選択ボタン),3)を母艦の(A¥(前選択ボタン),0),(A¥(前選択ボタン),1)へ画像部分コピー。
    もし、選択ボタン>0ならば
      OBJ1の(A\0,0)+(A¥(選択ボタン),2),(A\0,1)+(選択ボタン-1)*(A¥(選択ボタン),3),(A¥(選択ボタン),2),(A¥(選択ボタン),3)を母艦の(A¥(選択ボタン),0),(A¥(選択ボタン),1)へ画像部分コピー。
    前選択ボタン=選択ボタン
  選択ボタン=0
  描画処理反映
#--------------------------------------------------------------

 母艦以外のところにも引数で指定してできるようにしたいと思ったんですが、表示は問題ないのですが、母艦のマウスXをobj2のマウスXとか書こうとすると、エラーになっちゃう(--;

 もちろん全部手動で「表画面のマウスX」とかに書き換えればちゃんと動くんですが、引数にはできない感じ?

 GUI部品名も変数にはできないのかなー。むむむ。

 とりあえず希望通りの動作はするようになったので、これをクイズに組み込んでみよう!と思ったらまたまた問題が!(>_<)

 U D U D 2009/05/11 21:51 これってFAQに書いたっけな・・・ 引っかかりやすいポイントですね。

「AのB」記法でグループを使えるのは、母艦(→フォーム)や、自分で定義した裏画面(→イメージ)など、種類が明らか(静的)な場合だけです。

引数にグループを取った場合、その引数がどんな種類のグループなのか「自明でない」(動的)ので、通常の「AのB」記法は使えません(Bとして何が使えるかなでしこには分からないので)。「作成」命令で動的生成したグループ変数も同様です。

そこで静的な記法を使えない変数では、代わりに、「A→B」もしくは「A@『B』」という記法を用います。OBJ→マウスXなど。分かりにくいですがねf(^^;

雪乃☆雫雪乃☆雫 2009/05/12 23:22 UDさま、ありがとうございます!
やはり、その辺なのですか~。
グループとか、→とか@とかとかって難し(>_<)
他の人のコードに登場しても、意味わかんない~と今まで華麗にスルーしておりましたが、ようやく学んでみはじめたのですが、私の足りてない頭脳では理解するのにまだまだ時間がかかるもようですorz
しかし、おかげさまで「OBJ→マウスX」記法を使って、母艦も表画面もできるようになりました☆

ゲスト



トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090511