5 #include <Framework/ImagePack.h>
6 #include <Framework/IFrame.h>
37 if (フレーム画像->
GetSize() != 9)
return false;
48 if (frame ==
nullptr){
return; }
56 color.
GetRed() * 描画色.GetRed() / 255,
57 color.
GetGreen() * 描画色.GetGreen() / 255,
58 color.
GetBlue() * 描画色.GetBlue() / 255,
59 color.
GetAlpha() * 描画色.GetAlpha() / 255
74 if (width * 2 > 領域.
GetW())
76 width = (int)領域.
GetW() / 2;
78 partLeft = frame->
GetWidth() - width;
81 if (height * 2 > 領域.
GetH())
83 height = (int)領域.
GetH() / 2;
94 width = int(width * camera->zoom);
95 height = int(height *camera->zoom);
98 int xA = (int)camera->TransX(領域.
GetLeft());
100 int xD = (int)camera->TransX(領域.
GetRight());
103 int yA = (int)camera->TransY(領域.
GetTop());
104 int yB = yA + height;
105 int yD = (int)camera->TransY(領域.
GetBottom());
106 int yC = yD - height;
109 frame[0][4]->DrawExtend({ xB, yB, xC -xB, yC - yB });
113 frame[0][3]->DrawPartExtend({ xA, yB, width, yC - yB }, { 0, 0, width, height});
114 frame[0][5]->DrawPartExtend({ xC, yB, width, yC - yB }, { partLeft, 0, width, height });
116 frame[0][1]->DrawPartExtend({ xB, yA, xC - xB, height }, { 0, 0, width, height });
117 frame[0][7]->DrawPartExtend({ xB, yC, xC - xB, height }, { 0, partTop, width, height });
119 frame[0][0]->DrawPartExtend({ xA, yA, width, height }, { 0, 0, width, height });
120 frame[0][2]->DrawPartExtend({ xC, yA, width, height }, { partLeft, 0, width, height });
121 frame[0][6]->DrawPartExtend({ xA, yC, width, height }, { 0, partTop, width, height });
122 frame[0][8]->DrawPartExtend({ xC, yC, width, height }, { partLeft, partTop, width, height });
126 frame[0][3]->DrawExtend({ xA, yB, width, yC - yB });
127 frame[0][5]->DrawExtend({ xC, yB, width, yC - yB });
129 frame[0][1]->DrawExtend({ xB, yA, xC - xB, height });
130 frame[0][7]->DrawExtend({ xB, yC, xC - xB, height });
132 frame[0][0]->DrawExtend({ xA, yA, width, height });
133 frame[0][2]->DrawExtend({ xC, yA, width, height });
134 frame[0][6]->DrawExtend({ xA, yC, width, height });
135 frame[0][8]->DrawExtend({ xC, yC, width, height });
144 int xB = (int)領域.
GetLeft() + width;
145 int xC = (int)領域.
GetRight() - width;
146 int yA = (int)領域.
GetTop();
147 int yB = (int)領域.
GetTop() + height;
151 frame[0][4]->DrawExtend({ xB, yB, 領域.
GetW() - width * 2, 領域.
GetH() - height * 2 });
156 frame[0][3]->DrawPartExtend({ xA, yB, width, 領域.
GetH() - height * 2 }, { 0, 0, width, height });
157 frame[0][5]->DrawPartExtend({ xC, yB, width, 領域.
GetH() - height * 2 }, { partLeft, 0, width, height });
159 frame[0][1]->DrawPartExtend({ xB, yA, 領域.
GetW() - width * 2, height }, { 0, 0, width, height });
160 frame[0][7]->DrawPartExtend({ xB, yC, 領域.
GetW() - width * 2, height }, { 0, partTop, width, height });
162 frame[0][0]->DrawPartExtend({ xA, yA, width, height }, { 0, 0, width, height });
163 frame[0][2]->DrawPartExtend({ xC, yA, width, height }, { partLeft, 0, width, height });
164 frame[0][6]->DrawPartExtend({ xA, yC, width, height }, { 0, partTop, width, height });
165 frame[0][8]->DrawPartExtend({ xC, yC, width, height }, { partLeft, partTop, width, height });
170 frame[0][3]->DrawExtend({ xA, yB, width, 領域.
GetH() - height * 2 });
171 frame[0][5]->DrawExtend({ xC, yB, width, 領域.
GetH() - height * 2 });
173 frame[0][1]->DrawExtend({ xB, yA, 領域.
GetW() - width * 2, height });
174 frame[0][7]->DrawExtend({ xB, yC, 領域.
GetW() - width * 2, height });
176 frame[0][0]->DrawExtend({ xA, yA, width, height });
177 frame[0][2]->DrawExtend({ xC, yA, width, height });
178 frame[0][6]->DrawExtend({ xA, yC, width, height });
179 frame[0][8]->DrawExtend({ xC, yC, width, height });
int GetGreen() const
緑の要素を取得.
Definition: Color.h:36
矩形を表す図形クラス.
Definition: Rect.h:22
double GetBottom() const
下端のY座標を取得.
Definition: Rect.h:136
Color rgba
描画輝度とα値
Definition: Renderer.h:53
double GetTop() const
上端のY座標を取得.
Definition: Rect.h:124
double GetRight() const
右端のX座標を取得.
Definition: Rect.h:130
int GetWidth() const
最大幅を取得.
Definition: ImagePack.h:192
int GetBlue() const
青の要素を取得.
Definition: Color.h:42
double GetLeft() const
左端のX座標を取得.
Definition: Rect.h:118
static Renderer * GetRenderer()
アクティブなRendererを取得.
Definition: Screen.h:33
bool Make(ImagePack *フレーム画像)
フレームを作成する.
Definition: BmpFrame.h:29
void SetColor(int 赤, int 緑, int 青, int α値=255)
色の各要素を設定.
Definition: Color.h:24
static bool IsLoading()
非同期読み込み登録中かどうか.
Definition: Loading.h:90
描画用枠を表すクラス.
Definition: BmpFrame.h:12
static const Color White
白 [RGB]255,255,255
Definition: Color.h:81
void Draw(const Rect &領域, const Color &描画色=Color::White) const
矩形のフレームを描画.
Definition: BmpFrame.h:46
色を表すクラス.
Definition: Color.h:11
static void AddLoading(std::function< void(void)> &&読み込み関数)
非同期読み込み処理に追加.
Definition: Loading.h:96
int GetSize() const
要素数を取得.
Definition: ImagePack.h:186
BmpFrame(ImagePack *フレーム画像)
フレームを作成する.
Definition: BmpFrame.h:22
static Camera * Get()
現在アクティブなカメラを取得.
Definition: Camera.h:57
int GetRed() const
赤の要素を取得.
Definition: Color.h:30
int GetHeight() const
最大高さを取得.
Definition: ImagePack.h:198
複数のImageをまとめるクラス.
Definition: ImagePack.h:17
static void Set(Camera *アクティブにするCamera=nullptr)
現在アクティブなカメラを設定.
Definition: Camera.h:63
int GetAlpha() const
透明度を取得.
Definition: Color.h:48
double GetW() const override
幅を取得.
Definition: Rect.h:107
描画用枠のインターフェース.
Definition: IFrame.h:11
double GetH() const override
高さを取得.
Definition: Rect.h:112