FLASHのお勉強 ーアクションスクリプトの実践的事始めー |
||||
| (64) FLASHでスロットゲーム 2008/5/2 | ||||
| 先に「SLOT(スロット)型 「おみくじ」」を公開した直後に本稿の内容は出来上がっていたのだが、リーチアクションなどもう少し趣向を加えるつもりで公開を控えていた。 しかし、スロットはだいぶ前に遊んだことはあるが、そのときも遊び方と言うか、何をどうしていいやら訳がわからないまま終えた経験があるだけである。 したがって、手付かずのまま構想が沸かず、時間ばかり過ぎていくので、ここでとにかく勉強材料に供することにした。 非常にシンプルと言うか、幼稚なものであるが、スクリプトの勉強にはなると思う。 actionscript 2.0 で作成 数字を流れるように移動させる方法として、ここでは0から9までの文字を回転させる方法を取っている。 「おみくじ」では、文字列を縦方向に流しているが、この方が見た目には滑らかに動くようだ。 いずれも、stopボタンをクリックしたときに、いかに窓の真ん中に止めるかに苦労した。 回転式の場合は、止まる寸前にギクシャクした動きになるし、縦流し式の場合はうまくタイミングを調節しないとへんなことになるので調節幅が小さいと言う問題があった。 この辺にまだ修正の余地がありそうである。 |
||||
| SAMPLE (右は、マスクをかけずに動きを見られるようにしたもの) | ||||
| ステージの準備 | ||||
| ●250*160、背景色黒のステージ(48fps)を設定 ●デザインは好みでよいが、ここでは、数字が流れる窓三つと、その下にストップボタン、右に、スタートボタンを配した。 インスタンス名は、スタートボタンは start_btn 、ストップボタンは、stop1, stop2, stop3 とした。 ●マスク用矩形(30*60)を作成し、リンケージ名を mask としてライブラリーに格納しておく。 |
||||
| スクリプト(_root、FRAME1に記述) | ||||
|
||||
| スクリプトの説明 | ||||
| ● this.targetangle = this.angle+36-(this.angle)%36; 数字文字が窓の中央で止まるように、angleを36度おきに設定する (this.angleを36で割った余りを引くことで、this.angleが36度おきになる) ●数字が3つ揃ったら、何かイベントを起こそうとするときのヒント 一つの数字が揃うと言うことは、すべての数字の位置(angle)が同じになっていると言うことなので、例えば、「0が3個同じangleになったら、イベントへ」と言うスクリプトを書けばよいことになる。 if (this.speed<1) { } の中のスクリプト内の、既述の2行の下に、 a = _root["mc"+10].targetangle%360; b = _root["mc"+20].targetangle%360; c = _root["mc"+30].targetangle%360; if (a && b && c) { if (a==b && b==c) { trace("Bravo!"); } } を加え、trace("Bravo!"); のところへ、イベントを起こすスクリプトを記述すればよいということになる。 なお、もちろん二つが揃ったら、リーチアクションを起こすなどのことも同様に可能である。 |
||||
|
|
||||
| HOME お勉強総リスト | ||||