【includeファイル】 Compiled/include/Effekseer.h Compiled/include/EffekseerRendererDX11.h Compiled/include/EffekseerSoundXAudio2.h を、BaseCross64の Libs/include/Effekseer.h Libs/include/EffekseerRendererDX11.h Libs/include/EffekseerSoundXAudio2.h としてコピー。 【libファイル(デバッグ用)】 Compiled/lib/VS2017WIN64/Debug/Effekseer.lib Compiled/lib/VS2017WIN64/Debug/EffekseerRendererDX11.lib Compiled/lib/VS2017WIN64/Debug/EffekseerSoundXAudio2.lib を、BaseCross64の Libs/lib/Dx11/Debug/Effekseer.lib Libs/lib/Dx11/Debug/EffekseerRendererDX11.lib Libs/lib/Dx11/Debug/EffekseerSoundXAudio2.lib としてコピー。 【libファイル(リリース用)】 Compiled/lib/VS2017WIN64/Release/Effekseer.lib Compiled/lib/VS2017WIN64/Release/EffekseerRendererDX11.lib Compiled/lib/VS2017WIN64/Release/EffekseerSoundXAudio2.lib を、BaseCross64の Libs/lib/Dx11/Release/Effekseer.lib Libs/lib/Dx11/Release/EffekseerRendererDX11.lib Libs/lib/Dx11/Release/EffekseerSoundXAudio2.lib としてコピー。
図1105a
#pragma once
#include "EfkInterface.h"
#include "ProjectShader.h"
#include "ProjectBehavior.h"
//以下略
class GameStage : public Stage {
//エフェクトのインターフェイス
shared_ptr<EfkInterface> m_EfkInterface;
//中略
public:
//中略
//初期化
virtual void OnCreate()override;
//エフェクトのインターフェイスの取得
shared_ptr<EfkInterface> GetEfkInterface() const {
return m_EfkInterface;
}
//更新
virtual void OnUpdate() override;
//描画
virtual void OnDraw() override;
};
void GameStage::OnCreate() {
try {
//中略
//エフェクト作成
m_EfkInterface = ObjectFactory::Create<EfkInterface>();
//中略
//プレーヤーの作成
CreatePlayer();
}
catch (...) {
throw;
}
}
//更新
void GameStage::OnUpdate() {
m_EfkInterface->OnUpdate();
}
//描画
void GameStage::OnDraw() {
auto& camera = GetView()->GetTargetCamera();
m_EfkInterface->SetViewProj(camera->GetViewMatrix(), camera->GetProjMatrix());
m_EfkInterface->OnDraw();
}
class Player : public GameObject {
//エフェクト
shared_ptr<EfkEffect> m_EfkEffect;
//エフェクト実行オブジェクト
shared_ptr<EfkPlay> m_EfkPlay;
//中略
public:
//中略
};
void Player::OnCreate() {
//中略
//エフェクトの初期化
wstring DataDir;
App::GetApp()->GetDataDirectory(DataDir);
wstring TestEffectStr = DataDir + L"Effects\\test.efk";
auto ShEfkInterface = GetTypeStage<GameStage>()->GetEfkInterface();
m_EfkEffect = ObjectFactory::Create<EfkEffect>(ShEfkInterface, TestEffectStr);
//中略
}
//Aボタンハンドラ
void Player::OnPushA() {
auto grav = GetComponent<Gravity>();
grav->StartJump(Vec3(0,4.0f,0));
auto Ptr = GetComponent<Transform>();
//エフェクトのプレイ
auto ShEfkInterface = GetTypeStage<GameStage>()->GetEfkInterface();
m_EfkPlay = ObjectFactory::Create<EfkPlay>(m_EfkEffect, Ptr->GetPosition());
}