changeset 127:fe1f0bb4ecf0

Handle case of display larger than the level better
author Neil Muller <drnlmuller@gmail.com>
date Mon, 02 Sep 2013 17:22:42 +0200
parents c3af35561494
children fbb073720bac
files nagslang/screens/area.py
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/screens/area.py	Mon Sep 02 17:09:47 2013 +0200
+++ b/nagslang/screens/area.py	Mon Sep 02 17:22:42 2013 +0200
@@ -115,16 +115,20 @@
         level_size = level_surface.get_size()
         display_size = display_surface.get_size()
         protagnist_pos = self.protagonist.physicser.get_render_position(
-                level_surface)
+            level_surface)
         x_wide = display_size[0] // 2
         y_wide = display_size[1] // 2
-        if protagnist_pos[0] < x_wide:
+        if display_size[0] > level_size[0]:
+            x = -(display_size[0] - level_size[0]) // 2
+        elif protagnist_pos[0] < x_wide:
             x = 0
         elif protagnist_pos[0] > level_size[0] - x_wide:
             x = level_size[0] - display_size[0]
         else:
             x = protagnist_pos[0] - x_wide
-        if protagnist_pos[1] < y_wide:
+        if display_size[1] > level_size[1]:
+            y = -(display_size[1] - level_size[1]) // 2
+        elif protagnist_pos[1] < y_wide:
             y = 0
         elif protagnist_pos[1] > level_size[1] - y_wide:
             y = level_size[1] - display_size[1]