表示するサンプルコードの言語を指定できます。
カメラの使用
Altseedで描画結果を別の範囲に写すには、CameraObject2Dを使用します。
具体的には、描画結果を切り取る範囲と、その切り取った内容を表示する範囲をそれぞれ矩形で指定します。
すでに描画されたテクスチャの一部を切り取って、別の場所に写すサンプル。
C++
#include <Altseed.h>
/**
@brief カメラを用いた描画空間の一部を切り取って描画するサンプルを表示する。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("CameraObject2D_Basic").c_str(), 640, 480, asd::EngineOption());
// 画像を読み込む。
auto tex0 = asd::Engine::GetGraphics()->CreateTexture2D(asd::ToAString("Data/Texture/Picture1.png").c_str());
// テクスチャを描画するオブジェクトを設定する。
auto obj0 = std::make_shared<asd::TextureObject2D>();
obj0->SetTexture(tex0);
obj0->SetPosition(asd::Vector2DF(10, 10));
obj0->SetScale(asd::Vector2DF(0.7f, 0.7f));
asd::Engine::AddObject2D(obj0);
//画面全体を写すカメラを設定する。(オブジェクトをそのまま描画する。)
auto entityCamera = std::make_shared<asd::CameraObject2D>();
entityCamera->SetSrc(asd::RectI(0, 0, 640, 480));
entityCamera->SetDst(asd::RectI(0, 0, 640, 480));
asd::Engine::AddObject2D(entityCamera);
//テクスチャの左上から縦横150ピクセルを切り取って描画するカメラを設定する。
auto camera = std::make_shared<asd::CameraObject2D>();
camera->SetSrc(asd::RectI(10, 10, 150, 150));
camera->SetDst(asd::RectI(450, 10, 150, 150));
asd::Engine::AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedを終了する。
asd::Engine::Terminate();
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// カメラを用いた描画空間の一部を切り取って描画するサンプルを表示する。
/// </summary>
public class CameraObject2D_Basic
{
public string Description
{
get { return "カメラを用いて描画空間の一部を切り取って描画するサンプルです。"; }
}
public string Title
{
get { return "カメラの基本"; }
}
public string ClassName
{
get { return "CameraObject2D_Basic"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Basic", 640, 480, new asd.EngineOption());
// 画像を読み込む。
var tex0 = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Picture1.png");
// テクスチャを描画するオブジェクトを設定する。
var obj0 = new asd.TextureObject2D();
obj0.Texture = tex0;
obj0.Position = new asd.Vector2DF(10, 10);
obj0.Scale = new asd.Vector2DF(0.7f, 0.7f);
asd.Engine.AddObject2D(obj0);
//画面全体を写すカメラを設定する。(オブジェクトをそのまま描画する。)
var entityCamera = new asd.CameraObject2D();
entityCamera.Src = new asd.RectI(0, 0, 640, 480);
entityCamera.Dst = new asd.RectI(0, 0, 640, 480);
asd.Engine.AddObject2D(entityCamera);
//テクスチャの左上から縦横150ピクセルを切り取って描画するカメラを設定する。
var camera = new asd.CameraObject2D();
camera.Src = new asd.RectI(10, 10, 150, 150);
camera.Dst = new asd.RectI(450, 10, 150, 150);
asd.Engine.AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
Java
/**
* カメラを用いた描画空間の一部を切り取って描画するサンプルを表示する。
*/
public class CameraObject2D_Basic
{
public java.lang.String getDescription() {
return "カメラを用いて描画空間の一部を切り取って描画するサンプルです。";
}
public java.lang.String getTitle() {
return "カメラの基本";
}
public java.lang.String getClassName() {
return "CameraObject2D_Basic";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Basic", 640, 480, new asd.EngineOption());
// 画像を読み込む。
asd.Texture2D tex0 = asd.Engine.getGraphics().CreateTexture2D("Data/Texture/Picture1.png");
// テクスチャを描画するオブジェクトを設定する。
asd.TextureObject2D obj0 = new asd.TextureObject2D();
obj0.setTexture(tex0);
obj0.setPosition(new asd.Vector2DF(10, 10));
obj0.setScale(new asd.Vector2DF(0.7f, 0.7f));
asd.Engine.AddObject2D(obj0);
// 画面全体を写すカメラを設定する。(オブジェクトをそのまま描画する。)
asd.CameraObject2D entityCamera = new asd.CameraObject2D();
entityCamera.setSrc(new asd.RectI(0, 0, 640, 480));
entityCamera.setDst(new asd.RectI(0, 0, 640, 480));
asd.Engine.AddObject2D(entityCamera);
// テクスチャの左上から縦横150ピクセルを切り取って描画するカメラを設定する。
asd.CameraObject2D camera = new asd.CameraObject2D();
camera.setSrc(new asd.RectI(10, 10, 150, 150));
camera.setDst(new asd.RectI(450, 10, 150, 150));
asd.Engine.AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
描画平面の一部を切り取って、虫眼鏡のように拡大して写すサンプル。
C++
#include <Altseed.h>
/**
@brief カメラを用いて描画空間の一部を虫眼鏡のような表示で描画するサンプル。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("CameraObject2D_Magnify").c_str(), 640, 480, asd::EngineOption());
// 画像を読み込み、画像描画オブジェクトを設定する。
{
auto tex0 = asd::Engine::GetGraphics()->CreateTexture2D(asd::ToAString("Data/Texture/Sample1.png").c_str());
auto obj0 = std::make_shared<asd::TextureObject2D>();
obj0->SetTexture(tex0);
obj0->SetCenterPosition(asd::Vector2DF(256, 256));
obj0->SetPosition(asd::Vector2DF(320, 240));
obj0->SetScale(asd::Vector2DF(0.5f, 0.5f));
asd::Engine::AddObject2D(obj0);
}
//一つ目の画面全体を写すカメラ。(オブジェクトをそのまま描画する。)
{
auto entityCamera = std::make_shared<asd::CameraObject2D>();
entityCamera->SetSrc(asd::RectI(0, 0, 640, 480));
entityCamera->SetDst(asd::RectI(0, 0, 640, 480));
asd::Engine::AddObject2D(entityCamera);
}
//二つ目のマウスポインタの周辺を拡大して表示するカメラ。
auto camera2 = std::make_shared<asd::CameraObject2D>();
asd::Engine::AddObject2D(camera2);
//フレーム用画像を読み込む
auto frame = std::make_shared<asd::TextureObject2D>();
{
auto tex = asd::Engine::GetGraphics()->CreateTexture2D(asd::ToAString("Data/Texture/Frame.png").c_str());
frame->SetTexture(tex);
frame->SetCenterPosition(asd::Vector2DF(55.0f, 55.0f));
asd::Engine::AddObject2D(frame);
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
//マウスポインタの位置を取得する。
auto pos = asd::Engine::GetMouse()->GetPosition();
//拡大用カメラの描画元を指定する。
camera2->SetSrc(asd::RectI((int)(pos.X) - 25, (int)(pos.Y) - 25, 50, 50));
//ポインタを中心に100x100の拡大画像を表示する。
camera2->SetDst(asd::RectI((int)(pos.X) - 50, (int)(pos.Y) - 50, 100, 100));
//フレーム画像の描画中心をマウスポインタの位置に合わせる。
frame->SetPosition(pos);
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedの終了処理をする。
asd::Engine::Terminate();
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// カメラを用いて描画空間の一部を虫眼鏡のような表示で描画するサンプル。
/// </summary>
public class CameraObject2D_Magnify
{
public string Description
{
get { return "カメラを用いて描画空間の一部を虫眼鏡のように拡大して描画するサンプルです。"; }
}
public string Title
{
get { return "カメラによる拡大描画"; }
}
public string ClassName
{
get { return "CameraObject2D_Magnify"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Magnify", 640, 480, new asd.EngineOption());
// 画像を読み込み、画像描画オブジェクトを設定する。
{
var tex0 = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Sample1.png");
var obj0 = new asd.TextureObject2D();
obj0.Texture = tex0;
obj0.CenterPosition = new asd.Vector2DF(256, 256);
obj0.Position = new asd.Vector2DF(320, 240);
obj0.Scale = new asd.Vector2DF(0.5f, 0.5f);
asd.Engine.AddObject2D(obj0);
}
//一つ目の画面全体を写すカメラ。(オブジェクトをそのまま描画する。)
{
var camera1 = new asd.CameraObject2D();
camera1.Src = new asd.RectI(0, 0, 640, 480);
camera1.Dst = new asd.RectI(0, 0, 640, 480);
asd.Engine.AddObject2D(camera1);
}
//二つ目のマウスポインタの周辺を拡大して表示するカメラ。
var camera2 = new asd.CameraObject2D();
asd.Engine.AddObject2D(camera2);
//フレーム用画像を読み込む。
var frame = new asd.TextureObject2D();
{
var tex = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Frame.png");
frame.Texture = tex;
frame.CenterPosition = new asd.Vector2DF(55.0f, 55.0f);
asd.Engine.AddObject2D(frame);
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
//マウスポインタの位置を取得する。
var pos = asd.Engine.Mouse.Position;
//拡大用カメラの描画元を指定する。
camera2.Src = new asd.RectI((int)(pos.X) - 25, (int)(pos.Y) - 25, 50, 50);
//ポインタを中心に100x100の拡大画像を表示する。
camera2.Dst = new asd.RectI((int)(pos.X) - 50, (int)(pos.Y) - 50, 100, 100);
//フレーム画像の描画中心をマウスポインタの位置に合わせる。
frame.Position = pos;
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* カメラを用いて描画空間の一部を虫眼鏡のような表示で描画するサンプル。
*/
public class CameraObject2D_Magnify
{
public java.lang.String getDescription() {
return "カメラを用いて描画空間の一部を虫眼鏡のように拡大して描画するサンプルです。";
}
public java.lang.String getTitle() {
return "カメラによる拡大描画";
}
public java.lang.String getClassName() {
return "CameraObject2D_Magnify";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Magnify", 640, 480, new asd.EngineOption());
// 画像を読み込み、画像描画オブジェクトを設定する。
// 画像を読み込み、画像描画オブジェクトを設定する。
asd.Texture2D tex0 = asd.Engine.getGraphics().CreateTexture2D("Data/Texture/Sample1.png");
asd.TextureObject2D obj0 = new asd.TextureObject2D();
obj0.setTexture(tex0);
obj0.setCenterPosition(new asd.Vector2DF(256, 256));
obj0.setPosition(new asd.Vector2DF(320, 240));
obj0.setScale(new asd.Vector2DF(0.5f, 0.5f));
asd.Engine.AddObject2D(obj0);
// 一つ目の画面全体を写すカメラ。(オブジェクトをそのまま描画する。)
// 一つ目の画面全体を写すカメラ。(オブジェクトをそのまま描画する。)
asd.CameraObject2D camera1 = new asd.CameraObject2D();
camera1.setSrc(new asd.RectI(0, 0, 640, 480));
camera1.setDst(new asd.RectI(0, 0, 640, 480));
asd.Engine.AddObject2D(camera1);
// 二つ目のマウスポインタの周辺を拡大して表示するカメラ。
asd.CameraObject2D camera2 = new asd.CameraObject2D();
asd.Engine.AddObject2D(camera2);
// フレーム用画像を読み込む。
asd.TextureObject2D frame = new asd.TextureObject2D();
asd.Texture2D tex = asd.Engine.getGraphics().CreateTexture2D("Data/Texture/Frame.png");
frame.setTexture(tex);
frame.setCenterPosition(new asd.Vector2DF(55.0f, 55.0f));
asd.Engine.AddObject2D(frame);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// マウスポインタの位置を取得する。
asd.Vector2DF pos = asd.Engine.getMouse().getPosition();
// 拡大用カメラの描画元を指定する。
camera2.setSrc(new asd.RectI(((int)pos.X - 25), ((int)pos.Y - 25), 50, 50));
// ポインタを中心に100x100の拡大画像を表示する。
camera2.setDst(new asd.RectI(((int)pos.X - 50), ((int)pos.Y - 50), 100, 100));
// フレーム画像の描画中心をマウスポインタの位置に合わせる。
frame.setPosition(pos);
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
特定のオブジェクトのみをカメラに表示するサンプル。
グループを設定することで、グループの数値間でANDをとり0出なかった場合のみ描画するようにできます。
C++
#include <Altseed.h>
/**
@brief カメラに特定のオブジェクトのみを表示する。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("CameraObject2D_Group").c_str(), 640, 480, asd::EngineOption());
// 画像を読み込む。
auto tex = asd::Engine::GetGraphics()->CreateTexture2D(asd::ToAString("Data/Texture/Picture1.png").c_str());
// 画像を描画するオブジェクトを設定する。
auto obj1 = std::make_shared<asd::TextureObject2D>();
obj1->SetTexture(tex);
obj1->SetPosition(asd::Vector2DF(10, 10));
obj1->SetScale(asd::Vector2DF(0.5f, 0.5f));
// グループを設定する。(描画されない)
obj1->SetCameraGroup(1);
asd::Engine::AddObject2D(obj1);
// 画像を描画するオブジェクトを設定する。
auto obj2 = std::make_shared<asd::TextureObject2D>();
obj2->SetTexture(tex);
obj2->SetPosition(asd::Vector2DF(310, 10));
obj2->SetScale(asd::Vector2DF(0.5f, 0.5f));
// グループを設定する。
obj2->SetCameraGroup(2);
asd::Engine::AddObject2D(obj2);
// カメラを設定する。
auto camera = std::make_shared<asd::CameraObject2D>();
camera->SetSrc(asd::RectI(0, 0, 640, 480));
camera->SetDst(asd::RectI(0, 0, 640, 480));
// グループを設定する。
camera->SetCameraGroup(2);
asd::Engine::AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedを終了する。
asd::Engine::Terminate();
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// カメラに特定のオブジェクトのみを表示する。
/// </summary>
public class CameraObject2D_Group
{
public string Description
{
get { return ""; }
}
public string Title
{
get { return ""; }
}
public string ClassName
{
get { return "CameraObject2D_Group"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Group", 640, 480, new asd.EngineOption());
// 画像を読み込む。
var tex = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Picture1.png");
// テクスチャを描画するオブジェクトを設定する。
var obj1 = new asd.TextureObject2D();
obj1.Texture = tex;
obj1.Position = new asd.Vector2DF(10, 10);
obj1.Scale = new asd.Vector2DF(0.5f, 0.5f);
// グループを設定する。(描画されない)
obj1.CameraGroup = 1;
asd.Engine.AddObject2D(obj1);
// テクスチャを描画するオブジェクトを設定する。
var obj2 = new asd.TextureObject2D();
obj2.Texture = tex;
obj2.Position = new asd.Vector2DF(310, 10);
obj2.Scale = new asd.Vector2DF(0.5f, 0.5f);
// グループを設定する。
obj2.CameraGroup = 2;
asd.Engine.AddObject2D(obj2);
// カメラを設定する。
var camera = new asd.CameraObject2D();
camera.Src = new asd.RectI(0, 0, 640, 480);
camera.Dst = new asd.RectI(0, 0, 640, 480);
// グループを設定する。
camera.CameraGroup = 2;
asd.Engine.AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
Java
/**
* カメラに特定のオブジェクトのみを表示する。
*/
public class CameraObject2D_Group
{
public java.lang.String getDescription() {
return "";
}
public java.lang.String getTitle() {
return "";
}
public java.lang.String getClassName() {
return "CameraObject2D_Group";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Group", 640, 480, new asd.EngineOption());
// 画像を読み込む。
asd.Texture2D tex = asd.Engine.getGraphics().CreateTexture2D("Data/Texture/Picture1.png");
// テクスチャを描画するオブジェクトを設定する。
asd.TextureObject2D obj1 = new asd.TextureObject2D();
obj1.setTexture(tex);
obj1.setPosition(new asd.Vector2DF(10, 10));
obj1.setScale(new asd.Vector2DF(0.5f, 0.5f));
// グループを設定する。(描画されない)
obj1.setCameraGroup(1);
asd.Engine.AddObject2D(obj1);
// テクスチャを描画するオブジェクトを設定する。
asd.TextureObject2D obj2 = new asd.TextureObject2D();
obj2.setTexture(tex);
obj2.setPosition(new asd.Vector2DF(310, 10));
obj2.setScale(new asd.Vector2DF(0.5f, 0.5f));
// グループを設定する。
obj2.setCameraGroup(2);
asd.Engine.AddObject2D(obj2);
// カメラを設定する。
asd.CameraObject2D camera = new asd.CameraObject2D();
camera.setSrc(new asd.RectI(0, 0, 640, 480));
camera.setDst(new asd.RectI(0, 0, 640, 480));
// グループを設定する。
camera.setCameraGroup(2);
asd.Engine.AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
カメラで撮影した結果をテクスチャとして使うサンプル。
オフスクリーンモードを設定することで、テクスチャとして使用できるようになります。
C++
#include <Altseed.h>
/**
@brief カメラで撮影した結果をテクスチャとして表示するサンプル。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("CameraObject2D_Texture").c_str(), 640, 480, asd::EngineOption());
// 画像を読み込む。
auto tex = asd::Engine::GetGraphics()->CreateTexture2D(asd::ToAString("Data/Texture/Picture1.png").c_str());
// 画像を描画するオブジェクトを設定する。
auto obj1 = std::make_shared<asd::TextureObject2D>();
obj1->SetTexture(tex);
obj1->SetPosition(asd::Vector2DF(200, 10));
obj1->SetAngle(45.0f);
obj1->SetScale(asd::Vector2DF(0.5f, 0.5f));
// グループを設定する。
obj1->SetCameraGroup(1);
asd::Engine::AddObject2D(obj1);
// カメラを設定する。
auto cameraOffscreen = std::make_shared<asd::CameraObject2D>();
cameraOffscreen->SetSrc(asd::RectI(0, 0, 640, 480));
cameraOffscreen->SetDst(asd::RectI(0, 0, 640, 480));
// グループを設定する。
cameraOffscreen->SetCameraGroup(1);
// オフスクリーンモードであることを設定する。
cameraOffscreen->SetIsOffscreenMode(true);
asd::Engine::AddObject2D(cameraOffscreen);
// 画像を描画するオブジェクトを設定する。
auto obj2 = std::make_shared<asd::TextureObject2D>();
obj2->SetTexture(cameraOffscreen->GetTexture());
obj2->SetPosition(asd::Vector2DF(310, 10));
obj2->SetScale(asd::Vector2DF(0.5f, 0.5f));
// グループを設定する。
obj2->SetCameraGroup(2);
asd::Engine::AddObject2D(obj2);
// カメラを設定する。
auto camera = std::make_shared<asd::CameraObject2D>();
camera->SetSrc(asd::RectI(0, 0, 640, 480));
camera->SetDst(asd::RectI(0, 0, 640, 480));
// グループを設定する。
camera->SetCameraGroup(2);
asd::Engine::AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedを終了する。
asd::Engine::Terminate();
}
C#
/// <summary>
/// カメラで撮影した結果をテクスチャとして表示するサンプル。
/// </summary>
public class CameraObject2D_Texture
{
public string Title
{
get { return ""; }
}
public string Description
{
get { return ""; }
}
public string ClassName
{
get { return "CameraObject2D_Texture"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Texture", 640, 480, new asd.EngineOption());
// 画像を読み込む。
var tex = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Picture1.png");
// テクスチャを描画するオブジェクトを設定する。
var obj1 = new asd.TextureObject2D();
obj1.Texture = tex;
obj1.Position = new asd.Vector2DF(200, 10);
obj1.Angle = 45.0f;
obj1.Scale = new asd.Vector2DF(0.5f, 0.5f);
// グループを設定する。
obj1.CameraGroup = 1;
asd.Engine.AddObject2D(obj1);
// カメラを設定する。
var cameraOffscreen = new asd.CameraObject2D();
cameraOffscreen.Src = new asd.RectI(0, 0, 640, 480);
cameraOffscreen.Dst = new asd.RectI(0, 0, 640, 480);
// グループを設定する。
cameraOffscreen.CameraGroup = 1;
// オフスクリーンモードであることを設定する。
cameraOffscreen.IsOffsecreenMode = true;
asd.Engine.AddObject2D(cameraOffscreen);
// テクスチャを描画するオブジェクトを設定する。
var obj2 = new asd.TextureObject2D();
obj2.Texture = cameraOffscreen.Texture;
obj2.Position = new asd.Vector2DF(310, 10);
obj2.Scale = new asd.Vector2DF(0.5f, 0.5f);
// グループを設定する。
obj2.CameraGroup = 2;
asd.Engine.AddObject2D(obj2);
// カメラを設定する。
var camera = new asd.CameraObject2D();
camera.Src = new asd.RectI(0, 0, 640, 480);
camera.Dst = new asd.RectI(0, 0, 640, 480);
// グループを設定する。
camera.CameraGroup = 2;
asd.Engine.AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
Java
/**
* カメラで撮影した結果をテクスチャとして表示するサンプル。
*/
public class CameraObject2D_Texture
{
public java.lang.String getTitle() {
return "";
}
public java.lang.String getDescription() {
return "";
}
public java.lang.String getClassName() {
return "CameraObject2D_Texture";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("CameraObject2D_Texture", 640, 480, new asd.EngineOption());
// 画像を読み込む。
asd.Texture2D tex = asd.Engine.getGraphics().CreateTexture2D("Data/Texture/Picture1.png");
// テクスチャを描画するオブジェクトを設定する。
asd.TextureObject2D obj1 = new asd.TextureObject2D();
obj1.setTexture(tex);
obj1.setPosition(new asd.Vector2DF(200, 10));
obj1.setAngle(45.0f);
obj1.setScale(new asd.Vector2DF(0.5f, 0.5f));
// グループを設定する。
obj1.setCameraGroup(1);
asd.Engine.AddObject2D(obj1);
// カメラを設定する。
asd.CameraObject2D cameraOffscreen = new asd.CameraObject2D();
cameraOffscreen.setSrc(new asd.RectI(0, 0, 640, 480));
cameraOffscreen.setDst(new asd.RectI(0, 0, 640, 480));
// グループを設定する。
cameraOffscreen.setCameraGroup(1);
// オフスクリーンモードであることを設定する。
cameraOffscreen.setIsOffsecreenMode(true);
asd.Engine.AddObject2D(cameraOffscreen);
// テクスチャを描画するオブジェクトを設定する。
asd.TextureObject2D obj2 = new asd.TextureObject2D();
obj2.setTexture(cameraOffscreen.getTexture());
obj2.setPosition(new asd.Vector2DF(310, 10));
obj2.setScale(new asd.Vector2DF(0.5f, 0.5f));
// グループを設定する。
obj2.setCameraGroup(2);
asd.Engine.AddObject2D(obj2);
// カメラを設定する。
asd.CameraObject2D camera = new asd.CameraObject2D();
camera.setSrc(new asd.RectI(0, 0, 640, 480));
camera.setDst(new asd.RectI(0, 0, 640, 480));
// グループを設定する。
camera.setCameraGroup(2);
asd.Engine.AddObject2D(camera);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}