Added viola
This commit is contained in:
parent
56ce826205
commit
7840bfdb4e
42311
resources/idleviola_uv010.txt
Normal file
42311
resources/idleviola_uv010.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
resources/viola.png
(Stored with Git LFS)
Normal file
BIN
resources/viola.png
(Stored with Git LFS)
Normal file
Binary file not shown.
43494
resources/walkviola_uv010.txt
Normal file
43494
resources/walkviola_uv010.txt
Normal file
File diff suppressed because it is too large
Load Diff
64
src/Game.cpp
64
src/Game.cpp
@ -171,6 +171,10 @@ namespace ZL
|
|||||||
benchMesh.data.Move({ -2.1, 0.5, -7.9 });
|
benchMesh.data.Move({ -2.1, 0.5, -7.9 });
|
||||||
benchMesh.RefreshVBO();
|
benchMesh.RefreshVBO();
|
||||||
|
|
||||||
|
violaIdleModel.LoadFromFile("resources/idleviola_uv010.txt", CONST_ZIP_FILE);
|
||||||
|
violaWalkModel.LoadFromFile("resources/walkviola_uv010.txt", CONST_ZIP_FILE);
|
||||||
|
|
||||||
|
violaTexture = std::make_unique<Texture>(CreateTextureDataFromPng("resources/viola.png", CONST_ZIP_FILE));
|
||||||
|
|
||||||
loadingCompleted = true;
|
loadingCompleted = true;
|
||||||
}
|
}
|
||||||
@ -205,7 +209,7 @@ namespace ZL
|
|||||||
|
|
||||||
renderer.LoadIdentity();
|
renderer.LoadIdentity();
|
||||||
renderer.TranslateMatrix({ 0,0, -1.0f * Environment::zoom });
|
renderer.TranslateMatrix({ 0,0, -1.0f * Environment::zoom });
|
||||||
renderer.TranslateMatrix({ 0, -6.f, 0 }); //Ship camera offset
|
//renderer.TranslateMatrix({ 0, -6.f, 0 });
|
||||||
|
|
||||||
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(M_PI * 30 / 180.f, Eigen::Vector3f::UnitX())).toRotationMatrix());
|
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(M_PI * 30 / 180.f, Eigen::Vector3f::UnitX())).toRotationMatrix());
|
||||||
|
|
||||||
@ -219,6 +223,34 @@ namespace ZL
|
|||||||
glBindTexture(GL_TEXTURE_2D, benchTexture->getTexID());
|
glBindTexture(GL_TEXTURE_2D, benchTexture->getTexID());
|
||||||
renderer.DrawVertexRenderStruct(benchMesh);
|
renderer.DrawVertexRenderStruct(benchMesh);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
renderer.PushMatrix();
|
||||||
|
|
||||||
|
renderer.ScaleMatrix(0.2);
|
||||||
|
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(-M_PI * 0.5f, Eigen::Vector3f::UnitX())).toRotationMatrix());
|
||||||
|
renderer.RotateMatrix(Eigen::Quaternionf(Eigen::AngleAxisf(M_PI, Eigen::Vector3f::UnitZ())).toRotationMatrix());
|
||||||
|
|
||||||
|
//renderer.RotateMatrix(QuatFromRotateAroundX(-M_PI / 2.0));
|
||||||
|
//renderer.RotateMatrix(QuatFromRotateAroundZ(M_PI));
|
||||||
|
|
||||||
|
if (violaCurrentAnimation == 0) {
|
||||||
|
|
||||||
|
violaIdleModelMutable.AssignFrom(violaIdleModel.mesh);
|
||||||
|
violaIdleModelMutable.RefreshVBO();
|
||||||
|
glBindTexture(GL_TEXTURE_2D, violaTexture->getTexID());
|
||||||
|
renderer.DrawVertexRenderStruct(violaIdleModelMutable);
|
||||||
|
}
|
||||||
|
else if (violaCurrentAnimation == 1) {
|
||||||
|
violaWalkModelMutable.AssignFrom(violaWalkModel.mesh);
|
||||||
|
violaWalkModelMutable.RefreshVBO();
|
||||||
|
glBindTexture(GL_TEXTURE_2D, violaTexture->getTexID());
|
||||||
|
renderer.DrawVertexRenderStruct(violaWalkModelMutable);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderer.PopMatrix();
|
||||||
|
|
||||||
|
|
||||||
renderer.PopMatrix();
|
renderer.PopMatrix();
|
||||||
|
|
||||||
renderer.PopProjectionMatrix();
|
renderer.PopProjectionMatrix();
|
||||||
@ -294,7 +326,37 @@ namespace ZL
|
|||||||
int64_t delta = newTickCount - lastTickCount;
|
int64_t delta = newTickCount - lastTickCount;
|
||||||
|
|
||||||
lastTickCount = newTickCount;
|
lastTickCount = newTickCount;
|
||||||
|
|
||||||
|
if (violaCurrentAnimation == 0) {
|
||||||
|
|
||||||
|
violaCurrentIdleFrame += delta / 24.f;
|
||||||
|
|
||||||
|
while (violaCurrentIdleFrame >= 40) {
|
||||||
|
violaCurrentIdleFrame -= 40;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (int(violaCurrentIdleFrame) != violaLastIdleFrame) {
|
||||||
|
violaIdleModel.Interpolate(int(violaCurrentIdleFrame));
|
||||||
|
violaLastIdleFrame = int(violaCurrentIdleFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (violaCurrentAnimation == 1) {
|
||||||
|
|
||||||
|
violaCurrentWalkFrame += delta / 24.f;
|
||||||
|
|
||||||
|
while (violaCurrentWalkFrame >= 30) {
|
||||||
|
violaCurrentWalkFrame -= 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (int(violaCurrentWalkFrame) != violaLastWalkFrame) {
|
||||||
|
violaWalkModel.Interpolate(int(violaCurrentWalkFrame));
|
||||||
|
violaLastWalkFrame = int(violaCurrentWalkFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::render() {
|
void Game::render() {
|
||||||
|
|||||||
18
src/Game.h
18
src/Game.h
@ -1,5 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include "BoneAnimatedModel.h"
|
||||||
#include "render/Renderer.h"
|
#include "render/Renderer.h"
|
||||||
#include "Environment.h"
|
#include "Environment.h"
|
||||||
#include "render/TextureManager.h"
|
#include "render/TextureManager.h"
|
||||||
@ -56,6 +56,22 @@ namespace ZL {
|
|||||||
|
|
||||||
std::shared_ptr<Texture> benchTexture;
|
std::shared_ptr<Texture> benchTexture;
|
||||||
VertexRenderStruct benchMesh;
|
VertexRenderStruct benchMesh;
|
||||||
|
|
||||||
|
BoneSystem violaIdleModel;
|
||||||
|
VertexRenderStruct violaIdleModelMutable;
|
||||||
|
|
||||||
|
BoneSystem violaWalkModel;
|
||||||
|
VertexRenderStruct violaWalkModelMutable;
|
||||||
|
|
||||||
|
std::shared_ptr<Texture> violaTexture;
|
||||||
|
|
||||||
|
float violaCurrentIdleFrame = 0;
|
||||||
|
float violaCurrentWalkFrame = 0;
|
||||||
|
|
||||||
|
int violaLastIdleFrame = 0;
|
||||||
|
int violaLastWalkFrame = 0;
|
||||||
|
|
||||||
|
int violaCurrentAnimation = 0;
|
||||||
private:
|
private:
|
||||||
int64_t getSyncTimeMs();
|
int64_t getSyncTimeMs();
|
||||||
void processTickCount();
|
void processTickCount();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user