変数トップへ手順1手順2|手順3|お得情報
変数(手順−3)

ここでの作業は、変数(ゲーム)には関係ないのですが、イベントを追加していきます

オブジェクトも増えますが、よろしくお願い致します。(変数の頭休めにご覧ください)


それでは、先ほどの「変数途中」を保存して、以降は、「変数完成」を作成します。
ファイルの複写・・(これは、おまけです)
手順−2で、紹介しました方法を利用してもいいのですが、せっかくですから、別の方法もご紹介します。
この方法は、このような区切りの時や、大きな変更を加えたいとき、またオブジェクトを大幅に削除したいときなど、また元に戻すのが大変なときなど利用します。

方法は、

フォーム「変数途中.wfm」を、定義で開きます。このとき、ファイル名は確認してください。
フォームのオブジェクト属性から、イベントタブのイベントファイル名を「変数完成.kev」と変更してください
この状態で、イベントファイルを開きます。
方法は、マウスの右クリックで「イベント定義」または、メニュから書式(S)→イベント定義(E)を、選択します

 >名札 メイン
 >
 >*
これだけのイベントファイルが開きます。

・最初に、「手続き編集」モードになってる場合は、「ファイル編集」モードに変更します。
方法は、画面左上の「手続き編集」モード(メモ帳)になってると思いますので、「ファイル編集」モードに変更します。下記図参照
(変更方法は、左から2番目のアイコンをクリックします)

<「手続き編集」モード>

<「ファイル編集」モード>

・全行削除を行います。
・メニューより、イベントファイルの「変数途中.kev」を、読み込みます。とりえず保存終了。
・次にフォームも、名前を付けて保存を行います。名前は「変数完成.wfm」とします
 
手順−2の方法と比較して慣れた方法でご利用ください


フォーム処理

オブジェクトの追加・変更

ここでは、マウスイベント用の仕掛けを作成します。直線オブジェクトには、マウスイベントが使用出来ない為その上に
透明のラベルを置きます。

右図での説明
・一番上が、ラベルオブジェクト。実際は赤い枠はありません。罫線なしで作成します
・二番目の青い矢印、これがマウスイベント用になります。青色で、作成し、マウスインアウトで赤色に変更しています
・三番目の水色の矢印、これは影です。立体感を付けるために置いてあるだけです。(実物は、薄い灰色です)

 作成後配置は、二番目の直線と三番目の直線は少しずらして配置するといいでしょう。一番目のラベルは同じ場所で結構です。
まず、直線オブジェクト・・
現在までの作成済み分は、「直線_01・直線_04・直線_05・直線_08・直線_09・直線_10」ですね。
しかも▲の部分だけですね。その直線を、長さを、ラベルと同じ大きさまでのばします。
つぎに、「直線_02・直線_03・直線_06・直線_07」を作成します。これは、▲はなくていいです。

ここで、オブジェクトリストを利用して「直線_01・直線_02・・・・・・直線_10」の順に並べ替えます。
次に立体用を作成しますが、「直線_01・直線_02・・・・・・直線_10」を選択後、複製を選べば、一度に同じ大きさの直線が10個作成できます。一応番号は「直線_11・直線_12・・・・・・直線_20」という風に変更しておきます。

ラベルオブジェクトは、従来のものをそのまま使用します。背景を透明に変更するだけで、結構です。

以上が終了しましたら、一番下が、「直線_11・直線_12・・・・・・直線_20」。次に、「直線_01・直線_02・・・・・・直線_10」。一番上が、「a中大1・a中大2・a大中1・a大中2・a小大1・a小大2・a大小1・a大小2・a小中・a中小」になるように配置してください
この10個のラベルは、イベントタブで、「マウスインアウト」をチェックしてください

次にピクチャーの外側のラベルの装飾です

罫線の属性を利用しています。
・罫線タブでの設定
 罫線モード(M):囲み罫線
 罫線:左・下・右
 線の太さ:5 point

・背景タブでの設定
 影の太さ(S):5pt
 影の色(X):薄いグレー

ピクチャーの外側に、隙間がないように作るのがポイントです。



変数には関係ないと書きましたが、ここをご覧の方に特別プレゼントを紹介いたします。
左の、ゲーム進行部分、前の手順では、ラベルで作成しましたが、ここで、テキストを利用します

 ラベルでなくテキストにした理由・・・編集属性式を使用するためです。
 作成方法・・オブジェクト名:「tクリア1」〜「tクリア8」・ソース(S):「"1"」〜「"8"」。

 編集属性式を利用しますが、式の内容はそれぞれのオブジェクトで異なります。
 「tクリア1」#条件選択(#対応文字列(&クリア,1)="1","境界線モード'くぼみ'")
 「tクリア1」#条件選択(#対応文字列(&クリア,2)="2","境界線モード'くぼみ'")
  ・・・・・・・・・・・
 「tクリア8」#条件選択(#対応文字列(&クリア,8)="8","境界線モード'くぼみ'")

 あわせてイベントも修正します。変更内容(意味)は、
 前回のラベルの時は、&大量の値により、イベントで変数の内容により対応ラベルを、「くぼみ」にしていましたが、今回は、変数「&クリア」を使用しています。編集属性式はイベントの所を参照下さい

フォームの変更・追加は以上です。


イベント部分の追加・修正

ラベルのマウスイン・アウト設定
マウスイン・アウトの説明・・・指定したオブジェクトに、マウスカーソルが入ったときから、出て行くまでの間、イベント処理を行います。今回は、矢印に設定してみました。(正確にはラベルですが・・・)
矢印(直線オブジェクト)の上にマウスが来ると、色を「青→赤」に変更し、そして、はずれると「赤→青」へ戻します

しかし、直線オブジェクトにはマウスイベントがないので、今回はラベルで代用します。ラベルを矢印の上に透明で配置したのは、このためです。いかにも矢印がイベントを発生しているように見せる仕掛けです。

では、ラベルのマウスインアウトのイベントを設定します
イベントの作成方法は、ラベルのイベントタブより「マウスインアウト」をクリックして定義画面を表示してください。

 >手続き定義開始 a中大1::マウスインアウト(長整数 &フラグ,長整数 &明細番号)
 >
 >手続き定義終了
 上記が作成されてると思います(ラベル名は、クリックしたオブジェクト名によりことなります)

 マウスインアウトの基本は
  if(&フラグ=1)
    ・・・・・・・・・・・・・・・・オブジェクトにマウスカーソルが入ってるときの処理
  else
    ・・・・・・・・・・・・・・・・オブジェクトからマウスカーソルが出るときの処理
  end

 普通は上記のように作成しますので、あまり長いプログラムや処理は書きません。そして今回は

  >手続き定義開始 a中大1::マウスインアウト(長整数 &フラグ,長整数 &明細番号)
  >if(&フラグ=1)
  >  オブジェクト操作 @直線_01.境界線の色="赤",@直線_02.境界線の色="赤"
  >else
  >  オブジェクト操作 @直線_01.境界線の色="青",@直線_02.境界線の色="青"
  >end
  >メソッド呼び出し @直線_01.再描画(0)
  >メソッド呼び出し @直線_02.再描画(0)
  >メソッド呼び出し @フォーム.描画更新()
  >手続き定義終了

  このように作成してください。

ラベルと直線オブジェクトの対応は
ラベルオブジェクト名 直線オブジェクト名
a中大1 直線_01・直線_02
a中大2
a大中1 直線_03・直線_04
a大中2
a小大1 直線_05・直線_06
a小大2
a大小1 直線_07・直線_08
a大小2
a小中 直線_09
a中小 直線_10

クリア用のイベント処理

「名札 メイン」に下記行を追加してください。

  変数宣言 文字{&クリア}
 * 現在の状況を保存しておきます。


  「&クリア」の説明・・・文字列として使用します。
  前回、「&大量」の値によってオブジェクト操作を行ってましたが、ここでは、変数を利用してクリア状況を記録していきます

  「手続き定義開始 画面更新()」の訂正・・・

  前回作成致しました
  >if(&大量=1)
  >  オブジェクト操作 @aクリア1.境界線モード="くぼみ"
  ・・・・・
  >else if(&大量=8)
  >  オブジェクト操作 @aクリア8.境界線モード="くぼみ"
  >end
  以上は削除してください。代わりに、下記を追加します

  &クリア=#文字置換(&クリア,&大量,#文字列(&大量))
  if(&クリア="1,2,3,4,5,6,7,8")
    メッセージボックス "完成","おめでとうございます\n全数クリア致しました",制御文字=する
  end
  
 説明
  >&クリア=#文字置換(&クリア,&大量,#文字列(&大量))
  ここで、&大量の値により、変数「&クリア」の値を更新しています。その方法は、

  「#文字置換」関数利用により、「&大量」番目の文字を、「#文字列(&大量)」に置換します。
  「&大量」の初期値は、当然未定義です。ここで、&大量が、「5」の場合、&クリアは「,,,,5」になります
  半角「,」で区切られた文字列になります。全部達成すると「1,2,3,4,5,6,7,8」となります。そこで、その次のif文が書いてあるわけです

  フォームで、クリア用のオブジェクトをラベルからテキストへ変更致しました。そして、編集属性式も設定いたしました。理由はここです
  もういちど編集属性式を紹介します

  >「tクリア1」#条件選択(#対応文字列(&クリア,1)="1","境界線モード'くぼみ'")
  >「tクリア1」#条件選択(#対応文字列(&クリア,2)="2","境界線モード'くぼみ'")

  上記イベントで、&クリア変数に、値が代入されていきます。その値を、編集属性式で、参照しています。
  「#対応文字列」は、指定した対応の値を調べます。
  条件選択にかかれてますので、その値が指定した値と一致した場合のみその次のオブジェクト属性変更が実行されます。

  今回は紹介も兼ねましたので、わざわざ「@ラベルからテキストに変更・A編集属性式を設定・Bイベントの削除や追加」等を行いましたが、
  プログラムの作成方法は、1種類とは限りません。目的にあったものをご利用下さい

ここまでのサンプルは、「変数完成」に入れてあります
top