resolving conflicts by merge

This commit is contained in:
maka70vv 2025-03-02 11:28:16 +06:00
commit 8e5e96e3ee
8 changed files with 35342 additions and 23 deletions

View File

@ -15,4 +15,7 @@ bool Environment::downPressed = false;
Vector3f Environment::cameraShift = {0, 0, 0}; Vector3f Environment::cameraShift = {0, 0, 0};
Vector3f Environment::characterPos = {0, 0, 0}; Vector3f Environment::characterPos = {0, 0, 0};
float Environment::violaCurrentIdleFrame = 0.f;
} // namespace ZL } // namespace ZL

View File

@ -17,6 +17,8 @@ public:
static Vector3f cameraShift; static Vector3f cameraShift;
static Vector3f characterPos; static Vector3f characterPos;
static float violaCurrentIdleFrame;
}; };
} // namespace ZL } // namespace ZL

View File

@ -37,7 +37,8 @@ void GameObjectManager::initialize() {
coneMeshMutable.RefreshVBO(); coneMeshMutable.RefreshVBO();
// Load bone animations // Load bone animations
bx.LoadFromFile("mesh_armature_and_animation_data.txt"); //bx.LoadFromFile("./violetta001.txt");
bx.LoadFromFile("./idleviola001.txt");
// Create active object // Create active object
ActiveObject ao1; ActiveObject ao1;
@ -230,6 +231,16 @@ void GameObjectManager::updateScene(size_t ms) {
if (rooms[current_room_index].roomLogic) { if (rooms[current_room_index].roomLogic) {
rooms[current_room_index].roomLogic(*this, ms); rooms[current_room_index].roomLogic(*this, ms);
} }
Environment::violaCurrentIdleFrame += ms / 24.f;
while (Environment::violaCurrentIdleFrame > 40)
{
Environment::violaCurrentIdleFrame -= 40;
}
bx.Interpolate(int(Environment::violaCurrentIdleFrame));
} }
bool GameObjectManager::isPointInObject(int screenX, int screenY, int objectScreenX, int objectScreenY) const { bool GameObjectManager::isPointInObject(int screenX, int screenY, int objectScreenX, int objectScreenY) const {

View File

@ -6,7 +6,9 @@
#include <vector> #include <vector>
#include "ActiveObject.h" #include "ActiveObject.h"
#include "Room.h" #include "Room.h"
#ifdef __linux__
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#endif
#include "OpenGlExtensions.h" #include "OpenGlExtensions.h"
namespace ZL { namespace ZL {
@ -51,7 +53,7 @@ public:
static const float INVENTORY_MARGIN; static const float INVENTORY_MARGIN;
private: private:
int animationCounter = 0; //int animationCounter = 0;
int lastMouseX = 0; // Добавляем переменные для хранения позиции мыши int lastMouseX = 0; // Добавляем переменные для хранения позиции мыши
int lastMouseY = 0; int lastMouseY = 0;
int current_room_index; int current_room_index;

View File

@ -4,6 +4,8 @@
#include "Inventory.h" #include "Inventory.h"
#include <GL/gl.h> #include <GL/gl.h>
namespace ZL { namespace ZL {
void RenderSystem::initialize() { void RenderSystem::initialize() {
@ -12,7 +14,7 @@ void RenderSystem::initialize() {
renderer.InitOpenGL(); renderer.InitOpenGL();
} }
void RenderSystem::drawScene(const GameObjectManager& gameObjects) { void RenderSystem::drawScene(GameObjectManager& gameObjects) {
static const std::string defaultShaderName = "default"; static const std::string defaultShaderName = "default";
static const std::string vPositionName = "vPosition"; static const std::string vPositionName = "vPosition";
static const std::string vTexCoordName = "vTexCoord"; static const std::string vTexCoordName = "vTexCoord";
@ -22,6 +24,90 @@ void RenderSystem::drawScene(const GameObjectManager& gameObjects) {
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
glViewport(0, 0, Environment::width, Environment::height); glViewport(0, 0, Environment::width, Environment::height);
/*
renderer.shaderManager.PushShader(defaultShaderName);
renderer.RenderUniform1i(textureUniformName, 0);
renderer.EnableVertexAttribArray(vPositionName);
renderer.EnableVertexAttribArray(vTexCoordName);
*/
drawWorld(gameObjects);
//drawUI(gameObjects);
/*renderer.DisableVertexAttribArray(vPositionName);
renderer.DisableVertexAttribArray(vTexCoordName);
renderer.shaderManager.PopShader();*/
CheckGlError();
}
void RenderSystem::drawViola(GameObjectManager& gameObjects)
{
static const std::string defaultShaderName = "default";
static const std::string colorShaderName = "defaultColor";
static const std::string vPositionName = "vPosition";
static const std::string vTexCoordName = "vTexCoord";
static const std::string vColorName = "vColor";
static const std::string textureUniformName = "Texture";
renderer.shaderManager.PushShader(colorShaderName);
renderer.EnableVertexAttribArray(vPositionName);
renderer.PushPerspectiveProjectionMatrix(1.0 / 1.5,
static_cast<float>(Environment::width) / static_cast<float>(Environment::height),
50, 10000);
renderer.PushMatrix();
renderer.LoadIdentity();
renderer.TranslateMatrix({ 0,0, -100 * Environment::zoom });
float t = 0.3;
renderer.RotateMatrix(QuatFromRotateAroundX(t * M_PI / 2.0));
renderer.ScaleMatrix(10);
renderer.RotateMatrix(QuatFromRotateAroundX(-M_PI / 2.0));
//float t = 0.3;
//renderer.RotateMatrix(QuatFromRotateAroundX(t * M_PI / 2.0));
gameObjects.bxMutable.AssignFrom(gameObjects.bx.mesh);
gameObjects.bxMutable.RefreshVBO();
renderer.DrawVertexRenderStruct(gameObjects.bxMutable);
renderer.PopMatrix();
renderer.PopProjectionMatrix();
renderer.DisableVertexAttribArray(vPositionName);
renderer.shaderManager.PopShader();
}
void RenderSystem::drawWorld(GameObjectManager& gameObjects) {
static const std::string defaultShaderName = "default";
static const std::string colorShaderName = "defaultColor";
static const std::string vPositionName = "vPosition";
static const std::string vTexCoordName = "vTexCoord";
static const std::string vColorName = "vColor";
static const std::string textureUniformName = "Texture";
/*
renderer.shaderManager.PushShader(defaultShaderName);
renderer.RenderUniform1i(textureUniformName, 0);
renderer.EnableVertexAttribArray(vPositionName);
renderer.EnableVertexAttribArray(vTexCoordName);
*/
// Draw cone
//glBindTexture(GL_TEXTURE_2D, gameObjects.coneTexturePtr->getTexID());
//renderer.DrawVertexRenderStruct(gameObjects.coneMeshMutable);
drawViola(gameObjects);
renderer.shaderManager.PushShader(defaultShaderName); renderer.shaderManager.PushShader(defaultShaderName);
renderer.RenderUniform1i(textureUniformName, 0); renderer.RenderUniform1i(textureUniformName, 0);
@ -29,33 +115,18 @@ void RenderSystem::drawScene(const GameObjectManager& gameObjects) {
renderer.EnableVertexAttribArray(vPositionName); renderer.EnableVertexAttribArray(vPositionName);
renderer.EnableVertexAttribArray(vTexCoordName); renderer.EnableVertexAttribArray(vTexCoordName);
drawWorld(gameObjects);
drawUI(gameObjects);
renderer.DisableVertexAttribArray(vPositionName); renderer.PushPerspectiveProjectionMatrix(1.0 / 1.5,
renderer.DisableVertexAttribArray(vTexCoordName); static_cast<float>(Environment::width) / static_cast<float>(Environment::height),
renderer.shaderManager.PopShader();
CheckGlError();
}
void RenderSystem::drawWorld(const GameObjectManager& gameObjects) {
renderer.PushPerspectiveProjectionMatrix(1.0 / 1.5,
static_cast<float>(Environment::width) / static_cast<float>(Environment::height),
50, 10000); 50, 10000);
renderer.PushMatrix(); renderer.PushMatrix();
renderer.LoadIdentity(); renderer.LoadIdentity();
renderer.TranslateMatrix({ 0,0, -100 * Environment::zoom }); renderer.TranslateMatrix({ 0,0, -100 * Environment::zoom });
float t = 0.3; float t = 0.3;
renderer.RotateMatrix(QuatFromRotateAroundX(t * M_PI / 2.0)); renderer.RotateMatrix(QuatFromRotateAroundX(t * M_PI / 2.0));
// Draw cone
glBindTexture(GL_TEXTURE_2D, gameObjects.coneTexturePtr->getTexID());
renderer.DrawVertexRenderStruct(gameObjects.coneMeshMutable);
renderer.TranslateMatrix(Environment::cameraShift); renderer.TranslateMatrix(Environment::cameraShift);
// Draw active objects // Draw active objects
@ -80,6 +151,10 @@ void RenderSystem::drawWorld(const GameObjectManager& gameObjects) {
renderer.PopMatrix(); renderer.PopMatrix();
renderer.PopProjectionMatrix(); renderer.PopProjectionMatrix();
renderer.DisableVertexAttribArray(vPositionName);
renderer.DisableVertexAttribArray(vTexCoordName);
renderer.shaderManager.PopShader();
// Store matrix for UI rendering // Store matrix for UI rendering
currentProjectionModelView = latestProjectionModelView; currentProjectionModelView = latestProjectionModelView;

View File

@ -9,7 +9,7 @@ class RenderSystem {
public: public:
RenderSystem() = default; RenderSystem() = default;
void initialize(); void initialize();
void drawScene(const GameObjectManager& gameObjects); void drawScene(GameObjectManager& gameObjects);
Renderer& getRenderer() { return renderer; } Renderer& getRenderer() { return renderer; }
void worldToScreenCoordinates(Vector3f objectPos, void worldToScreenCoordinates(Vector3f objectPos,
@ -18,9 +18,11 @@ public:
int& screenX, int& screenY); int& screenX, int& screenY);
private: private:
void drawWorld(const GameObjectManager& gameObjects); void drawWorld(GameObjectManager& gameObjects);
void drawUI(const GameObjectManager& gameObjects); void drawUI(const GameObjectManager& gameObjects);
void drawViola(GameObjectManager& gameObjects);
Renderer renderer; Renderer renderer;
ShaderManager shaderManager; ShaderManager shaderManager;
Matrix4f currentProjectionModelView; // Добавлено для хранения матрицы между drawWorld и drawUI Matrix4f currentProjectionModelView; // Добавлено для хранения матрицы между drawWorld и drawUI

17612
idleviola001.txt Normal file

File diff suppressed because it is too large Load Diff

17612
idleviola002.txt Normal file

File diff suppressed because it is too large Load Diff