jubeon::game::layer::ComboLayerクラス仕様書 - PastFantasy1640/jubeon GitHub Wiki

概要

コンボ情報を描写するクラス。

ファイル

/src/Game/Layer/ComboLayer.hpp

/src/Game/Layer/ComboLayer.cpp

入力と出力

コンストラクタを実装して、「Comboクラスのポインタ」と「描写範囲」を入力(引数)にしてください。(メンバ変数に格納) 描写範囲の中に数字を描写しますが、基本描写範囲は正方形であると仮定してください。数字の画像データの横幅が、仮に250pxだった場合、(つまり4文字並べて1000px)描写範囲が500pxの正方形であれば、横を500pxに収める必要があるので、画像サイズを1/2にして表示するように計算してください。

ヒント

jubeonはDxLibではなく、SFMLを使用しています。SFMLでテクスチャ(画像)を使うときは、一度テクスチャとしてロードする必要があるのですが、少し複雑になってきます。ResourceManagerというクラスで一括管理しているので、それを使ってほしいのです。ResourceManagerのリファレンスはこちらを参照してください。 そして、sf::Textureクラスとして取得できたら、getSize()メソッドで画像の縦横のサイズが取得できます。これを使えば、コンボ数字画像を入れ替えたとしても、うまく動作するはずです。

あと、コンボ数字画像はできれば分割画像(0~9までが一つの画像に入っているもの)ではなく、10個のデータとして一枚一枚あるものを用意してください。そのほうが簡単です。画像のファイル名はお任せしますが、assets/imagesフォルダの中に入れて、ほかの画像ファイルと名前のかぶりにくいものにしてください。

参考にするといいリンク先

うしろ二つは英語だけど頑張って読んでみて。読まなくてもコードと図を眺めればなんとなくわかってくるかと。

継承元

jubeon::graphics::LayerBaseクラス

LayerBaseクラスについてはこちらを参照してください。

継承上の注意

Draw関数内ではできるだけ時間のかかるループは組まないこと

Draw関数から抜け出してやっと描写が完了します。できるだけ早く抜けないと、ほかの描写も止まってしまいます。

Comboクラスの受け渡し方について

comboクラスの実態はPlayerクラスで作成されます。ComboLayerのコンストラクタで、Comboクラスのポインタを受け取るようにしてください。このComboクラスのポインタは絶対にdeleteしないでください。また、nullが渡されることはなく、ポインタ先に絶対にあくせすできることは保証されています。

動作要件

  • 5コンボ未満は表示しない
  • 最大数字9999まで対応(9999でカンストにしようか)

アニメーション

これに関しては本家に準ずるか、煉獄さんと話し合って決めてください。