SDXFrameWork  0.09
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Public Member Functions | Static Public Member Functions | List of all members
SDX::Camera Class Reference

2D用に座標変換を行うカメラを表すクラス. More...

#include <Camera.h>

Public Member Functions

 Camera (double 座標X, double 座標Y, double 拡大率)
 カメラの作成. More...
 
void SetActive ()
 カメラをアクティブにする. More...
 
void SetCenter (double X座標, double Y座標)
 カメラの焦点を設定. More...
 
double GetCenterX ()
 焦点のX座標を取得. More...
 
double GetCenterY ()
 焦点のY座標を取得. More...
 
void Set (double X座標, double Y座標, double 拡大率)
 位置と倍率を設定. More...
 
void MoveForcus (double X座標, double Y座標)
 移動目標座標を相対移動. More...
 
void SetForcus (double X座標, double Y座標)
 移動目標座標を設定. More...
 
void SetZoomForcus (double 拡大率)
 拡大目標をセット. More...
 
void SetSpeed (double 追跡速度)
 追跡速度を設定. More...
 
void SetZoomSpeed (double 拡大速度)
 拡大応答速度を設定. More...
 
double GetZoom ()
 拡大率を取得. More...
 
void SetChaseType (ChaseType 追跡タイプ)
 追跡方法を設定. More...
 
void Update ()
 追跡方法や速度に応じてカメラ位置の更新. More...
 
double TransX (double X座標変換前)
 カメラの位置と拡大率に応じてX座標を変換. More...
 
double TransY (double Y座標変換前)
 カメラの位置と拡大率に応じてY座標を変換. More...
 
Point Trans (const Point &変換前座標)
 

Static Public Member Functions

static CameraNow ()
 アクティブなカメラを取得. More...
 

Detailed Description

2D用に座標変換を行うカメラを表すクラス.

//©SDXFramework http://sourceforge.jp/projects/dxframework/
//🍣初期化を行い何かキーを押すと終了する
//\todo 未実装
bool SampleModel()
{
using namespace SDX;
System::Initialise("sample", 600, 400);
/*
Camera camera(300, 200, 1);
camera.SetActive();
Image image("image.bmp");
Model model(new Point(300, 200), new SpImage(&image));
Model model2(new Point(550, 350), new SpImage(&image));
model2.SetIsCamera(false);
while (System::Update())
{
model.Draw();
model2.Draw();
camera.Update();
if (Input::pad.Down.hold ) Camera::Now()->MoveForcus(0, 5);
if (Input::pad.Up.hold ) Camera::Now()->MoveForcus(0, -5);
if (Input::pad.Right.hold ) Camera::Now()->MoveForcus(5, 0);
if (Input::pad.Left.hold ) Camera::Now()->MoveForcus(-5, 0);
if (Input::key.Z.hold) Camera::Now()->SetZoomForcus(2);
if (Input::key.X.hold) Camera::Now()->SetZoomForcus(0.5);
if (Input::key.C.hold) Camera::Now()->SetZoomForcus(1);
if (Input::key.Return.on) break;//Enterで終了
}
System::End();
*/
return true;
}

Constructor & Destructor Documentation

SDX::Camera::Camera ( double  座標X,
double  座標Y,
double  拡大率 
)

カメラの作成.

初期座標と拡大率を指定してカメラを初期化

Member Function Documentation

static Camera* SDX::Camera::Now ( )
static

アクティブなカメラを取得.

void SDX::Camera::SetActive ( )

カメラをアクティブにする.

同時にアクティブになるCameraは1つだけです

void SDX::Camera::SetCenter ( double  X座標,
double  Y座標 
)

カメラの焦点を設定.

double SDX::Camera::GetCenterX ( )

焦点のX座標を取得.

double SDX::Camera::GetCenterY ( )

焦点のY座標を取得.

void SDX::Camera::Set ( double  X座標,
double  Y座標,
double  拡大率 
)

位置と倍率を設定.

void SDX::Camera::MoveForcus ( double  X座標,
double  Y座標 
)

移動目標座標を相対移動.

void SDX::Camera::SetForcus ( double  X座標,
double  Y座標 
)

移動目標座標を設定.

void SDX::Camera::SetZoomForcus ( double  拡大率)

拡大目標をセット.

void SDX::Camera::SetSpeed ( double  追跡速度)

追跡速度を設定.

void SDX::Camera::SetZoomSpeed ( double  拡大速度)

拡大応答速度を設定.

double SDX::Camera::GetZoom ( )

拡大率を取得.

void SDX::Camera::SetChaseType ( ChaseType  追跡タイプ)

追跡方法を設定.

void SDX::Camera::Update ( )

追跡方法や速度に応じてカメラ位置の更新.

double SDX::Camera::TransX ( double  X座標変換前)

カメラの位置と拡大率に応じてX座標を変換.

double SDX::Camera::TransY ( double  Y座標変換前)

カメラの位置と拡大率に応じてY座標を変換.