1 #pragma once//☀SDXFramework
2 #include<Framework/Sprite.h>
3 #include<Framework/Shape.h>
4 #include<Framework/Camera.h>
5 #include<Framework/SpriteDerived.h>
18 double shadowSize = 1;
21 bool isRemove =
false;
23 std::vector<std::shared_ptr<Sprite>> sprites;
24 std::unique_ptr<Shape> shape;
29 if( sprite ) sprites.emplace_back(sprite);
57 void Add(
Sprite* 追加するスプライト)
59 if (追加するスプライト)sprites.emplace_back(追加するスプライト);
65 for(
auto it : sprites )
67 if( !it->isVisible )
continue;
68 if( !it->isAllway && it->isActive )
continue;
70 if( it->GetColor() == Color::White )
91 if( shadowSize <= 0 )
return;
96 for(
auto it : sprites )
98 if( !it->isVisible )
continue;
99 if( !it->isAllway && it->isActive )
continue;
101 if( it->GetColor().GetAlpha() <= 255 )
103 double zoomX = it->zoomX;
104 double zoomY = it->zoomY;
105 it->zoomX *= shadowSize;
106 it->zoomY *= shadowSize;
118 for(
auto it: sprites )
125 void Move(
double X移動量 ,
double Y移動量)
127 shape->
Move(X移動量, Y移動量);
133 shape->
Move(距離 * cos(角度), 距離 * sin(角度));
165 for (
auto it : sprites)
167 it->MultiZoom(X倍率, Y倍率);
179 for(
auto it : sprites )
194 for(
auto it : sprites )
196 it->Rotate( 角度 - this->angle);
204 for (
auto it : sprites)
225 return shape->
GetX();
231 return shape->
GetY();
237 return shape->
Hit(判定を行うModel->shape.get());
243 return shape->
Hit(判定を行うShape);
253 pt.x = 座標変換に使うCamera->TransX(Input::mouse.x + 座標変換に使うCamera->GetCenterX());
254 pt.y = 座標変換に使うCamera->TransY(Input::mouse.y + 座標変換に使うCamera->GetCenterY());
256 pt.x = Input::mouse.x;
257 pt.y = Input::mouse.y;
260 return shape->
Hit(&pt);
267 return atan2( 比較対象->GetY() -
GetY(), 比較対象->GetX() -
GetX());
274 const double xd = this->
GetX() - 比較対象->GetX();
275 const double yd = this->
GetY() - 比較対象->GetY();
277 return sqrt( xd * xd + yd * yd );
static bool SetBlendMode(BlendMode ブレンドモード, int 設定値)
ブレンド描画のモードを設定.
Definition: Screen.h:136
ShapeとSpriteをまとめて、2Dモデルを表すクラス.
Definition: Model.h:12
void MultiZoom(double X倍率, double Y倍率)
縦横別で拡大率を掛ける.
Definition: Model.h:161
virtual void Move(double X移動量, double Y移動量)=0
相対座標で移動.
void SetAngle(double 角度)
角度を設定する.
Definition: Model.h:192
void AnimeUpdate()
アニメーションを更新する.
Definition: Model.h:116
static bool SetBright(Color 輝度)
描画輝度を設定.
Definition: Screen.h:153
void MovePolar(double 距離, double 角度)
極座標で移動.
Definition: Model.h:131
virtual void Update()
更新処理を行う.
Definition: Model.h:40
点を表す図形クラス.
Definition: Shape.h:284
bool Hit(Camera *座標変換に使うCamera=nullptr)
マウスカーソルとの衝突判定.
Definition: Model.h:247
bool Hit(Shape *判定を行うShape)
Shapeとの衝突判定.
Definition: Model.h:241
double GetZoomX()
横方向の拡大率を取得.
Definition: Model.h:211
static Camera * Now()
アクティブなカメラを取得.
Definition: Camera.h:54
void SetColor(Color 描画色)
色をまとめて変更する、透明度も含む.
Definition: Model.h:202
bool Hit(Model *判定を行うModel)
Modelとの衝突判定.
Definition: Model.h:235
void SetZoom(double 拡大率)
拡大率を設定する.
Definition: Model.h:143
void MultiZoom(double 倍率)
拡大率を掛け算する.
Definition: Shape.h:111
void SetZoom(double X拡大率, double Y拡大率)
縦横別で拡大率を設定する.
Definition: Model.h:149
色を表すクラス.
Definition: Color.h:7
double GetAngle()
角度を取得する.
Definition: Model.h:186
double GetY() const
Y座標を取得.
Definition: Model.h:229
void SetIsCamera(bool カメラ利用フラグ)
描画にカメラを使うか設定.
Definition: Model.h:52
virtual bool Hit(const Shape *shape) const =0
衝突判定.
void Move(double X移動量, double Y移動量)
相対座標で移動.
Definition: Model.h:125
double GetDistance(T *比較対象)
対象との相対座標を取得.
Definition: Model.h:272
double GetZoomY()
縦方向の拡大率を取得.
Definition: Model.h:217
void Rotate(double 回転角度)
回転させる.
Definition: Model.h:175
void MultiZoom(double 倍率)
拡大率を掛ける.
Definition: Model.h:155
double GetX() const
X座標を取得.
Definition: Model.h:223
bool GetRemoveFlag()
消滅フラグの取得.
Definition: Model.h:34
2D用に座標変換を行うカメラを表すクラス.
Definition: Camera.h:16
void DrawShadow(double X座標ずれ, double Y座標ずれ)
影を描画する.
Definition: Model.h:89
2Dモデルに貼り付けるスプライトを表す抽象クラス.
Definition: Sprite.h:15
double GetDirect(T *比較対象)
対象との角度を取得.
Definition: Model.h:265
virtual double GetX() const =0
X座標を取得.
virtual void SetPos(double X座標, double Y座標)=0
指定座標に移動.
位置情報を持つ図形の抽象クラス.
Definition: Shape.h:16
virtual double GetY() const =0
Y座標を取得.
void SetShadowSize(double 影の表示倍率)
影の大きさを設定.
Definition: Model.h:46
void SetPos(double X座標, double Y座標)
指定座標に移動.
Definition: Model.h:137
virtual void Draw() const
描画する.
Definition: Model.h:63