SDXFrameWork  0.10
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Public Member Functions | Protected Attributes | Friends | List of all members
SDX::Film Class Reference

ImagePackにコマ毎の再生時間を追加したクラス. More...

#include <Film.h>

Inherits SDX::ImagePack.

Public Member Functions

 Film (const char *ファイル名, int 総コマ数, int コマ割り横, int コマ割り縦, int 1コマの再生時間=1)
 画像ファイルを分割してメモリへ読み込む. More...
 
 Film (const char *ファイル名, const char *拡張子, int 総コマ数, int 1コマの再生時間=1, const char *書式="%03d.")
 連番ファイルを一括して読み込む. More...
 
bool Load (const char *ファイル名, int 総コマ数, int コマ割り横, int コマ割り縦, int 1コマの再生時間=1)
 画像ファイルを分割してメモリへ読み込む. More...
 
bool Load (const char *ファイル名, const char *拡張子, int 総コマ数, int 1コマの再生時間=1, const char *書式="%03d.")
 連番ファイルを一括して読み込む. More...
 
void Add (Image *追加イメージ, int 再生フレーム数=1)
 末尾にImageを追加する. More...
 
void Add (const char *ファイル名, int 再生フレーム数=1)
 末尾にImageを追加する. More...
 
void Release () override
 Imageを開放し初期化する. More...
 
void SetFrameTime (const std::vector< int > &フレーム時間)
 各コマのフレーム数を設定する. More...
 
void SetType (FilmType 再生方法)
 全体の再生方法を指定する. More...
 
void SetType (int コマ番号, int 次フレーム)
 指定コマの次フレームを設定する. More...
 
void SetType (int コマ番号, NextFrame 次フレーム)
 指定コマの次フレームを設定する. More...
 
int GetAnimeTime () const
 全コマの合計フレーム時間を返す. More...
 
bool Load (const char *ファイル名, int 総コマ数, int コマ割り横, int コマ割り縦)
 1つの画像を分割して読み込む. More...
 
bool Load (const char *ファイル名, const char *拡張子, int 総コマ数, const char *書式="%03d.")
 連番ファイルを一括して読み込む. More...
 
void Add (Image *追加イメージ)
 Imageを末尾に追加. More...
 
void Add (const char *ファイル名)
 Imageを末尾に追加. More...
 
int GetSize () const
 要素数を取得. More...
 
int GetWidth () const
 最大幅を取得. More...
 
int GetHeight () const
 最大高さを取得. More...
 
void SetColor (const Color &描画色)
 描画色をまとめて変更. More...
 
void AdjustWidth (std::vector< int > 幅)
 先頭からimageの幅を差分修正. More...
 
Imageoperator[] (int index)
 オペレータ. More...
 
Imageoperator[] (int index) const
 オペレータ. More...
 
auto begin () -> decltype(imageS.begin())
 イテレータ用. More...
 
auto begin () const -> decltype(imageS.begin())
 イテレータ用. More...
 
auto end () -> decltype(imageS.end())
 イテレータ用. More...
 
auto end () const -> decltype(imageS.end())
 イテレータ用. More...
 

Protected Attributes

std::vector< Image * > imageS
 保持するImage
 
int widthMax = 0
 最大幅
 
int heightMax = 0
 最大高さ
 

Friends

class Anime
 

Detailed Description

ImagePackにコマ毎の再生時間を追加したクラス.

Todo:
リソース解放周り色々未実装
//Copyright © 2014 SDXFramework
//[License]GNU Affero General Public License, version 3
//[Contact]http://sourceforge.jp/projects/dxframework/
//画像をアニメーションさせる
bool SampleAnime()
{
using namespace SDX;
System::Initialise("sample", 640, 480);
//画像を分割して読み込む
Film filmA("data/number.png", 10, 10, 1,60 );
Film filmB("data/hone.png", 12, 3, 4, 10);
Film filmC("data/icon","png",10,12);
//アニメーション
Anime animeA(&filmA);
Anime animeB(&filmB);
Anime animeC(&filmC);
//カウントアップ後カウントダウン
filmA.SetType(FilmType::Reverse);
//最後のコマで停止する
filmB.SetType(FilmType::End);
//各コマの再生時間を設定する
filmC.SetFrameTime({1,2,3,4,5,6,7,8,9,10});
while (System::Update())
{
animeA.Update();
animeB.Update();
animeC.Update();
animeA.DrawExtend({ 200, 240 ,30,40});
animeB.Draw({ 300, 240 });
animeC.Draw({ 400, 240 });
if (Input::key.Return.on){ break;}//Enterで終了
}
return true;
}

Constructor & Destructor Documentation

SDX::Film::Film ( const char *  ファイル名,
int  総コマ数,
int  コマ割り横,
int  コマ割り縦,
int  1コマの再生時間 = 1 
)

画像ファイルを分割してメモリへ読み込む.

SDX::Film::Film ( const char *  ファイル名,
const char *  拡張子,
int  総コマ数,
int  1コマの再生時間 = 1,
const char *  書式 = "%03d." 
)

連番ファイルを一括して読み込む.

Member Function Documentation

bool SDX::Film::Load ( const char *  ファイル名,
int  総コマ数,
int  コマ割り横,
int  コマ割り縦,
int  1コマの再生時間 = 1 
)

画像ファイルを分割してメモリへ読み込む.

bool SDX::Film::Load ( const char *  ファイル名,
const char *  拡張子,
int  総コマ数,
int  1コマの再生時間 = 1,
const char *  書式 = "%03d." 
)

連番ファイルを一括して読み込む.

void SDX::Film::Add ( Image 追加イメージ,
int  再生フレーム数 = 1 
)

末尾にImageを追加する.

void SDX::Film::Add ( const char *  ファイル名,
int  再生フレーム数 = 1 
)

末尾にImageを追加する.

void SDX::Film::Release ( )
overridevirtual

Imageを開放し初期化する.

Reimplemented from SDX::ImagePack.

void SDX::Film::SetFrameTime ( const std::vector< int > &  フレーム時間)

各コマのフレーム数を設定する.

void SDX::Film::SetType ( FilmType  再生方法)

全体の再生方法を指定する.

初期は全コマNextFrame

void SDX::Film::SetType ( int  コマ番号,
int  次フレーム 
)

指定コマの次フレームを設定する.

初期は全コマNextFrame

void SDX::Film::SetType ( int  コマ番号,
NextFrame  次フレーム 
)

指定コマの次フレームを設定する.

初期は全コマNextFrame

int SDX::Film::GetAnimeTime ( ) const

全コマの合計フレーム時間を返す.

bool SDX::ImagePack::Load ( const char *  ファイル名,
int  総コマ数,
int  コマ割り横,
int  コマ割り縦 
)
inherited

1つの画像を分割して読み込む.

総コマ数=14,コマ割り横=4,コマ割り縦=4の場合
[ 0][ 1][ 2][ 3]
[ 4][ 5][ 6][ 7]
[ 8][ 9][10][11]
[12][13][ ][ ]
のように分割して、ImagePackのサイズは14になる

bool SDX::ImagePack::Load ( const char *  ファイル名,
const char *  拡張子,
int  総コマ数,
const char *  書式 = "%03d." 
)
inherited

連番ファイルを一括して読み込む.

ファイル名の後に三桁の連番が付いたファイルを連続して読み込む
例:「ファイル名***.拡張子」

void SDX::ImagePack::Add ( Image 追加イメージ)
inherited

Imageを末尾に追加.

void SDX::ImagePack::Add ( const char *  ファイル名)
inherited

Imageを末尾に追加.

int SDX::ImagePack::GetSize ( ) const
inherited

要素数を取得.

int SDX::ImagePack::GetWidth ( ) const
inherited

最大幅を取得.

int SDX::ImagePack::GetHeight ( ) const
inherited

最大高さを取得.

void SDX::ImagePack::SetColor ( const Color 描画色)
inherited

描画色をまとめて変更.

void SDX::ImagePack::AdjustWidth ( std::vector< int >  )
inherited

先頭からimageの幅を差分修正.

BMPフォント用の画像を文字幅を調整する時に使う 分割読み込み時

Image* SDX::ImagePack::operator[] ( int  index)
inherited

オペレータ.

Image* SDX::ImagePack::operator[] ( int  index) const
inherited

オペレータ.

auto SDX::ImagePack::begin ( ) -> decltype(imageS.begin())
inherited

イテレータ用.

auto SDX::ImagePack::begin ( ) const -> decltype(imageS.begin())
inherited

イテレータ用.

auto SDX::ImagePack::end ( ) -> decltype(imageS.end())
inherited

イテレータ用.

auto SDX::ImagePack::end ( ) const -> decltype(imageS.end())
inherited

イテレータ用.