Merge pull request #2 from Caenneth/animation

Animation + chalkboard fix
This commit is contained in:
Caenneth 2024-06-24 15:14:49 +02:00 committed by GitHub
commit 223bdf5f9d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 68 additions and 43 deletions

View File

@ -4,37 +4,31 @@ mtllib Chalkboard.mtl
o Board_Left_Cube.007 o Board_Left_Cube.007
v -0.010000 0.100000 -0.103724 v -0.010000 0.100000 -0.103724
v -0.010000 1.100000 -0.103724 v -0.010000 1.100000 -0.103724
v -0.010000 0.100000 -3.103724 v -0.010000 1.100001 -3.103724
v -0.010000 1.100000 -3.103724 v -0.010000 0.100001 -3.103724
v 0.010000 0.100000 -0.103724 v 0.010000 1.100001 -3.103724
v 0.010000 0.100001 -3.103724
v 0.010000 1.100000 -0.103724 v 0.010000 1.100000 -0.103724
v 0.010000 0.100000 -3.103724 v 0.010000 0.100000 -0.103724
v 0.010000 1.100000 -3.103724 vt 0.000842 0.005279
vt 0.375000 0.000000 vt 0.000743 0.996240
vt 0.625000 0.000000 vt 0.999129 0.994899
vt 0.625000 0.250000 vt 0.999298 0.001063
vt 0.375000 0.250000 vt 0.999759 0.995048
vt 0.625000 0.500000 vt 0.999840 0.000181
vt 0.375000 0.500000 vt -0.000193 0.996350
vt 0.625000 0.750000 vt 0.000018 0.004470
vt 0.375000 0.750000 vn -1.0000 -0.0000 0.0000
vt 0.625000 1.000000
vt 0.375000 1.000000
vt 0.125000 0.500000
vt 0.125000 0.750000
vt 0.875000 0.500000
vt 0.875000 0.750000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000 vn 1.0000 -0.0000 0.0000
vn 0.0000 0.0000 1.0000 vn 0.0000 -0.0000 1.0000
vn 0.0000 -1.0000 0.0000 vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 0.0000 vn 0.0000 1.0000 0.0000
usemtl TestChalk.001 usemtl TestChalk.001
s off s 1
f 1/1/1 2/2/1 4/3/1 3/4/1 f 1/1/1 2/2/1 3/3/1 4/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2 f 4/4/2 3/3/2 5/5/2 6/6/2
f 7/6/3 8/5/3 6/7/3 5/8/3 f 6/6/3 5/5/3 7/7/3 8/8/3
f 5/8/4 6/7/4 2/9/4 1/10/4 f 8/8/4 7/7/4 2/2/4 1/1/4
f 3/11/5 7/6/5 5/8/5 1/12/5 f 4/4/5 6/6/5 8/8/5 1/1/5
f 8/5/6 4/13/6 2/14/6 6/7/6 f 5/5/6 3/3/6 2/2/6 7/7/6

View File

@ -48,7 +48,7 @@ texture ../texture/floor/Carpet.png
obj 0 obj 0
use 1 use 1
name myChair1_1 name myChair1_1
rotateY -1.5 rotateY 0.0
scale 1.0 1.0 1.0 scale 1.0 1.0 1.0
# Platz 2 # # Platz 2 #
@ -1574,27 +1574,36 @@ rotateZ 0.0
translate -12.0 2.66 -4.0 translate -12.0 2.66 -4.0
parent 0 parent 0
# Chalkboard 1 # # Chalkboard Parent #
obj 138 obj 147
use 2 name myChalkboard
name myChalkboard1
scale 1.9 1.9 1.9 scale 1.9 1.9 1.9
rotateX 0.0 rotateX 0.0
rotateY 0.0 rotateY 0.0
rotateZ 0.0 rotateZ 0.0
translate 6.5 -0.4 0.3 translate 6.4 -0.3 0.3
parent 0
# Chalkboard 1 #
obj 138
use 2
name myChalkboard1
scale 1.0 1.0 1.0
rotateX 0.0
rotateY 0.0
rotateZ 0.0
translate 0.0 0.0 0.0
parent 147
# Chalkboard 2 # # Chalkboard 2 #
obj 139 obj 139
use 2 use 2
name myChalkboard2 name myChalkboard2
scale 1.9 1.9 1.9 scale 1.0 1.0 1.0
rotateX 0.0 rotateX 0.0
rotateY 0.0 rotateY 0.0
rotateZ 0.0 rotateZ 0.0
translate 6.5 -0.4 6.15 translate 0.0 0.0 3.05
parent 0 parent 147
# Chalkboard Pole 1 # # Chalkboard Pole 1 #
obj 140 obj 140
@ -1604,8 +1613,8 @@ scale 1.0 1.0 1.0
rotateX 0.0 rotateX 0.0
rotateY 0.0 rotateY 0.0
rotateZ 0.0 rotateZ 0.0
translate 0.0 0.0 3.07 translate 0.0 0.0 3.05
parent 138 parent 147
# Chalkboard Pole 2 # # Chalkboard Pole 2 #
obj 141 obj 141
@ -1616,7 +1625,7 @@ rotateX 0.0
rotateY 0.0 rotateY 0.0
rotateZ 0.0 rotateZ 0.0
translate 0.0 0.0 0.0 translate 0.0 0.0 0.0
parent 138 parent 147
# Table 1 # # Table 1 #

View File

@ -56,6 +56,7 @@ SceneNode* rootNode;
/** /**
* Input handler for camera movement. * Input handler for camera movement.
* */ * */
float chalkboardYPosition = 0.0f;
void handleInputs(double deltaTime) { void handleInputs(double deltaTime) {
assert(window != NULL); assert(window != NULL);
@ -93,6 +94,27 @@ void handleInputs(double deltaTime) {
cameraPosition.y -= deltaTime * 10; cameraPosition.y -= deltaTime * 10;
} }
SceneNode* chalkboard = findNodeByName("myChalkboard1", rootNode);
if (!chalkboard) return;
if (glfwGetKey(window, GLFW_KEY_X) == GLFW_PRESS) {
chalkboardYPosition += deltaTime * 1.0f;
chalkboardYPosition = fminf(chalkboardYPosition, 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) {
chalkboardYPosition -= deltaTime * 1.0f;
chalkboardYPosition = fmaxf(chalkboardYPosition, 0.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) { if (glfwGetKey(window, GLFW_KEY_L) == GLFW_PRESS) {
objectPosition.x += deltaTime * 10; objectPosition.x += deltaTime * 10;
} }