|
| Rect (double x, double y, double width, double height) |
|
virtual Shape * | Clone (double x, double y) const |
| 同じ形の図形を作る. [詳細]
|
|
void | SetPos (double x, double y) |
| 指定座標に移動. [詳細]
|
|
void | Move (double mX, double mY) |
| 相対座標で移動. [詳細]
|
|
void | MultiZoom (double rateX, double rateY) |
| 縦横別で拡大率を掛け算する. [詳細]
|
|
void | Rotate (double angle) |
| 回転する. [詳細]
|
|
void | SetAngle (double angle) |
| 角度を指定する. [詳細]
|
|
void | Draw (Color rgb, int transRate, Camera *camera=nullptr) const |
| 描画する. [詳細]
|
|
double | GetX () const |
| X座標を取得. [詳細]
|
|
double | GetY () const |
| Y座標を取得. [詳細]
|
|
double | GetW () const |
| 幅を取得. [詳細]
|
|
double | GetH () const |
| 高さを取得. [詳細]
|
|
virtual double | GetLeft () const |
|
virtual double | GetTop () const |
|
virtual double | GetRight () const |
|
virtual double | GetBottom () const |
|
bool | Hit (const Shape *shape) const |
| 衝突判定. [詳細]
|
|
bool | Hit (const Complex *complex) const |
|
bool | Hit (const Point *point) const |
|
bool | Hit (const Line *line) const |
|
bool | Hit (const Rect *rect) const |
|
bool | Hit (const Circle *circle) const |
|
void | SetZoom (double X拡大率, double Y拡大率) |
| 拡大率を設定. [詳細]
|
|
void | MultiZoom (double 倍率) |
| 拡大率を掛け算する. [詳細]
|
|
void | MoveA (double 距離, double 方向) |
| 極座標で移動. [詳細]
|
|
double | GetDirect (Shape *比較対象) |
| 対象との角度を取得. [詳細]
|
|
double | GetDistance (Shape *比較対象) |
| 対象との相対座標を取得. [詳細]
|
|
|
static bool | RectRect (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) |
| 矩形の交差判定. [詳細]
|
|
static bool | LineLine (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) |
| 線分の交差判定. [詳細]
|
|
static int | PointPoint (double x1, double y1, double x2, double y2) |
| 二点間の距離を計算. [詳細]
|
|
矩形を表す図形クラス.
bool SampleShape()
{
using namespace SDX;
Rect rect(10, 10, 100, 100);
Line line(200, 100, PAI / 4, 600, 5);
shapes[0] = &circle;
shapes[1] = ▭
shapes[2] = &line;
{
circle.
SetPos(Input::mouse.x,Input::mouse.y);
line.Rotate(0.01);
bool isHit[3];
isHit[0] = circle.Hit(&rect) || circle.Hit(&line);
isHit[1] = shapes[1]->Hit(shapes[0]) || shapes[1]->Hit(shapes[2]);
isHit[2] = shapes[2]->Hit(shapes[0]) || shapes[2]->Hit(shapes[1]);
for (int i = 0; i < 3;++i )
{
if (isHit[i])
{
shapes[i]->Draw(Color::Red,255);
}
else
{
shapes[i]->Draw(Color::White, 255);
}
}
if (Input::key.Return.on) break;
}
return true;
}