黄色バルーンはユーザー側の操作によって成立する。ただ、この操作はドラッグ状態、タッチ時にどのバルーンがどう動くか、タッチ座標など相当定義しなければならない難しい動作であるといえるだろう。ビンゴガーデンの比ではない。
まあとりあえず、タッチ時の挙動を考えようか…。
とりあえずマスの座標を呼び出してそこ中心の座標からX軸方向とY軸方向の距離がともにある値以下という数学で言うなら絶対値のグラフのようなものを考えることになる。
ちなみにそのある値は28である模様。
しかも何が厄介かというと、これは超マルチ時で成立するものであって、シングルなどだとまた別に定義しなければならない。
ここはなんとかしてプログラムの行を減らせるように工夫したいところである。
とりあえずすぐ思いつきそうなやり方は、ビンゴバルーン面のズームの定義により、これもそのように移動させてしまうという手で、
例えば中心(-900,150)でズーム75%にしている。つまりこれは中心座標へのピクチャの一斉平行移動とともに、各ピクチャの中心からのベクトルを75%に縮小して描画しなおしているはずなので、(300,400)のものはというと中心からX軸方向に1200,Y軸方向に250の移動とみなせて、これを75%すると900,187あたりになるので、それを(-900,150)にそれぞれ足すだけというシンプルさ。
こうすることにより新たに座標範囲を指定せずに既存のもので楽にできる。
昔はこういうことをしなかったので必要以上にプログラムが長引いたんや…。
それはそれでいいとして、
次にすでにバルーンが2個置かれていた時、残りバルーンが0個となった場合にタッチ操作をした場合が問題で、これはたぶん一番最初に置かれたものから移動していく、という挙動だと仮定しておく。となるとそのタッチごとにバルーンを置いた順番を最高で4つ変数を定義しておき、それをシフトしていくプログラムが必要となる。
まあいろいろがんばった末、ドラッグ禁止条件のもとFREE1~4個を置いた履歴に従って上書していくことができるようになった。
もうここまでいけば、ビンゴ判定とオッズアップ判定があれば一応ゲームとしては最低限の要件を満たしているともいえるかもしれない。まあバルーンに描かれた番号を表示する必要があるし、その他リーチやラインの演出も必要なので、できたとかいうどころかまだ始まったばかりだが。
ドラッグしてバルーンを移動する操作は別に実装しなくてもよいと思うし後でもできるのでこれは保留しておく。
次にやるべきことは、バルーンの上に番号を書くことである。
いかがそれ。ついでにアクティブタブを描画し、そうでないノンアクティブのものは不透明度を下げるように。
ある程度得体のしれない何かのゲームから逸脱出来てきたので、そろそろ背景を用意するか…。この後はビンゴ判定とリーチ判定を作ることになる。
さすがに夜から作っているとこれくらいしか進展しないか…。
またセミナーの難しすぎる発表もあるしこればかりやっているわけにもいかん…。