SDXFrameWork 0.10 SDXFrameWork

- Main Page
- Related Pages
- Classes

- Class List
- Class Hierarchy
- Class Members

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

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

`#include <IModel.h>`

Inherits SDX::IPosition.

Inherited by SDX::Model< TShape, TSprite >.

## Public Member Functions
| IModel (IShape &図形, ISprite &描画方法)
| コンストラクタ. More...
bool | GetRemoveFlag () const
| 消滅フラグの取得. More...
virtual void | Update ()
| 更新処理を行う. More...
void | SetShadowSize (double 影の表示倍率)
| 影の大きさを設定. More...
virtual void | Draw () const
| 描画する. More...
void | DrawShadow (double X座標ずれ, double Y座標ずれ)
| 影を描画する. More...
void | SetPos (double X座標, double Y座標) override
| 指定座標に移動. More...
void | MultiZoom (double X倍率, double Y倍率) override
| 縦横別で拡大率を掛ける. More...
void | Move (double X移動量, double Y移動量) override
| 相対座標で移動. More...
void | Rotate (double 回転角度) override
| 回転させる. More...
double | GetAngle () const override
| 角度を取得する. More...
double | GetX () const override
| X座標を取得. More...
double | GetY () const override
| Y座標を取得. More...
double | GetW () const override
| X座標を取得. More...
double | GetH () const override
| Y座標を取得. More...
void | SetColor (const Color &描画色)
| 色をまとめて変更する、透明度も含む. More...
double | GetZoomX () const
| 横方向の拡大率を取得. More...
double | GetZoomY () const
| 縦方向の拡大率を取得. More...
bool | Hit (const IModel *判定を行うModel) const
| Modelとの衝突判定. More...
bool | Hit (const IShape *判定を行うShape) const
| Shapeとの衝突判定. More...
void | MultiZoom (double 倍率)
| 拡大率を掛け算する. More...
void | SetZoom (double X拡大率, double Y拡大率)
| 拡大率を設定. More...
virtual void | SetZoom (double X拡大率, double Y拡大率)
| 拡大率を設定. More...
void | MoveA (double 距離, double 方向)
| 極座標で移動. More...
void | MoveA (double 距離, double 方向)
| 極座標で移動. More...
void | MoveF (double 距離)
| 前方に移動. More...
void | SetAngle (double 指定角度)
| 角度を指定する. More...
virtual void | SetAngle (double 指定角度)
| 角度を指定する. More...
double | GetDirect (IPosition *比較対象) const
| 対象との角度を取得. More...
double | GetDirect (IPosition *比較対象) const
| 対象との角度を取得. More...
double | GetDistance (IPosition *比較対象) const
| 対象との相対座標を取得. More...
double | GetDistance (IPosition *比較対象) const
| 対象との相対座標を取得. More...
double | CompareAngle (double 角度)
| 角度の差を計算する

## Public Attributes
IShape & | iShape
| 対応Shape
ISprite & | iSprite
| 対応Sprite

## Protected Attributes
bool | isRemove = false
| 消滅フラグ
double | zoomX = 1
| 図形の拡大率
double | zoomY = 1
| 図形の拡大率

## Detailed Description

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

//Copyright © 2014 SDXFramework
//[License]GNU Affero General Public License, version 3
//[Contact]http://sourceforge.jp/projects/dxframework/
//初期化を行い何かキーを押すと終了する
bool SampleModel()
{
using namespace SDX;
System::Initialise("sample", 640, 480);
Image くま("data/pipo-enemy037.png");
Font フォント(SystemFont::Gothic, 10);
Film がいこつ("data/hone.png", 12, 3, 4,12);
ImagePack 枠画像("data/pipo-WindowBase001.png",9,3,3);
BmpFrame 枠(&枠画像);
がいこつ.SetType(FilmType::Reverse);
//各種スプライトと組み合わせたモデル
Model<Point, SpImage> modelA({ 100, 400 }, &くま);
Model<Circle, SpAnime> modelB({ 200, 300 ,20}, &がいこつ);
Model<Rect, SpFont> modelC({ 320, 240 , 100, 10}, { &フォント ,"Hello World"});
Model<Rect, SpFrame> modelD({ 400, 100, 100, 100 }, &枠);
//各種モーション
MOTION::Bound<SPEED::Liner> motionA( 5 , { 0, 0, 640, 480 } , PAI/4);
MOTION::Bound<SPEED::Liner> motionB( 10 , { 0, 0, 640, 480 }, PAI/3);
MOTION::Orbit<SPEED::Liner> motionC(0.05, 200, 100, PAI / 4);
MOTION::ToPoint<SPEED::Liner> motionD(5, { 320, 240 });
IModel *modelS[4] = {&modelA,&modelB,&modelC,&modelD};
MOTION::IMotion *motionS[4] = { &motionA, &motionB, &motionC, &motionD};
while (System::Update())
{
for (int a = 0; a < 4; ++a)
{
modelS[a]->iSprite.Update();//SpAnimeは更新が必要
motionS[a]->Update( modelS[a] );//modelを移動
modelS[a]->Draw();//modelを描画
//衝突中のモデルを回転させる
for (int b = a+1 ; b < 4; ++b)
{
if (modelS[a]->Hit(modelS[b]))
{
modelS[a]->Rotate(0.1);
modelS[b]->Rotate(0.1);
break;
}
}
}
if (Input::key.Return.on){ break;}//Enterで終了
}
System::End();
return true;
}

## Constructor & Destructor Documentation

SDX::IModel::IModel | ( | IShape & | 図形,
|  | ISprite & | 描画方法
| ) |  |

コンストラクタ.

## Member Function Documentation

bool SDX::IModel::GetRemoveFlag | ( |  | ) | const

消滅フラグの取得.

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

更新処理を行う.

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

影の大きさを設定.

virtual void SDX::IModel::Draw | ( |  | ) | const
| virtual

描画する.

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

影を描画する.

void SDX::IModel::SetPos | ( | double | X座標,
|  | double | Y座標
| ) |  |
| override virtual

指定座標に移動.

Implements SDX::IPosition.

void SDX::IModel::MultiZoom | ( | double | X倍率,
|  | double | Y倍率
| ) |  |
| override virtual

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

Implements SDX::IPosition.

void SDX::IModel::Move | ( | double | X移動量,
|  | double | Y移動量
| ) |  |
| override virtual

相対座標で移動.

Implements SDX::IPosition.

void SDX::IModel::Rotate | ( | double | 回転角度 | ) |
| override virtual

回転させる.

Implements SDX::IPosition.

double SDX::IModel::GetAngle | ( |  | ) | const
| override virtual

角度を取得する.

Reimplemented from SDX::IPosition.

double SDX::IModel::GetX | ( |  | ) | const
| override virtual

X座標を取得.

Implements SDX::IPosition.

double SDX::IModel::GetY | ( |  | ) | const
| override virtual

Y座標を取得.

Implements SDX::IPosition.

double SDX::IModel::GetW | ( |  | ) | const
| override virtual

X座標を取得.

Implements SDX::IPosition.

double SDX::IModel::GetH | ( |  | ) | const
| override virtual

Y座標を取得.

Implements SDX::IPosition.

void SDX::IModel::SetColor | ( | const Color & | 描画色 | ) |

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

double SDX::IModel::GetZoomX | ( |  | ) | const

横方向の拡大率を取得.

double SDX::IModel::GetZoomY | ( |  | ) | const

縦方向の拡大率を取得.

bool SDX::IModel::Hit | ( | const IModel * | 判定を行うModel | ) | const

Modelとの衝突判定.

bool SDX::IModel::Hit | ( | const IShape * | 判定を行うShape | ) | const

Shapeとの衝突判定.

void SDX::IPosition::MultiZoom | ( | double | 倍率 | ) |
| inherited

拡大率を掛け算する.

void SDX::IPosition::SetZoom | ( | double | X拡大率,
|  | double | Y拡大率
| ) |  |
| inherited

拡大率を設定.

virtual void SDX::IPosition::SetZoom | ( | double | X拡大率,
|  | double | Y拡大率
| ) |  |
| virtual inherited

拡大率を設定.

void SDX::IPosition::MoveA | ( | double | 距離,
|  | double | 方向
| ) |  |
| inherited

極座標で移動.

void SDX::IPosition::MoveA | ( | double | 距離,
|  | double | 方向
| ) |  |
| inherited

極座標で移動.

void SDX::IPosition::MoveF | ( | double | 距離 | ) |
| inherited

前方に移動.

void SDX::IPosition::SetAngle | ( | double | 指定角度 | ) |
| inherited

角度を指定する.

virtual void SDX::IPosition::SetAngle | ( | double | 指定角度 | ) |
| virtual inherited

角度を指定する.

double SDX::IPosition::GetDirect | ( | IPosition * | 比較対象 | ) | const
| inherited

対象との角度を取得.

double SDX::IPosition::GetDirect | ( | IPosition * | 比較対象 | ) | const
| inherited

対象との角度を取得.

double SDX::IPosition::GetDistance | ( | IPosition * | 比較対象 | ) | const
| inherited

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

double SDX::IPosition::GetDistance | ( | IPosition * | 比較対象 | ) | const
| inherited

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