CameraRight,
CameraUp,
CameraDown,
+ CameraZoom,
Damage,
}
impl Actions {
const MAX_ACTIONS: usize = 256;
+ fn value(&self, action: Action) -> f32 {
+ self.new_values[action as usize]
+ }
+
fn is_active(&self, action: Action) -> bool {
self.new_values[action as usize] != 0.0
}
pub fn tick(&mut self, action_queue: &[ActionEvent]) {
self.old_values = self.new_values;
+ // TODO: Handle this properly...
+ self.new_values[Action::CameraZoom as usize] = 0.0;
+
for event in action_queue {
self.new_values[event.action as usize] = event.value;
}
}
pub fn tick(&mut self, actions: &Actions, target: Point3, time: f32, delta_time: f32) {
+ self.distance += actions.value(Action::CameraZoom);
+ self.distance = self.distance.clamp(1.0, 100.0);
+
let movement_bitmap = actions.is_active(Action::CameraUp) as usize
| (actions.is_active(Action::CameraDown) as usize) << 1
| (actions.is_active(Action::CameraLeft) as usize) << 2
const DOWN: Vec2 = vec2(0.0, -1.0);
const LEFT: Vec2 = vec2(-1.0, 0.0);
const RIGHT: Vec2 = vec2(1.0, 0.0);
- //SQRT_2 / 2.0
- const UP_LEFT: Vec2 = vec2(1.0, 0.0);
- const UP_RIGHT: Vec2 = vec2(0.0, 1.0);
- const DOWN_LEFT: Vec2 = vec2(0.0, -1.0);
- const DOWN_RIGHT: Vec2 = vec2(-1.0, 0.0);
+ const UP_LEFT: Vec2 = vec2(-SQRT_2 / 2.0, SQRT_2 / 2.0);
+ const UP_RIGHT: Vec2 = vec2(SQRT_2 / 2.0, SQRT_2 / 2.0);
+ const DOWN_LEFT: Vec2 = vec2(-SQRT_2 / 2.0, -SQRT_2 / 2.0);
+ const DOWN_RIGHT: Vec2 = vec2(SQRT_2 / 2.0, -SQRT_2 / 2.0);
let movement = [
// 0 0 0 0