SDXFrameWork  0.04
SDXFrameWork
 全て クラス ネームスペース 関数 変数 ページ
Public メソッド | Public 変数 | Protected 変数 | すべてのメンバ一覧
クラス SDX::Model

ShapeとSpriteをまとめて、2Dモデルを表すクラス. [詳細]

#include <Model.h>

SDX::Objectに継承されています。

Public メソッド

 Model (Shape *shape, Sprite *sprite)
 
bool GetRemoveFlag ()
 消滅フラグの取得. [詳細]
 
virtual void Update ()
 更新処理を行う. [詳細]
 
void SetIsCamera (bool カメラ利用フラグ)
 描画にカメラを使うか設定. [詳細]
 
void Add (Sprite *追加スプライト)
 
virtual void Draw () const
 描画する. [詳細]
 
void DrawShadow (double X座標ずれ, double Y座標ずれ)
 影を描画する. [詳細]
 
void AnimeUpdate ()
 アニメーションを更新する. [詳細]
 
void Move (double X移動量, double Y移動量)
 相対座標で移動. [詳細]
 
void MovePolar (double 距離, double 方向)
 極座標で移動. [詳細]
 
void SetPos (double X座標, double Y座標)
 指定座標に移動. [詳細]
 
void SetZoom (double 拡大率)
 拡大率を設定する. [詳細]
 
void SetZoom (double X拡大率, double Y拡大率)
 縦横別で拡大率を設定する. [詳細]
 
void MultiZoom (double 倍率)
 拡大率を掛ける. [詳細]
 
void MultiZoom (double X倍率, double Y倍率)
 縦横別で拡大率を掛ける. [詳細]
 
void Rotate (double 回転角度)
 回転させる. [詳細]
 
double GetAngle ()
 角度を取得する. [詳細]
 
void SetAngle (double 角度)
 角度を設定する. [詳細]
 
void SetColor (Color 描画色)
 色をまとめて変更する、透明度も含む. [詳細]
 
double GetZoomX ()
 横方向の拡大率を取得. [詳細]
 
double GetZoomY ()
 縦方向の拡大率を取得. [詳細]
 
double GetX () const
 X座標を取得. [詳細]
 
double GetY () const
 Y座標を取得. [詳細]
 
bool Hit (Model *model)
 Modelとの衝突判定. [詳細]
 
bool Hit (Shape *shape)
 Shapeとの衝突判定. [詳細]
 
bool Hit (Camera *camera=nullptr)
 マウスカーソルとの衝突判定. [詳細]
 
template<class T >
double GetDirect (T *比較対象)
 対象との角度を取得. [詳細]
 
template<class T >
double GetDistance (T *比較対象)
 対象との相対座標を取得. [詳細]
 

Public 変数

std::vector< std::shared_ptr
< Sprite > > 
sprites
 
std::unique_ptr< Shapeshape
 

Protected 変数

bool isRemove = false
 

説明

ShapeとSpriteをまとめて、2Dモデルを表すクラス.

//初期化を行い何かキーを押すと終了する
bool SampleModel()
{
using namespace SDX;
System::Initialise("sample", 600, 400);
Camera camera(300, 200, 1);
camera.SetActive();
Image image("image.bmp");
Model model(new Point(300, 200), new SpImage(&image));
Model model2(new Point(550, 350), new SpImage(&image));
model2.SetIsCamera(false);
while (System::Update())
{
model.Draw();
model2.Draw();
camera.Update();
if (Input::pad.Down.hold) Camera::Now()->MoveForcus(0, 5);
if (Input::pad.Up.hold)Camera::Now()->MoveForcus(0, -5);
if (Input::pad.Right.hold) Camera::Now()->MoveForcus(5, 0);
if (Input::pad.Left.hold) Camera::Now()->MoveForcus(-5, 0);
if (Input::key.Z.hold) Camera::Now()->SetZoomForcus(2);
if (Input::key.X.hold) Camera::Now()->SetZoomForcus(0.5);
if (Input::key.C.hold) Camera::Now()->SetZoomForcus(1);
if (Input::key.Return.on) break;//Enterで終了
}
return true;
}

関数

bool SDX::Model::GetRemoveFlag ( )

消滅フラグの取得.

virtual void SDX::Model::Update ( )
virtual

更新処理を行う.

SDX::Objectで再定義されています。

void SDX::Model::SetIsCamera ( bool  カメラ利用フラグ)

描画にカメラを使うか設定.

virtual void SDX::Model::Draw ( ) const
virtual

描画する.

void SDX::Model::DrawShadow ( double  X座標ずれ,
double  Y座標ずれ 
)

影を描画する.

void SDX::Model::AnimeUpdate ( )

アニメーションを更新する.

void SDX::Model::Move ( double  X移動量,
double  Y移動量 
)

相対座標で移動.

void SDX::Model::MovePolar ( double  距離,
double  方向 
)

極座標で移動.

void SDX::Model::SetPos ( double  X座標,
double  Y座標 
)

指定座標に移動.

void SDX::Model::SetZoom ( double  拡大率)

拡大率を設定する.

void SDX::Model::SetZoom ( double  X拡大率,
double  Y拡大率 
)

縦横別で拡大率を設定する.

void SDX::Model::MultiZoom ( double  倍率)

拡大率を掛ける.

void SDX::Model::MultiZoom ( double  X倍率,
double  Y倍率 
)

縦横別で拡大率を掛ける.

void SDX::Model::Rotate ( double  回転角度)

回転させる.

double SDX::Model::GetAngle ( )

角度を取得する.

void SDX::Model::SetAngle ( double  角度)

角度を設定する.

void SDX::Model::SetColor ( Color  描画色)

色をまとめて変更する、透明度も含む.

double SDX::Model::GetZoomX ( )

横方向の拡大率を取得.

double SDX::Model::GetZoomY ( )

縦方向の拡大率を取得.

double SDX::Model::GetX ( ) const

X座標を取得.

double SDX::Model::GetY ( ) const

Y座標を取得.

bool SDX::Model::Hit ( Model model)

Modelとの衝突判定.

bool SDX::Model::Hit ( Shape shape)

Shapeとの衝突判定.

bool SDX::Model::Hit ( Camera camera = nullptr)

マウスカーソルとの衝突判定.

template<class T >
double SDX::Model::GetDirect ( T *  比較対象)

対象との角度を取得.

template<class T >
double SDX::Model::GetDistance ( T *  比較対象)

対象との相対座標を取得.