コード例 #1
0
ファイル: camera.py プロジェクト: ytiolllok/NeedForOtl10
    def distance(self, new_distance):
        """
        Возращает физическое расстояние от камеры до сцены
        :return:
        """
        if new_distance <= 0:
            # raise CameraError("Distance became negative")
            return

        # Расстояние от камеры до поверхности экрана
        self.__distance = new_distance
        # Физическая ширина области вилимости камеры
        self.window_width = 2 * self.__distance * tan(self.h_fov / 2)
        # Физическая высота области вилимости камеры
        self.window_height = self.window_width * SCREEN_HEIGHT / SCREEN_WIDTH
        # Вертикальный угол обзора камеры
        self.v_fov = atan(self.window_height / self.__distance / 2)
        # Физическая область видимости камеры
        self.camera_rect = PhysicalRect(
            self.__position[0] - self.window_width / 2,
            self.__position[1] - self.window_height / 2, self.window_width,
            self.window_height)
        # Коэффициент, на который умножаются координаты, чтобы отрисовать объекты на экране на экране
        self.scale_factor = SCREEN_WIDTH / self.window_width
コード例 #2
0
 def step(self, dt):
     self.body_rect = PhysicalRect(
         *(self.body.position - (self.width / 2, self.height / 2)),
         self.width, self.height)