とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

cocos2dx パズルゲームを作ってみたい ~進捗編 其の二

さてさて3月ももう終わり!あれ、この間あけましてなんたら〜って言ってたきがしますが、 月日が流れるのは早い物ですね。

そんな私も今月は健康診断、社員旅行、葬儀、飲み会などなんか忙しかった月で
cocos2dxの進捗が芳しくないのですが、
最近ブログの更新頻度が下がって寂しいので今日は進捗報告でもしておきたいと思います。

現状はこんな感じになりました

前回からの追加点は

・ブロックの追加ループ処理
・ブロック削除時のパーティクル演出
・アニメーション管理
・ビットマップフォントに対応
・スコアとのこり移動回数の表示
・コンボ演出
などなど

あまり大きい事じゃ無いけど、無いと気持ちよくない物を曲がりなりに追加していました。

なんかsetContentScaleFactorを設定するとspineのオブジェクトが崩れるんですよねー
誰か解決策知りませんか??

とはいえ

進捗ブログだとしても全くソースを書かないのはちょっと寂しいので
今回追加した
・ビットマップフォントに対応
・コンボ演出
の部分のソースをちょっと出してみます。 またご指摘などあればいつでもWelcomeなのでどしどしください。

setCombo(getCombo() + 1);
                
auto visibleSize = Director::getInstance()->getVisibleSize();
auto combo_val = Value(getCombo());
auto combo_msg = combo_val.asString() + "Combo!";
//Resource/font/fot.fntを使う
auto combo_str = LabelBMFont::create(combo_msg, "font/fot.fnt");
//ポジション
combo_str->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));
//初期は0でセットしておく
combo_str->setScale(0.0f);
                
//大きくなりながら2回転させる
auto scale = ScaleTo::create(0.3f, 1.0f);
auto kaiten = RotateBy::create(0.3f, 720.0f);
auto move1 = Spawn::create(scale, kaiten, NULL);
                
//若干上に移動しながら消えていく
auto move = MoveTo::create(1.0f, Point(combo_str->getPositionX(), combo_str->getPositionY() + 50));
auto fead_out = FadeOut::create(1.0f);
auto spawn = Spawn::create(move, fead_out, NULL);
auto finish = CallFunc::create([combo_str](){
//モーションが終わったらCleanup
combo_str->removeFromParentAndCleanup(true);
});

//順列処理
auto move2 = Sequence::create(move1, spawn, finish, NULL);
combo_str->runAction(move2);
addChild(combo_str, 100);

ただの組み合わせですが、違和感の無い動きにするにはもう少し調整が必要そうです。 RCも公開されて、勢いが出てきたcocos2dxですが、まだまだ資料が少ないですね。 次にリファクタリングするときは諸々最初から作り直した方が早そうです。

駄文

4月になるとついに春期アニメの開始ですね。
今期は「龍ヶ嬢七々々の埋蔵金」に期待してます!
がんばれノイタミナ!なんかPVみてるとあれ、作画、、目が、ダルクが、、
と若干不安にさせてくれますが、大丈夫!きっと大丈夫!