awacke1 commited on
Commit
1abb14b
·
verified ·
1 Parent(s): 5e7c5f7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -23
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}; // Center on left side
86
  break;
87
  case 'right':
88
- pos = {x: quadrantOffset, y: lowHeight, z: center.z}; // Center on right side
89
  break;
90
  case 'front':
91
- pos = {x: center.x, y: lowHeight, z: -quadrantOffset}; // Center on top side
92
  break;
93
  case 'back':
94
- pos = {x: center.x, y: lowHeight, z: quadrantOffset}; // Center on bottom side
95
  break;
96
  case 'angle1':
97
- pos = {x: -quadrantOffset, y: lowHeight, z: -quadrantOffset}; // Top-left quadrant
98
  break;
99
  case 'angle2':
100
- pos = {x: quadrantOffset, y: lowHeight, z: -quadrantOffset}; // Top-right quadrant
101
  break;
102
  case 'angle3':
103
- pos = {x: -quadrantOffset, y: lowHeight, z: quadrantOffset}; // Bottom-left quadrant
104
  break;
105
  case 'angle4':
106
- pos = {x: quadrantOffset, y: lowHeight, z: quadrantOffset}; // Bottom-right quadrant
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); // Raycast direction (downward for top-down view)
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
- velocity.z = Math.min(velocity.z + accel, maxSpeed);
 
 
 
 
 
 
 
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 += velocity.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 'w': flyCamera('forward'); break;
187
- case 'x': flyCamera('backward'); break;
188
- case 's': flyCamera('stop'); break;
189
- case 'q': flyCamera('rollCCW'); break;
190
- case 'e': flyCamera('rollCW'); break;
191
- case ' ': fireRaycast(); break;
 
 
 
 
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>