表示するサンプルコードの言語を指定できます。
UIの配置
Altseedでは、psdファイルを元に生成される画像パッケージを使用することで簡単にUIの配置ができます。
psdファイルから画像パッケージのデータを生成するには 画像パッケージジェネレーター を使用します。
基本
C++
#include <Altseed.h>
// ImagePackageを用いてUIを配置するサンプル。
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("ImagePackageUI_Basic").c_str(), 640, 480, asd::EngineOption());
// イメージパッケージを読み込む
auto imagePackage = asd::Engine::GetGraphics()->CreateImagePackage(asd::ToAString("Data/ImagePackage/UI.aip").c_str());
for (int i = 0; i < imagePackage->GetImageCount(); i++)
{
// テクスチャを取り出す
auto texture = imagePackage->GetImage(i);
auto area = imagePackage->GetImageArea(i);
// テクスチャをオブジェクトとして追加する
auto textureObject2D = std::make_shared<asd::TextureObject2D>();
textureObject2D->SetTexture(texture);
textureObject2D->SetPosition(asd::Vector2DF(area.X, area.Y));
asd::Engine::AddObject2D(textureObject2D);
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedの終了処理をする。
asd::Engine::Terminate();
return 0;
}
C#
/// <summary>
/// ImagePackageを用いてUIを配置するサンプル。
/// </summary>
class ImagePackageUI_Basic
{
public string Description
{
get { return "ImagePackageを用いてUIを配置するサンプルです。"; }
}
public string Title
{
get { return "ImagePackage"; }
}
public string ClassName
{
get { return "ImagePackageUI_Basic"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("ImagePackageUI_Basic", 640, 480, new asd.EngineOption());
// イメージパッケージを読み込む
asd.ImagePackage imagePackage = asd.Engine.Graphics.CreateImagePackage("Data/ImagePackage/UI.aip");
for(int i = 0; i < imagePackage.ImageCount; i++)
{
// テクスチャを取り出す
asd.Texture2D texture = imagePackage.GetImage(i);
asd.RectI area = imagePackage.GetImageArea(i);
// テクスチャをオブジェクトとして追加する
asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
textureObject2D.Texture = texture;
textureObject2D.Position = new asd.Vector2DF(area.X, area.Y);
asd.Engine.AddObject2D(textureObject2D);
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* ImagePackageを用いてUIを配置するサンプル。
*/
class ImagePackageUI_Basic
{
public java.lang.String getDescription() {
return "ImagePackageを用いてUIを配置するサンプルです。";
}
public java.lang.String getTitle() {
return "ImagePackage";
}
public java.lang.String getClassName() {
return "ImagePackageUI_Basic";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("ImagePackageUI_Basic", 640, 480, new asd.EngineOption());
// イメージパッケージを読み込む
asd.ImagePackage imagePackage = asd.Engine.getGraphics().CreateImagePackage("Data/ImagePackage/UI.aip");
for(int i = 0; (i < imagePackage.getImageCount()); i++)
{
// テクスチャを取り出す
asd.Texture2D texture = imagePackage.GetImage(i);
asd.RectI area = imagePackage.GetImageArea(i);
// テクスチャをオブジェクトとして追加する
asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
textureObject2D.setTexture(texture);
textureObject2D.setPosition(new asd.Vector2DF(area.X, area.Y));
asd.Engine.AddObject2D(textureObject2D);
}
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
特定のレイヤーのアルファブレンドを変更
C++
#include <Altseed.h>
// ImagePackageを用いてUIを配置して、特定の名前の画像のアルファブレンドの方法を変更するサンプル。
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("ImagePackageUI_AlphaBlend").c_str(), 640, 480, asd::EngineOption());
// イメージパッケージを読み込む
auto imagePackage = asd::Engine::GetGraphics()->CreateImagePackage(asd::ToAString("Data/ImagePackage/UI.aip").c_str());
for (int i = 0; i < imagePackage->GetImageCount(); i++)
{
// テクスチャを取り出す
auto texture = imagePackage->GetImage(i);
auto area = imagePackage->GetImageArea(i);
// テクスチャをオブジェクトとして追加する
auto textureObject2D = std::make_shared<asd::TextureObject2D>();
textureObject2D->SetTexture(texture);
textureObject2D->SetPosition(asd::Vector2DF(area.X, area.Y));
asd::Engine::AddObject2D(textureObject2D);
// Background_Lightという名称の画像のアルファブレンドの方法を変更する。
auto name = imagePackage->GetImageName(i);
if (asd::astring(imagePackage->GetImageName(i)) == asd::ToAString("Background_Light"))
{
textureObject2D->SetAlphaBlendMode(asd::AlphaBlendMode::Add);
}
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedの終了処理をする。
asd::Engine::Terminate();
return 0;
}
C#
/// <summary>
/// ImagePackageを用いてUIを配置して、特定の名前の画像のアルファブレンドの方法を変更するサンプル。
/// </summary>
class ImagePackageUI_AlphaBlend
{
public string Description
{
get { return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像のアルファブレンドの方法を\n変更するサンプルです"; }
}
public string Title
{
get { return "ImagePackageとアルファブレンド"; }
}
public string ClassName
{
get { return "ImagePackageUI_AlphaBlend"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("ImagePackageUI_AlphaBlend", 640, 480, new asd.EngineOption());
// イメージパッケージを読み込む
asd.ImagePackage imagePackage = asd.Engine.Graphics.CreateImagePackage("Data/ImagePackage/UI.aip");
for (int i = 0; i < imagePackage.ImageCount; i++)
{
// テクスチャを取り出す
asd.Texture2D texture = imagePackage.GetImage(i);
asd.RectI area = imagePackage.GetImageArea(i);
// テクスチャをオブジェクトとして追加する
asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
textureObject2D.Texture = texture;
textureObject2D.Position = new asd.Vector2DF(area.X, area.Y);
asd.Engine.AddObject2D(textureObject2D);
// Background_Lightという名称の画像のアルファブレンドの方法を変更する。
if(imagePackage.GetImageName(i) == "Background_Light")
{
textureObject2D.AlphaBlend = asd.AlphaBlendMode.Add;
}
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* ImagePackageを用いてUIを配置して、特定の名前の画像のアルファブレンドの方法を変更するサンプル。
*/
class ImagePackageUI_AlphaBlend
{
public java.lang.String getDescription() {
return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像のアルファブレンドの方法を\n変更するサンプルです";
}
public java.lang.String getTitle() {
return "ImagePackageとアルファブレンド";
}
public java.lang.String getClassName() {
return "ImagePackageUI_AlphaBlend";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("ImagePackageUI_AlphaBlend", 640, 480, new asd.EngineOption());
// イメージパッケージを読み込む
asd.ImagePackage imagePackage = asd.Engine.getGraphics().CreateImagePackage("Data/ImagePackage/UI.aip");
for(int i = 0; (i < imagePackage.getImageCount()); i++)
{
// テクスチャを取り出す
asd.Texture2D texture = imagePackage.GetImage(i);
asd.RectI area = imagePackage.GetImageArea(i);
// テクスチャをオブジェクトとして追加する
asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
textureObject2D.setTexture(texture);
textureObject2D.setPosition(new asd.Vector2DF(area.X, area.Y));
asd.Engine.AddObject2D(textureObject2D);
// Background_Lightという名称の画像のアルファブレンドの方法を変更する。
if((imagePackage.GetImageName(i).equals("Background_Light")))
{
textureObject2D.setAlphaBlend(asd.AlphaBlendMode.Add);
}
}
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
特定のレイヤーのみをアニメーション
C++
#include <Altseed.h>
// ImagePackageを用いてUIを配置して、特定の名前の画像をアニメーションさせるサンプル。
class AlphaAnimationComponent
: public asd::Object2DComponent
{
int time = 0;
void OnUpdate() override
{
// アルファ値をsinカーブでアニメーションするようにする。
auto alpha = (uint8_t) ((float) (sin(time / 20.0f) + 1.0f) / 2.0f * 255);
auto owner = (asd::TextureObject2D*)GetOwner();
owner->SetColor(asd::Color(255, 255, 255, alpha));
time++;
}
};
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("ImagePackageUI_Component").c_str(), 640, 480, asd::EngineOption());
// イメージパッケージを読み込む
auto imagePackage = asd::Engine::GetGraphics()->CreateImagePackage(asd::ToAString("Data/ImagePackage/UI.aip").c_str());
for (int i = 0; i < imagePackage->GetImageCount(); i++)
{
// テクスチャを取り出す
auto texture = imagePackage->GetImage(i);
auto area = imagePackage->GetImageArea(i);
// テクスチャをオブジェクトとして追加する
auto textureObject2D = std::make_shared<asd::TextureObject2D>();
textureObject2D->SetTexture(texture);
textureObject2D->SetPosition(asd::Vector2DF(area.X, area.Y));
asd::Engine::AddObject2D(textureObject2D);
// Background_Lightという名称の画像にコンポーネントを適用する。
auto name = imagePackage->GetImageName(i);
if (asd::astring(imagePackage->GetImageName(i)) == asd::ToAString("Background_Light"))
{
textureObject2D->SetAlphaBlendMode(asd::AlphaBlendMode::Add);
textureObject2D->AddComponent(std::make_shared<AlphaAnimationComponent>(), asd::ToAString("AlphaAnimation"));
}
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedの終了処理をする。
asd::Engine::Terminate();
return 0;
}
C#
class ImagePackageUI_Component_AlphaAnimationComponent : asd.Object2DComponent
{
int time = 0;
protected override void OnUpdate()
{
// アルファ値をsinカーブでアニメーションするようにする。
var alpha = (int)((float)(System.Math.Sin(time / 20.0f) + 1.0f) / 2.0f * 255);
var owner = (asd.TextureObject2D)Owner;
owner.Color = new asd.Color(255, 255, 255, alpha);
time++;
}
}
/// <summary>
/// ImagePackageを用いてUIを配置して、特定の名前の画像をアニメーションさせるサンプル。
/// </summary>
class ImagePackageUI_Component
{
public string Description
{
get { return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像を\nアニメーションさせるサンプル。"; }
}
public string Title
{
get { return "ImagePackageとアニメーション"; }
}
public string ClassName
{
get { return "ImagePackageUI_Component"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("ImagePackageUI_Component", 640, 480, new asd.EngineOption());
// イメージパッケージを読み込む
asd.ImagePackage imagePackage = asd.Engine.Graphics.CreateImagePackage("Data/ImagePackage/UI.aip");
for (int i = 0; i < imagePackage.ImageCount; i++)
{
// テクスチャを取り出す
asd.Texture2D texture = imagePackage.GetImage(i);
asd.RectI area = imagePackage.GetImageArea(i);
// テクスチャをオブジェクトとして追加する
asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
textureObject2D.Texture = texture;
textureObject2D.Position = new asd.Vector2DF(area.X, area.Y);
asd.Engine.AddObject2D(textureObject2D);
// Background_Lightという名称の画像にコンポーネントを適用する。
if (imagePackage.GetImageName(i) == "Background_Light")
{
textureObject2D.AlphaBlend = asd.AlphaBlendMode.Add;
textureObject2D.AddComponent(new ImagePackageUI_Component_AlphaAnimationComponent(), "AlphaAnimation");
}
}
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* ImagePackageを用いてUIを配置して、特定の名前の画像をアニメーションさせるサンプル。
*/
class ImagePackageUI_Component
{
public java.lang.String getDescription() {
return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像を\nアニメーションさせるサンプル。";
}
public java.lang.String getTitle() {
return "ImagePackageとアニメーション";
}
public java.lang.String getClassName() {
return "ImagePackageUI_Component";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("ImagePackageUI_Component", 640, 480, new asd.EngineOption());
// イメージパッケージを読み込む
asd.ImagePackage imagePackage = asd.Engine.getGraphics().CreateImagePackage("Data/ImagePackage/UI.aip");
for(int i = 0; (i < imagePackage.getImageCount()); i++)
{
// テクスチャを取り出す
asd.Texture2D texture = imagePackage.GetImage(i);
asd.RectI area = imagePackage.GetImageArea(i);
// テクスチャをオブジェクトとして追加する
asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
textureObject2D.setTexture(texture);
textureObject2D.setPosition(new asd.Vector2DF(area.X, area.Y));
asd.Engine.AddObject2D(textureObject2D);
// Background_Lightという名称の画像にコンポーネントを適用する。
if((imagePackage.GetImageName(i).equals("Background_Light")))
{
textureObject2D.setAlphaBlend(asd.AlphaBlendMode.Add);
textureObject2D.AddComponent(new ImagePackageUI_Component_AlphaAnimationComponent(), "AlphaAnimation");
}
}
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}