ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

インデックスの更新

テクスチャアニメーションのクラスは一応実装できた。でもちょっと実装でいまいちうまくいっていない部分が残っている。
今の実装では内部情報を更新する部分と描画を行う部分を分けており、今何枚目のテクスチャなのか表すインデックスを更新する部分で行っている。

class TexAnim {
private:
    int index;
public:
    void update();
    void draw();
};

void TexAnim::update() {
    ++index;
}

void TexAnim::draw() {
    // indexの指すテクスチャ描画
}

テクスチャアニメを使用する側では更新時にupdate()を呼び、描画時にdraw()を呼べばよい。
で、ここでちょっと問題が。インデックスの初期値が0だとupdate()の後にdraw()が呼ばれるので最初の描画でインデックスの指す位置が1となってしまう。かといってインデックスの初期値を-1にしておくと、update()を呼ばない時、たとえば1枚目は表示しておくけどアニメーションは開始しない状態のときに描画時に問題になってしまう。とりあえずdraw()時にインデックスがマイナスだったら1枚目を表示するという対処を行ったが、なんとなくすっきりしない感じ。