Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -82,28 +82,28 @@ def load_aframe_and_extras():
|
|
82 |
pos = {x: center.x, y: height, z: center.z};
|
83 |
break;
|
84 |
case 'left':
|
85 |
-
pos = {x: -quadrantOffset, y: lowHeight, z: center.z};
|
86 |
break;
|
87 |
case 'right':
|
88 |
-
pos = {x: quadrantOffset, y: lowHeight, z: center.z};
|
89 |
break;
|
90 |
case 'front':
|
91 |
-
pos = {x: center.x, y: lowHeight, z: -quadrantOffset};
|
92 |
break;
|
93 |
case 'back':
|
94 |
-
pos = {x: center.x, y: lowHeight, z: quadrantOffset};
|
95 |
break;
|
96 |
case 'angle1':
|
97 |
-
pos = {x: -quadrantOffset, y: lowHeight, z: -quadrantOffset};
|
98 |
break;
|
99 |
case 'angle2':
|
100 |
-
pos = {x: quadrantOffset, y: lowHeight, z: -quadrantOffset};
|
101 |
break;
|
102 |
case 'angle3':
|
103 |
-
pos = {x: -quadrantOffset, y: lowHeight, z: quadrantOffset};
|
104 |
break;
|
105 |
case 'angle4':
|
106 |
-
pos = {x: quadrantOffset, y: lowHeight, z: quadrantOffset};
|
107 |
break;
|
108 |
}
|
109 |
rig.setAttribute('position', pos);
|
@@ -116,10 +116,28 @@ def load_aframe_and_extras():
|
|
116 |
var rSpeed = 2;
|
117 |
|
118 |
switch(action) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
case 'forward':
|
120 |
var cam = document.querySelector('[camera]');
|
121 |
var dir = new THREE.Vector3();
|
122 |
-
cam.object3D.getWorldDirection(dir);
|
123 |
var pos = rig.getAttribute('position');
|
124 |
pos.x += dir.x * 0.1;
|
125 |
pos.y += dir.y * 0.1;
|
@@ -127,18 +145,19 @@ def load_aframe_and_extras():
|
|
127 |
rig.setAttribute('position', pos);
|
128 |
break;
|
129 |
case 'backward':
|
130 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
break;
|
132 |
case 'stop':
|
133 |
velocity = {x: 0, y: 0, z: 0};
|
134 |
moveCamera('center');
|
135 |
break;
|
136 |
-
case 'rollCCW':
|
137 |
-
rot.z += rSpeed;
|
138 |
-
break;
|
139 |
-
case 'rollCW':
|
140 |
-
rot.z -= rSpeed;
|
141 |
-
break;
|
142 |
}
|
143 |
rig.setAttribute('rotation', rot);
|
144 |
}
|
@@ -147,7 +166,7 @@ def load_aframe_and_extras():
|
|
147 |
var rig = document.querySelector('#rig');
|
148 |
var pos = rig.getAttribute('position');
|
149 |
pos.x += velocity.x;
|
150 |
-
pos.y
|
151 |
pos.z += velocity.z;
|
152 |
rig.setAttribute('position', pos);
|
153 |
requestAnimationFrame(updateCameraPosition);
|
@@ -183,12 +202,16 @@ def load_aframe_and_extras():
|
|
183 |
case '7': moveCamera('angle2'); break;
|
184 |
case '8': moveCamera('angle3'); break;
|
185 |
case '9': moveCamera('angle4'); break;
|
186 |
-
case '
|
187 |
-
case '
|
188 |
-
case '
|
189 |
-
case '
|
190 |
-
case '
|
191 |
-
case '
|
|
|
|
|
|
|
|
|
192 |
}
|
193 |
});
|
194 |
</script>
|
|
|
82 |
pos = {x: center.x, y: height, z: center.z};
|
83 |
break;
|
84 |
case 'left':
|
85 |
+
pos = {x: -quadrantOffset, y: lowHeight, z: center.z};
|
86 |
break;
|
87 |
case 'right':
|
88 |
+
pos = {x: quadrantOffset, y: lowHeight, z: center.z};
|
89 |
break;
|
90 |
case 'front':
|
91 |
+
pos = {x: center.x, y: lowHeight, z: -quadrantOffset};
|
92 |
break;
|
93 |
case 'back':
|
94 |
+
pos = {x: center.x, y: lowHeight, z: quadrantOffset};
|
95 |
break;
|
96 |
case 'angle1':
|
97 |
+
pos = {x: -quadrantOffset, y: lowHeight, z: -quadrantOffset};
|
98 |
break;
|
99 |
case 'angle2':
|
100 |
+
pos = {x: quadrantOffset, y: lowHeight, z: -quadrantOffset};
|
101 |
break;
|
102 |
case 'angle3':
|
103 |
+
pos = {x: -quadrantOffset, y: lowHeight, z: quadrantOffset};
|
104 |
break;
|
105 |
case 'angle4':
|
106 |
+
pos = {x: quadrantOffset, y: lowHeight, z: quadrantOffset};
|
107 |
break;
|
108 |
}
|
109 |
rig.setAttribute('position', pos);
|
|
|
116 |
var rSpeed = 2;
|
117 |
|
118 |
switch(action) {
|
119 |
+
case 'moveLeft':
|
120 |
+
velocity.x = Math.max(velocity.x - accel, -maxSpeed);
|
121 |
+
break;
|
122 |
+
case 'moveRight':
|
123 |
+
velocity.x = Math.min(velocity.x + accel, maxSpeed);
|
124 |
+
break;
|
125 |
+
case 'moveUp':
|
126 |
+
velocity.y = Math.min(velocity.y + accel, maxSpeed);
|
127 |
+
break;
|
128 |
+
case 'moveDown':
|
129 |
+
velocity.y = Math.max(velocity.y - accel, -maxSpeed);
|
130 |
+
break;
|
131 |
+
case 'panLeft':
|
132 |
+
rot.y += rSpeed;
|
133 |
+
break;
|
134 |
+
case 'panRight':
|
135 |
+
rot.y -= rSpeed;
|
136 |
+
break;
|
137 |
case 'forward':
|
138 |
var cam = document.querySelector('[camera]');
|
139 |
var dir = new THREE.Vector3();
|
140 |
+
cam.object3D.getWorldDirection(dir);
|
141 |
var pos = rig.getAttribute('position');
|
142 |
pos.x += dir.x * 0.1;
|
143 |
pos.y += dir.y * 0.1;
|
|
|
145 |
rig.setAttribute('position', pos);
|
146 |
break;
|
147 |
case 'backward':
|
148 |
+
var cam = document.querySelector('[camera]');
|
149 |
+
var dir = new THREE.Vector3();
|
150 |
+
cam.object3D.getWorldDirection(dir);
|
151 |
+
var pos = rig.getAttribute('position');
|
152 |
+
pos.x -= dir.x * 0.1;
|
153 |
+
pos.y -= dir.y * 0.1;
|
154 |
+
pos.z -= dir.z * 0.1;
|
155 |
+
rig.setAttribute('position', pos);
|
156 |
break;
|
157 |
case 'stop':
|
158 |
velocity = {x: 0, y: 0, z: 0};
|
159 |
moveCamera('center');
|
160 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
}
|
162 |
rig.setAttribute('rotation', rot);
|
163 |
}
|
|
|
166 |
var rig = document.querySelector('#rig');
|
167 |
var pos = rig.getAttribute('position');
|
168 |
pos.x += velocity.x;
|
169 |
+
pos.y = Math.max(1, pos.y + velocity.y); // Prevent camera from going below y=1
|
170 |
pos.z += velocity.z;
|
171 |
rig.setAttribute('position', pos);
|
172 |
requestAnimationFrame(updateCameraPosition);
|
|
|
202 |
case '7': moveCamera('angle2'); break;
|
203 |
case '8': moveCamera('angle3'); break;
|
204 |
case '9': moveCamera('angle4'); break;
|
205 |
+
case 'q': flyCamera('moveLeft'); break;
|
206 |
+
case 'e': flyCamera('moveRight'); break;
|
207 |
+
case 'z': flyCamera('moveUp'); break;
|
208 |
+
case 'c': flyCamera('moveDown'); break;
|
209 |
+
case 'a': flyCamera('panLeft'); break;
|
210 |
+
case 'd': flyCamera('panRight'); break;
|
211 |
+
case 'w': flyCamera('forward'); break;
|
212 |
+
case 'x': flyCamera('backward'); break;
|
213 |
+
case 's': flyCamera('stop'); break;
|
214 |
+
case ' ': fireRaycast(); break;
|
215 |
}
|
216 |
});
|
217 |
</script>
|