From 75e61909eb0cc991bedbe81e932f797d4604438c Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 23 Sep 2010 07:52:48 +0000 Subject: handle cases when alpha is not present --- (limited to 'TurtleArt') diff --git a/TurtleArt/sprites.py b/TurtleArt/sprites.py index 47a8121..d91fd71 100644 --- a/TurtleArt/sprites.py +++ b/TurtleArt/sprites.py @@ -414,13 +414,23 @@ class Sprite: return(-1, -1, -1, -1) array = self.images[i].get_pixels() if array is not None: - offset = (y * self.images[i].get_width() + x) * 4 try: - r, g, b, a = ord(array[offset]), ord(array[offset + 1]), \ - ord(array[offset + 2]), ord(array[offset + 3]) + if self.images[i].get_has_alpha(): + offset = (y * self.images[i].get_width() + x) * 4 + a = ord(array[offset + 3]) + else: + offset = (y * self.images[i].get_width() + x) * 3 + a = 255 + r = ord(array[offset]) + g = ord(array[offset + 1]) + b = ord(array[offset + 2]) return(r, g, b, a) except IndexError: - print "Index Error: %d %d" % (len(array), offset) + print "Index Error: %d %d (%d, %d) (w: %d, h: %d) (%dx%d)"\ + % (len(array), offset, x, y, + self.images[i].get_width(), + self.images[i].get_height(), + self.rect.width, self.rect.height) return(-1, -1, -1, -1) else: w, h = self.images[i].get_size() -- cgit v0.9.1