Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -11,8 +11,11 @@ def load_aframe_and_extras():
|
|
11 |
let score = 0;
|
12 |
let selectedEntity = null;
|
13 |
let velocity = {x: 0, y: 0, z: 0};
|
|
|
14 |
let maxSpeed = 0.5;
|
15 |
let accel = 0.02;
|
|
|
|
|
16 |
|
17 |
AFRAME.registerComponent('draggable', {
|
18 |
init: function () {
|
@@ -112,63 +115,75 @@ def load_aframe_and_extras():
|
|
112 |
|
113 |
function flyCamera(action) {
|
114 |
var rig = document.querySelector('#rig');
|
115 |
-
var
|
116 |
-
var rSpeed = 2;
|
117 |
|
118 |
switch(action) {
|
119 |
case 'moveLeft':
|
120 |
-
|
|
|
|
|
|
|
|
|
121 |
break;
|
122 |
case 'moveRight':
|
123 |
-
|
|
|
|
|
|
|
|
|
124 |
break;
|
125 |
-
case '
|
126 |
-
|
127 |
break;
|
128 |
-
case '
|
129 |
-
|
130 |
break;
|
131 |
-
case '
|
132 |
-
|
133 |
break;
|
134 |
-
case '
|
135 |
-
|
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;
|
144 |
pos.z += dir.z * 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('
|
163 |
}
|
164 |
|
165 |
function updateCameraPosition() {
|
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);
|
170 |
pos.z += velocity.z;
|
|
|
|
|
|
|
|
|
|
|
171 |
rig.setAttribute('position', pos);
|
|
|
172 |
requestAnimationFrame(updateCameraPosition);
|
173 |
}
|
174 |
|
@@ -202,12 +217,12 @@ def load_aframe_and_extras():
|
|
202 |
case '7': moveCamera('angle2'); break;
|
203 |
case '8': moveCamera('angle3'); break;
|
204 |
case '9': moveCamera('angle4'); break;
|
205 |
-
case 'q': flyCamera('
|
206 |
-
case 'e': flyCamera('
|
207 |
-
case 'z': flyCamera('
|
208 |
-
case 'c': flyCamera('
|
209 |
-
case 'a': flyCamera('
|
210 |
-
case 'd': flyCamera('
|
211 |
case 'w': flyCamera('forward'); break;
|
212 |
case 'x': flyCamera('backward'); break;
|
213 |
case 's': flyCamera('stop'); break;
|
|
|
11 |
let score = 0;
|
12 |
let selectedEntity = null;
|
13 |
let velocity = {x: 0, y: 0, z: 0};
|
14 |
+
let rotVelocity = {x: 0, y: 0, z: 0};
|
15 |
let maxSpeed = 0.5;
|
16 |
let accel = 0.02;
|
17 |
+
let maxRotSpeed = 2;
|
18 |
+
let rotAccel = 0.1;
|
19 |
|
20 |
AFRAME.registerComponent('draggable', {
|
21 |
init: function () {
|
|
|
115 |
|
116 |
function flyCamera(action) {
|
117 |
var rig = document.querySelector('#rig');
|
118 |
+
var pos = rig.getAttribute('position');
|
|
|
119 |
|
120 |
switch(action) {
|
121 |
case 'moveLeft':
|
122 |
+
var leftDir = new THREE.Vector3(-1, 0, 0);
|
123 |
+
leftDir.applyQuaternion(rig.object3D.quaternion);
|
124 |
+
pos.x += leftDir.x * 0.1;
|
125 |
+
pos.y += leftDir.y * 0.1;
|
126 |
+
pos.z += leftDir.z * 0.1;
|
127 |
break;
|
128 |
case 'moveRight':
|
129 |
+
var rightDir = new THREE.Vector3(1, 0, 0);
|
130 |
+
rightDir.applyQuaternion(rig.object3D.quaternion);
|
131 |
+
pos.x += rightDir.x * 0.1;
|
132 |
+
pos.y += rightDir.y * 0.1;
|
133 |
+
pos.z += rightDir.z * 0.1;
|
134 |
break;
|
135 |
+
case 'rotateCCW':
|
136 |
+
rotVelocity.y = Math.min(rotVelocity.y + rotAccel, maxRotSpeed);
|
137 |
break;
|
138 |
+
case 'rotateCW':
|
139 |
+
rotVelocity.y = Math.max(rotVelocity.y - rotAccel, -maxRotSpeed);
|
140 |
break;
|
141 |
+
case 'rollCCW':
|
142 |
+
rotVelocity.z = Math.min(rotVelocity.z + rotAccel, maxRotSpeed);
|
143 |
break;
|
144 |
+
case 'rollCW':
|
145 |
+
rotVelocity.z = Math.max(rotVelocity.z - rotAccel, -maxRotSpeed);
|
146 |
break;
|
147 |
case 'forward':
|
148 |
var cam = document.querySelector('[camera]');
|
149 |
var dir = new THREE.Vector3();
|
150 |
cam.object3D.getWorldDirection(dir);
|
|
|
151 |
pos.x += dir.x * 0.1;
|
152 |
pos.y += dir.y * 0.1;
|
153 |
pos.z += dir.z * 0.1;
|
|
|
154 |
break;
|
155 |
case 'backward':
|
156 |
var cam = document.querySelector('[camera]');
|
157 |
var dir = new THREE.Vector3();
|
158 |
cam.object3D.getWorldDirection(dir);
|
|
|
159 |
pos.x -= dir.x * 0.1;
|
160 |
pos.y -= dir.y * 0.1;
|
161 |
pos.z -= dir.z * 0.1;
|
|
|
162 |
break;
|
163 |
case 'stop':
|
164 |
velocity = {x: 0, y: 0, z: 0};
|
165 |
+
rotVelocity = {x: 0, y: 0, z: 0};
|
166 |
moveCamera('center');
|
167 |
break;
|
168 |
}
|
169 |
+
rig.setAttribute('position', pos);
|
170 |
}
|
171 |
|
172 |
function updateCameraPosition() {
|
173 |
var rig = document.querySelector('#rig');
|
174 |
var pos = rig.getAttribute('position');
|
175 |
+
var rot = rig.getAttribute('rotation');
|
176 |
+
|
177 |
pos.x += velocity.x;
|
178 |
+
pos.y = Math.max(1, pos.y + velocity.y);
|
179 |
pos.z += velocity.z;
|
180 |
+
|
181 |
+
rot.x += rotVelocity.x;
|
182 |
+
rot.y += rotVelocity.y;
|
183 |
+
rot.z += rotVelocity.z;
|
184 |
+
|
185 |
rig.setAttribute('position', pos);
|
186 |
+
rig.setAttribute('rotation', rot);
|
187 |
requestAnimationFrame(updateCameraPosition);
|
188 |
}
|
189 |
|
|
|
217 |
case '7': moveCamera('angle2'); break;
|
218 |
case '8': moveCamera('angle3'); break;
|
219 |
case '9': moveCamera('angle4'); break;
|
220 |
+
case 'q': flyCamera('rotateCCW'); break;
|
221 |
+
case 'e': flyCamera('rotateCW'); break;
|
222 |
+
case 'z': flyCamera('rollCCW'); break;
|
223 |
+
case 'c': flyCamera('rollCW'); break;
|
224 |
+
case 'a': flyCamera('moveLeft'); break;
|
225 |
+
case 'd': flyCamera('moveRight'); break;
|
226 |
case 'w': flyCamera('forward'); break;
|
227 |
case 'x': flyCamera('backward'); break;
|
228 |
case 's': flyCamera('stop'); break;
|