diff options
author | Walter Bender <walter@sugarlabs.org> | 2010-09-23 07:52:48 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2010-09-23 07:52:48 (GMT) |
commit | 75e61909eb0cc991bedbe81e932f797d4604438c (patch) | |
tree | 10af096c438aa29c2b2662546819768c464e060d /TurtleArt | |
parent | 997d7e9c26bf336a19e64b2129f8c2777d2a11b1 (diff) |
handle cases when alpha is not present
Diffstat (limited to 'TurtleArt')
-rw-r--r-- | TurtleArt/sprites.py | 18 |
1 files changed, 14 insertions, 4 deletions
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() |