COCOS道場DX
ホームに戻る
スポンサーリンク

画面スクロールを実装する


今回は実行結果から見せたいと思います。余分な部分消し忘れてカクついてる..


プレイヤーを追うように画面がスクロールしていったのがわかると思います。今回はいわゆる「画面スクロール」というものの実装を紹介します。本当はスクロールというよりどちらかというとカメラフォローなのですがここではわかりやすくスクロールでいきます。

マリオなどの横スクロールや弾幕シューティングなどの縦スクロールがありますが自分で実装するにはなかなかの労力を必要とします。しかしcocos2d-xでは標準でスクロール機能がついてます、そしてとても簡単です。
コードはこちらです。

    //playerの移動に画面がついていく
    this->runAction(Follow::create(player,Rect(0,0,size.width*2.5,size.height)));

なんとこの1行だけなんです。
これだけでスクロールしてくれます。引数の説明としてはFollowの第一引数にはターゲット(画像、文字)、第二引数にはスクロール範囲を指定します。ここでは0,0(原点:左下)からsize.width*2.5,size.heightまでとなっていますのでこの範囲にplayerが入っている間は常にplayerが画面の中心にくるようについてきてくれます。


スクロール範囲を超えた場合には追従されずにそこで画面位置は止まります。
こんなに便利なスクロール機能ですが1つだけ弱点があります、それは
横だけスクロール縦だけスクロールができない いずれ導入されるかもしれませんがv3.2で内部実装を確認したところそのような設定をする部分はありませんでした、ですので縦だけや横だけのスクロールをしたい場合には以下の2つの方法があります。


ですが1つ目の方法は根本的な解決をしていませんのでやはりここは実装するしかなさそうです。
ということでGitHubに実装したコードをあげておくので良かったら持っていってください。
GitHub:https://github.com/silent0321/CustomScroll

使い方はほとんど変わりません。



    //画面スクロール対象の設定
    this->runAction(CustomFollow::create(_player,ScrollType::OnlyX));

といった具合に第二引数だけが変わっています。ここには本来範囲が指定されますがCustomFollowでは範囲を指定しなくても自動で追従します。ですのでここにはScrollTypeを入れます、種類は以下です。




プレイヤー画像提供:臼井の会

スポンサーリンク
このエントリーをはてなブックマークに追加
前の章へ ホームに戻る 次の章へ