SDXFrameWork 0.07 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 | SetShadowSize (double 影の表示倍率)
| 影の大きさを設定. [詳細]
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< Shape > | shape

## 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で終了
}
System::End();
return true;
}

## 関数

bool SDX::Model::GetRemoveFlag | ( |  | ) |

消滅フラグの取得.

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

更新処理を行う.

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

void SDX::Model::SetShadowSize | ( | double | 影の表示倍率 | ) |

影の大きさを設定.

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 * | 比較対象 | ) |

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