南国さんのゲーム部屋

紫外線に弱い南国人の趣味全開の部屋

Flappy Birdの動きを再現してみた

CNN.co.jp : 激ムズのゲーム「Flappy Bird」、あまりの人気に提供中止

自分も絶賛ハマり中のFlappy Bird
シンプルでも面白ければやっぱみんなやるんだなーと思いました

ちょっとAS3.0の勉強も兼ねて動きを再現してみたんですが
スクリプト自体は至ってシンプルですね。
や、この通りに書いているかはわからないですが多分似たようなものかと。

はてな記法のテストも兼ねてたりしますが
作ってみたのはこちら↓

//重力移動値
var spd = 0;

//重力加速値
var spd_add = 1.5;

//タッチ時の上昇値
var spd_touch = -10;

//タッチイベント
btn.addEventListener(MouseEvent.CLICK, btn_onClick);
function btn_onClick(event:MouseEvent):void {
   //画面内なら
   if(ball.y >= 0){
      //移動値に上昇値を設定
      spd = spd_touch;
   }
}

//ball処理
ball.addEventListener(Event.ENTER_FRAME, ball_Enter);
function ball_Enter(e:Event):void{
   //地面についてない時
   if(ball.y + ball.height / 2 < stage.stageHeight){
      //重力加速値加算
      spd += spd_add;
   }

   //ball移動
   ball.y += spd;

   //地面についた時
   if(ball.y + ball.height / 2 >= stage.stageHeight){
      //位置補正
      ball.y = stage.stageHeight - ball.height / 2; 
   }
}

全画面ボタン(btn)と丸いボールのMovieClip(ball)だけ使ってます。
この動きが再現できればあとは土管作って当たり判定入れるだけですね。

このアプリ広告収入だけで1日500万円くらい行ったとか、すげぇ!
個人で作るアプリでもアメリカンドリーム!って感じですよねw
負けじと自分もアプリ制作勉強しようかと思います。

ちなみに今のところハイスコアは123です。

f:id:nangokusan:20140211005944p:plain