Example character level animations.
This commit is contained in:
@ -32,11 +32,11 @@ tool_texture(texture_test texture_test.png)
|
||||
tool_language(language_en ${DIR_GAME_ASSETS}/locale/en.csv)
|
||||
tool_language(language_jp ${DIR_GAME_ASSETS}/locale/jp.csv)
|
||||
|
||||
tool_tileset(tileset_death texture_death ${DIR_GAME_ASSETS}/characters/death/sheet.png 1 2)
|
||||
tool_tileset(tileset_death texture_death ${DIR_GAME_ASSETS}/characters/death/sheet.png 1 3)
|
||||
|
||||
tool_truetype(truetype_alice ${DIR_GAME_ASSETS}/font/Alice-Regular.ttf truetype_alice 2048 2048 120)
|
||||
|
||||
tool_audio(audio_test borrowed/sample.wav)
|
||||
tool_audio(audio_test borrowed/sample_long.wav)
|
||||
|
||||
add_dependencies(${DAWN_TARGET_NAME}
|
||||
language_en
|
||||
|
@ -17,6 +17,7 @@ namespace Dawn {
|
||||
public:
|
||||
VisualNovelCharacter *vnCharacter;
|
||||
SimpleTexturedShaderInterface *shaderInterface;
|
||||
AnimationController *animation;
|
||||
|
||||
static std::vector<Asset*> prefabAssets(AssetManager *assMan) {
|
||||
return std::vector<Asset*>{
|
||||
@ -25,7 +26,10 @@ namespace Dawn {
|
||||
};
|
||||
}
|
||||
|
||||
DeathPrefab(Scene *scene, sceneitemid_t id) : SceneItemPrefab(scene, id){}
|
||||
DeathPrefab(Scene *scene, sceneitemid_t id) : SceneItemPrefab(scene, id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void prefabInit(AssetManager *man) override {
|
||||
auto textureAsset = man->get<TextureAsset>("texture_death");
|
||||
@ -34,17 +38,18 @@ namespace Dawn {
|
||||
auto meshRenderer = this->addComponent<MeshRenderer>();
|
||||
auto material = this->addComponent<Material>();
|
||||
auto meshHost = this->addComponent<MeshHost>();
|
||||
auto animation = this->addComponent<AnimationController>();
|
||||
|
||||
auto tiledSprite = this->addComponent<TiledSprite>();
|
||||
tiledSprite->setTilesetAndSize(&tilesetAsset->tileset);
|
||||
tiledSprite->setTile(0);
|
||||
|
||||
vnCharacter = this->addComponent<VisualNovelCharacter>();
|
||||
vnCharacter->nameKey = "character.death.name";
|
||||
|
||||
shaderInterface = this->addComponent<SimpleTexturedShaderInterface>();
|
||||
shaderInterface->setTexture(&textureAsset->texture);
|
||||
|
||||
vnCharacter = this->addComponent<VisualNovelCharacter>();
|
||||
vnCharacter->nameKey = "character.death.name";
|
||||
|
||||
animation = this->addComponent<AnimationController>();
|
||||
|
||||
auto tiledSprite = this->addComponent<TiledSprite>();
|
||||
tiledSprite->setTilesetAndSize(&tilesetAsset->tileset);
|
||||
tiledSprite->setTile(0);
|
||||
|
||||
this->transform.setLocalPosition(glm::vec3(0, 0, 0));
|
||||
}
|
||||
|
@ -9,34 +9,23 @@
|
||||
#include "prefabs/characters/DeathPrefab.hpp"
|
||||
#include "scene/components/audio/AudioListener.hpp"
|
||||
#include "scene/components/audio/AudioSource.hpp"
|
||||
#include "visualnovel/events/characters/VisualNovelFadeCharacterEvent.hpp"
|
||||
#include "visualnovel/events/timing/VisualNovelBatchEvent.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class Scene_1 : public PixelVNScene {
|
||||
protected:
|
||||
DeathPrefab *death;
|
||||
AudioSource *source;
|
||||
|
||||
void onFinished() {
|
||||
std::cout << "Finished" << std::endl;
|
||||
source->rewind();
|
||||
}
|
||||
DeathPrefab *death2;
|
||||
|
||||
void vnStage() override {
|
||||
PixelVNScene::vnStage();
|
||||
|
||||
this->death = DeathPrefab::create(this);
|
||||
// this->death->vnCharacter.setOpacity(0);
|
||||
this->death->vnCharacter->setOpacity(0);
|
||||
|
||||
auto sourceItem = this->createSceneItem();
|
||||
source = sourceItem->addComponent<AudioSource>();
|
||||
source->transform->setLocalPosition(glm::vec3(1, 0, 0));
|
||||
source->eventFinished.addListener(this, &Scene_1::onFinished);
|
||||
|
||||
auto audio = this->game->assetManager.get<AudioAsset>("audio_test");
|
||||
|
||||
source->setAudioData(audio);
|
||||
source->loop = true;
|
||||
source->state = AUDIO_SOURCE_STATE_PLAYING;
|
||||
this->death2 = DeathPrefab::create(this);
|
||||
this->death2->transform.setLocalPosition(glm::vec3(100, 0, 0));
|
||||
}
|
||||
|
||||
void onSceneEnded() {
|
||||
@ -51,12 +40,29 @@ namespace Dawn {
|
||||
|
||||
IVisualNovelEvent * getVNEvent() override {
|
||||
auto start = new VisualNovelPauseEvent(vnManager, 1.0f);
|
||||
|
||||
start
|
||||
// ->then(new VisualNovelTextboxEvent(vnManager, nullptr, "scene.1.1"))
|
||||
// ->then(new VisualNovelCallbackEvent<Scene_1>(vnManager, this, &Scene_1::onSceneEnded))
|
||||
->then(new VisualNovelBatchEvent(
|
||||
vnManager,
|
||||
std::vector<IVisualNovelEvent*>{
|
||||
new VisualNovelFadeCharacterEvent(
|
||||
vnManager,
|
||||
this->death->vnCharacter,
|
||||
true,
|
||||
&easeLinear,
|
||||
2.0f
|
||||
),
|
||||
new VisualNovelFadeCharacterEvent(
|
||||
vnManager,
|
||||
this->death2->vnCharacter,
|
||||
false,
|
||||
&easeLinear,
|
||||
2.0f
|
||||
)
|
||||
}
|
||||
))
|
||||
->then(new VisualNovelTextboxEvent(vnManager, nullptr, "scene.1.1"))
|
||||
->then(new VisualNovelCallbackEvent<Scene_1>(vnManager, this, &Scene_1::onSceneEnded))
|
||||
;
|
||||
|
||||
return start;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user