public override int GetHashCode() { int hash = 1; if (Uid != 0) { hash ^= Uid.GetHashCode(); } if (MoveDirectionX != 0) { hash ^= MoveDirectionX.GetHashCode(); } if (MoveDirectionY != 0) { hash ^= MoveDirectionY.GetHashCode(); } if (AttackType != 0) { hash ^= AttackType.GetHashCode(); } if (AttackDirectionX != 0) { hash ^= AttackDirectionX.GetHashCode(); } if (AttackDirectionY != 0) { hash ^= AttackDirectionY.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public override void _Process(float delta) { if (enable_difficulty == true) { difficulty_coef = lvl.get_difficulty(); } difficulty_coef = (difficulty_coef < max_diff_coef) ? difficulty_coef : max_diff_coef; if (rotation_speed_direction != 0) { float rotation = Rotation + rotation_speed_direction * delta; Rotation = rotation; } // change position if (move_speed > 0) { var current_pos = Position; if (distance_x > 0) { float direction_x = (move_direction_x == MoveDirectionX.Right)? 1 : -1; float step_x = (move_speed + difficulty_coef) * delta; complete_distance_x += step_x; current_pos.x = current_pos.x + step_x * direction_x; } if (distance_y > 0) { float direction_y = (move_direction_y == MoveDirectionY.Down) ? 1 : -1; float step_y = (move_speed + difficulty_coef) * delta; complete_distance_y += step_y; current_pos.y = current_pos.y + step_y * direction_y; } Position = current_pos; if (complete_distance_x > distance_x) { complete_distance_x = 0; move_direction_x = (move_direction_x == MoveDirectionX.Right) ? MoveDirectionX.Left : MoveDirectionX.Right; } if (complete_distance_y > distance_y) { complete_distance_y = 0; move_direction_y = (move_direction_y == MoveDirectionY.Down) ? MoveDirectionY.Up : MoveDirectionY.Down; } } }
void InputControl() { Vector3 position = transform.position; if (Input.GetKeyDown(KeyCode.Space)) { GameObject bullet = Instantiate(bulletPrefab, position, Quaternion.identity); bullet.transform.parent = screen.transform; } if (Input.GetKeyDown(KeyCode.DownArrow)) { directionY = MoveDirectionY.Down; } if (Input.GetKeyUp(KeyCode.DownArrow)) { directionY = MoveDirectionY.Stop; } if (Input.GetKeyDown(KeyCode.UpArrow)) { directionY = MoveDirectionY.Up; } if (Input.GetKeyUp(KeyCode.UpArrow)) { directionY = MoveDirectionY.Stop; } if (Input.GetKeyDown(KeyCode.LeftArrow)) { directionX = MoveDirectionX.Left; } if (Input.GetKeyUp(KeyCode.LeftArrow)) { directionX = MoveDirectionX.Stop; } if (Input.GetKeyDown(KeyCode.RightArrow)) { directionX = MoveDirectionX.Right; } if (Input.GetKeyUp(KeyCode.RightArrow)) { directionX = MoveDirectionX.Stop; } Vector3 newPosition = transform.position; switch (directionY) { case MoveDirectionY.Down: { if (position.y - delta > limits.z) { newPosition = new Vector3(newPosition.x, newPosition.y - delta, newPosition.z); } break; } case MoveDirectionY.Up: { if (position.y + delta < limits.w) { newPosition = new Vector3(newPosition.x, newPosition.y + delta, newPosition.z); } break; } } switch (directionX) { case MoveDirectionX.Left: { if (position.x - delta > limits.x) { newPosition = new Vector3(newPosition.x - delta, newPosition.y, newPosition.z); } break; } case MoveDirectionX.Right: { if (position.x + delta < limits.y) { newPosition = new Vector3(newPosition.x + delta, newPosition.y, newPosition.z); } break; } } if (position != newPosition) { transform.position = newPosition; } }