5 #include <Framework/Sprite.h>
6 #include <Framework/Shape.h>
17 double shadowSize = 1;
22 virtual const IShape& GetShape()
const = 0;
23 virtual const ISprite& GetSprite()
const
31 return const_cast<ISprite&
>(
static_cast<const IModel&
>(*this).GetSprite());
36 return const_cast<IShape&
>(
static_cast<const IModel&
>(*this).GetShape());
44 virtual ~IModel() =
default;
64 GetSprite().
Draw( GetShape() );
73 if (shadowSize <= 0)
return;
80 GetSprite().
zoomX *= shadowSize;
81 GetSprite().
zoomY *= shadowSize;
83 GetSprite().
gap.
Move(X座標ずれ,Y座標ずれ);
84 GetSprite().
Draw(GetShape());
85 GetSprite().
gap.
Move(-X座標ずれ, -Y座標ずれ);
92 void SetPos(
double X座標,
double Y座標)
override
94 GetShape().
SetPos(X座標, Y座標);
108 void Move(
double X移動量,
double Y移動量)
override
110 GetShape().
Move(X移動量, Y移動量);
130 return GetShape().
GetX();
136 return GetShape().
GetY();
142 return GetShape().
GetW();
148 return GetShape().
GetH();
154 GetSprite().
color = 描画色;
172 return GetShape().
Hit(&判定を行うModel->GetShape());
178 return GetShape().
Hit(判定を行うShape);
bool isRemove
消滅フラグ
Definition: IModel.h:19
virtual double GetW() const =0
幅を取得.
void SetPos(double X座標, double Y座標) override
指定座標に移動.
Definition: IModel.h:92
double GetH() const override
Y座標を取得.
Definition: IModel.h:146
virtual double GetH() const =0
高さを取得.
virtual void Draw() const
描画する.
Definition: IModel.h:62
void DrawShadow(double X座標ずれ, double Y座標ずれ)
影を描画する.
Definition: IModel.h:71
void Rotate(double 回転する角度)
回転させる.
Definition: ISprite.h:84
double GetAngle() const override
角度を取得する.
Definition: IModel.h:122
衝突判定可能な図形の抽象クラス.
Definition: IShape.h:21
double GetZoomX() const
横方向の拡大率を取得.
Definition: IModel.h:158
void SetColor(const Color &描画色)
色をまとめて変更する、透明度も含む.
Definition: IModel.h:152
virtual bool Hit(const IShape *iShape) const =0
衝突判定.
bool GetRemoveFlag() const
消滅フラグの取得.
Definition: IModel.h:47
virtual void MultiZoom(double X倍率, double Y倍率)=0
縦横別で拡大率を掛け算する.
double zoomY
描画倍率
Definition: ISprite.h:22
void Rotate(double 回転角度) override
回転させる.
Definition: IModel.h:114
Color color
描画色
Definition: ISprite.h:27
2Dモデルに貼り付けるスプライトを表す抽象クラス.
Definition: ISprite.h:17
virtual void Rotate(double 回転する角度)=0
回転する.
void SetShadowSize(double 影の表示倍率)
影の大きさを設定.
Definition: IModel.h:56
virtual double GetY() const =0
Y座標を取得.
色を表すクラス.
Definition: Color.h:11
virtual void Move(double X移動量, double Y移動量)=0
相対座標で移動.
void MultiZoom(double X倍率, double Y倍率) override
縦横別で拡大率を掛ける.
Definition: IModel.h:98
bool Hit(const IModel *判定を行うModel) const
Modelとの衝突判定.
Definition: IModel.h:170
virtual void Update()
更新処理を行う.
Definition: IModel.h:53
virtual void Draw(const IShape &図形) const =0
ISpriteを描画する.
double GetW() const override
X座標を取得.
Definition: IModel.h:140
描画しないNullスプライト.
Definition: Sprite.h:240
Point gap
Shape中心とSpriteとの位置差
Definition: ISprite.h:28
bool Hit(const IShape *判定を行うShape) const
Shapeとの衝突判定.
Definition: IModel.h:176
double zoomX
図形の拡大率
Definition: IPosition.h:14
void Move(double X移動量, double Y移動量) override
相対座標で移動.
Definition: IModel.h:108
double GetX() const override
X座標を取得.
Definition: IModel.h:128
virtual void SetPos(double X座標, double Y座標)=0
指定座標に移動.
位置と方向を持つクラスのインターフェース.
Definition: IPosition.h:11
ShapeとSpriteをまとめて、2Dモデルを表すクラス.
Definition: IModel.h:13
void Move(double X移動量, double Y移動量) override
相対座標で移動.
Definition: Point.h:57
void MultiZoom(double 倍率)
拡大率を掛け算する.
Definition: ISprite.h:44
virtual double GetX() const =0
X座標を取得.
double GetY() const override
Y座標を取得.
Definition: IModel.h:134
double zoomX
描画倍率
Definition: ISprite.h:21
double zoomY
図形の拡大率
Definition: IPosition.h:15
double GetZoomY() const
縦方向の拡大率を取得.
Definition: IModel.h:164