2 #include <Framework/Sprite.h>
7 class SpImage :
public Sprite
14 SpImage(
const Image *image ):
18 void Draw(
double x ,
double y ,
bool isCamera)
42 class SpAnime :
public Sprite
47 Anime::Player counter;
52 SpAnime(
const Anime *anime ,
double aniSpeed = 1) :
60 counter.
UpDate( aniSpeed );
63 void Draw(
double x ,
double y ,
bool isCamera)
92 class SpFont :
public Sprite
101 SpFont(
const IFont *font , Color rgb ,
const char *str ):
107 void Draw(
double x ,
double y ,
bool isCamera)
115 font->
DrawExtend((
int)x, (
int)y, zoomX, zoomY, rgb, str.c_str());
121 class SpFrame :
public Sprite
125 const IFrame *bmpFrame;
130 SpFrame(
const IFrame *bmpFrame ,
double width ,
double height ):
136 void Draw(
double x ,
double y ,
bool isCamera)
147 bmpFrame->Draw( (
int)x ,
149 (
int)(width * zoomX) ,
150 (
int)(height * zoomY) );
157 class SpMap :
public Sprite
165 std::vector< std::vector<int> > data;
168 SpMap( ImagePack& マップチップ ,
const char* ファイル名 ,
int 幅 ,
int 高さ ,
int 角度):
174 File csvFile( ファイル名 , FileMode::Read );
178 for(
int i=0 ; i<幅 ;++i)
180 data[i].resize( 高さ );
183 std::vector<std::string> lineBuf;
185 for(
int i = 0 ; i < 高さ ; ++i )
187 csvFile.GetLineCSV( lineBuf );
188 for(
int j = 0 ; j < 幅 ; j++)
190 data[j][i] = atoi( lineBuf[j].c_str() );
196 void Draw(
double X座標 ,
double Y座標 ,
bool カメラ有りフラグ)
203 const int baseY = int(
Camera::Now()->TransY( Y座標 ));
204 const int baseX = int(
Camera::Now()->TransX( X座標 ));
211 for(
int i=0 ; i<width ; ++i )
213 posXA = int( baseX + chipW * i *
Camera::Now()->GetZoom() );
214 posXB = int( baseX + chipW * (i+1) *
Camera::Now()->GetZoom() );
216 for(
int j=0 ; j<height ; ++j )
218 posYA = int( baseY + chipH * j *
Camera::Now()->GetZoom() );
219 posYB = int( baseY + chipH * (j+1) *
Camera::Now()->GetZoom() );
220 const int no = data[i][j];
221 if( no == 0 )
continue;
222 chip[no]->DrawExtend( posXA , posYA , posXB , posYB );
226 for(
int i=0 ; i<width ; ++i )
228 for(
int j=0 ; j<height ; ++j )
230 const int no = data[i][j];
231 if( no == 0 )
continue;
232 chip[no]->Draw(
int(X座標 + i*chipW) ,
int(Y座標 + j*chipH) );
void Draw(double x, double y, bool isCamera)
Spriteを描画する.
Definition: SpriteDerived.h:136
void Draw(double x, double y, bool isCamera)
Spriteを描画する.
Definition: SpriteDerived.h:63
int GetWidth() const
最大幅を取得.
Definition: ImagePack.h:108
bool UpDate(double 経過フレーム=1)
カウンタの更新.
Definition: Anime.h:49
void AnimeUpdate()
説明.
Definition: SpriteDerived.h:58
static Camera * Now()
アクティブなカメラを取得.
Definition: Camera.h:54
double GetZoom()
拡大率を取得.
Definition: Camera.h:126
void Draw(double x, double y, bool isCamera)
Spriteを描画する.
Definition: SpriteDerived.h:107
int GetHeight() const
高さを取得.
Definition: Image.h:385
int GetWidth() const
幅を取得.
Definition: Image.h:375
void Draw(double x, double y, bool isCamera)
Spriteを描画する.
Definition: SpriteDerived.h:18
int GetHeight() const
最大高さを取得.
Definition: ImagePack.h:114
virtual bool DrawExtend(int X座標, int Y座標, double X軸拡大率, double Y軸拡大率, Color 色, const char *描画文字列,...) const =0
拡大率を指定して文字を描画.
bool DrawRotateAxis(int X座標, int Y座標, int X軸, int Y軸, double 拡大率, double 角度, bool 反転フラグ=false) const
回転軸、角度、拡大率を指定して描画.
Definition: Image.h:276
Image * GetFrame()
現在のコマ番号を取得.
Definition: Anime.h:85
void Draw(double X座標, double Y座標, bool カメラ有りフラグ)
Spriteを描画する.
Definition: SpriteDerived.h:196