示例#1
0
	def test_convert_world_vector_to_view_vector_transforms_a_vector_in_world_space_to_a_vector_in_view_space(self):  # noqa
		tmap = TileMap(TileGrid(Size(12, 16)), tile_sz=Size(10, 10))
		cam = Camera(tmap)
		cam.view_rect = Rectangle(Point(2, 3), Size(2, 3))
		self.assertEqual(
			cam.convert_world_vector_to_view_vector(Vector(3, 4)),
			Vector(3/120*2, 4/160*3),
			)
示例#2
0
	def test_pan_clamps_the_center_of_the_camera_within_the_bounds_of_the_map(self):  # noqa
		tmap = TileMap(TileGrid(Size(12, 16)), tile_sz=Size(10, 10))
		cam = Camera(tmap)
		cam.pan(Vector(-65, 165))
		self.assertEqual(
			cam.view_rect,
			Rectangle(Point(-60, 80), Size(120, 160)),
			)
示例#3
0
	def test_zoom_clamps_the_maximum_zoom_in_to_the_minimum_tile_line_in_view(self):  # noqa
		tmap = TileMap(TileGrid(Size(12, 16)), tile_sz=Size(10, 10))
		cam = Camera(tmap)
		cam.minimum_tile_line_in_view = 4
		cam.zoom(0.00001)
		expected_r = Rectangle(
			Point(60-4*10/2, 80-4*10*16/12/2),
			Size(4*10, 4*10*16/12),
			)
		self.assertEqual(cam.view_rect, expected_r)
示例#4
0
	def test_zoom_clamps_the_maximum_zoom_out_to_the_size_of_the_map(self):
		tmap = TileMap(TileGrid(Size(12, 16)), tile_sz=Size(10, 10))
		cam = Camera(tmap)
		cam.zoom(1000000)
		self.assertEqual(cam.view_rect, tmap.bounds_rect)
示例#5
0
	def test_zoom_scales_the_view_rectangle_by_the_supplied_factor(self):
		tmap = TileMap(TileGrid(Size(12, 16)), tile_sz=Size(10, 10))
		cam = Camera(tmap)
		cam.minimum_tile_line_in_view = 4
		cam.zoom(0.5)
		self.assertEqual(cam.view_rect, Rectangle(Point(30, 40), Size(60, 80)))
示例#6
0
	def test_pan_moves_the_view_rectangle_by_a_supplied_vector(self):
		tmap = TileMap(TileGrid(Size(12, 16)), tile_sz=Size(10, 10))
		cam = Camera(tmap)
		cam.pan(Vector(3, 4))
		self.assertEqual(cam.view_rect, Rectangle(Point(3, 4), Size(120, 160)))