void Tank::Initialize() { //省略 //エフェクトの読み込み //以降,"TAMA"という名前で"tama.efk"を扱える EFFEKSEERLIB::gEfk->AddEffect("TAMA", "tama.efk"); //トランスフォーム(エフェクトの初期データを設定) EFFEKSEERLIB::EFKTransform t;//matrix isLoop, maxFrame, speed DirectX::XMStoreFloat4x4(&(t.matrix), transform_.GetWorldMatrix()); t.isLoop = true; //繰り返しON t.maxFrame = 80; //80フレーム t.speed = 1.0; //スピード mt = EFFEKSEERLIB::gEfk->Play("TAMA", t); //戻り値で、生成されたエフェクトのインスタンスのトランスフォームへの参照が返ってくるので、 //以降このエフェクトの位置や寿命を変更したいときは、mtをいじるだけでいいのよ } //更新 void Tank::Update() { //移動 Move(); //地面に沿わせる FollowGround(); //敵がもういなかったらクリア画面へ if (FindObject("Enemy") == nullptr) { SceneManager* pSceneManager = (SceneManager*)FindObject("SceneManager"); pSceneManager->ChangeScene(SCENE_ID_CLEAR); } //エフェクトを移動させたり、消滅させたいときは、ここでmtを変更する //消滅させたいときはmt->isLoop = falseにすると、次の再生が終わると消える //その場、そのタイミングで消滅させるのは、今んところ対応していない。。。 XMMATRIX tr = XMMatrixTranslation(0, 1.0, 0.5); XMMATRIX rt = XMMatrixRotationY(XM_PI); DirectX::XMStoreFloat4x4(&(mt->matrix), rt*tr*this->GetWorldMatrix());     /* ボタン押したら再生とかは、Initializeとかでインスタンス化しないで、Updateとかでキー入力を検出したら EFFEKSEERLIB::EFKTransform t;//matrix isLoop, maxFrame, speed DirectX::XMStoreFloat4x4(&(t.matrix), transform_.GetWorldMatrix());//位置やスケールを設定 t.isLoop = false; //繰り返しON t.maxFrame = 80; //80フレーム t.speed = 1.0; //スピード //一回再生して、インスタンス消滅するので、あえてトランスフォームを捕捉しない EFFEKSEERLIB::gEfk->Play("TAMA", t); */ }