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でカンストにしようか)
アニメーション
これに関しては本家に準ずるか、煉獄さんと話し合って決めてください。