animation for chalkboard

This commit is contained in:
Caenneth 2024-06-24 16:51:03 +02:00
parent 4c65103fd6
commit e5203bbc63
2 changed files with 29 additions and 6 deletions

View File

@ -48,7 +48,7 @@ texture ../texture/floor/Carpet.png
obj 0
use 1
name myChair1_1
rotateY -1.5
rotateY 0.0
scale 1.0 1.0 1.0
# Platz 2 #
@ -1579,9 +1579,9 @@ obj 147
name myChalkboard
scale 1.9 1.9 1.9
rotateX 0.0
rotateY -1.5
rotateY 0.0
rotateZ 0.0
translate 0.0 -0.5 6.5
translate 6.4 -0.3 0.3
# Chalkboard 1 #
obj 138

View File

@ -56,6 +56,7 @@ SceneNode* rootNode;
/**
* Input handler for camera movement.
* */
float chalkboardYPosition = 0.0f;
void handleInputs(double deltaTime) {
assert(window != NULL);
@ -93,11 +94,33 @@ void handleInputs(double deltaTime) {
cameraPosition.y -= deltaTime * 10;
}
SceneNode* chalkboard = findNodeByName("myChalkboard1", rootNode);
if (!chalkboard) return;
if (glfwGetKey(window, GLFW_KEY_X) == GLFW_PRESS) {
SceneNode* chalkboard = findNodeByName("myChalkboard1", SceneNode* root);
chalkboard->transformation[3][1] += 0.1f; // Erhöht die Y-Position
if (chalkboardYPosition >= 1.0f) {
chalkboardYPosition = 1.0f;
return;
}
chalkboardYPosition += deltaTime * 1.0f;
chalkboard->transformation = (mat4){1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, chalkboardYPosition, 0.0f, 1.0f};
updateSceneNode(chalkboard, &findNodeByName("myChalkboard", rootNode)->worldTransformation);
}
if (glfwGetKey(window, GLFW_KEY_C) == GLFW_PRESS) {
if (chalkboardYPosition <= 0.0f) {
chalkboardYPosition = 0.0f;
return;
}
chalkboardYPosition -= deltaTime * 1.0f;
chalkboard->transformation = (mat4){1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, chalkboardYPosition, 0.0f, 1.0f};
updateSceneNode(chalkboard, &findNodeByName("myChalkboard", rootNode)->worldTransformation);
}
if (glfwGetKey(window, GLFW_KEY_L) == GLFW_PRESS) {
objectPosition.x += deltaTime * 10;
}