作ってみた何番煎じかわからないですが、Cocos2d-xでHPゲージを実装してみます。今回は、ドット絵風のゲージ表現をしたいので、ProgressTimer使わずに、Spriteのみでいきたいと思います。HPゲージの仕様ですが、HPが減少すると右から左にバーが減っていくHPに応じてバーの色が変わるHPが50%以上の時は緑色HPが25%以上の時は赤色HPが10%以下は赤色とします。仕様リソースリソースが小さくてすいません。24x24で、周囲1ドットが枠になってます。先に結果を載せておきます。枠の拡大をScale9Spriteで行ういきなりコードを載せる前に概念的な説明です。今回枠を拡大するのにSpriteの4隅を残してそれ以外を拡大するために、Scale9Spriteを使用しています。Scale9SrpiteはSpriteを9等分して4隅を残してそれ以外を拡大する方式です。"ui\UIScale9Sprite.h"インスタンス化する時は以下のように使います。$内側の矩形サイズ);$全体サイズと$内側の矩形サイズの関係性ですが図にするとこんな感じです。サイズの指定は、setContentSizeで行います。setScaleは使いません。一緒に指定するととんでもないサイズになるのでご注意を。クラス構成HpBar.hHpBar.cppNodeを継承したHpBarクラス3色のバーをSpriteとして持っている外枠をScale9Spriteとして持っているchangeValue(50)のようにすると値に応じてバーが増減するオブジェクト作成時に全部準備してchangeValue時にSpriteの幅や色の入れ替えを行っています。長くなってしまったので、Githubにコードをアップしました。publicなメンバーと主要な操作だけ抜粋しています。使い方は簡単で、createメソッド呼び出し時に、幅と高さ、最大値を指定して追加したい対象にaddChildします。初期状態では最大値が現在のHP値になった状態で初期化されます。int)を呼び出します。値を変更bar->changeValue(50);色の変更などはchangeValue内で勝手にやってくれます。最後に実際作りこんでいくと、色は変更しないほうがいいや、枠を変えたい、特定の状態でイベントを出したいなど色々出てくると思うので、もし更新があれば随時反映していきたいと思います。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。4.0がリリースされたみたいCocos2d-xをやめてUnityに移行した話@2019冬C#のDateTimeとC++のtime_tを相互変換するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。