[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[pygame] Keeping a sprite on screen with rect.clamp
- To: pygame-users@xxxxxxxx
- Subject: [pygame] Keeping a sprite on screen with rect.clamp
- From: Mark Reed <markreed99@xxxxxxxxx>
- Date: Sun, 15 Aug 2010 16:41:53 +0800
- Delivered-to: archiver@xxxxxxxx
- Delivered-to: pygame-users-outgoing@xxxxxxxx
- Delivered-to: pygame-users@xxxxxxxx
- Delivery-date: Sun, 15 Aug 2010 04:42:01 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;        d=gmail.com; s=gamma;        h=domainkey-signature:mime-version:received:received:date:message-id         :subject:from:to:content-type;        bh=RqRVDtUQFeza6IRpvokEj9pLa9AqZ6262lnKCjU+xdQ=;        b=kj2u5TElUZUybSW7xwhvNyw89XaCmz22eeAF6NkYuKnnqF70XZt6S4+EkSwe6TriFY         N9FTyGO3ctThuBZ2tOERV6vsk9wyqo2ZHIMq5du0kpToiXLkjSYsicdIS3cUzAhDgpip         LAaa1ma0zuqe4RwfT9ZqYJI9b2hzLjHDy8lRM=
- Domainkey-signature: a=rsa-sha1; c=nofws;        d=gmail.com; s=gamma;        h=mime-version:date:message-id:subject:from:to:content-type;        b=qcj+noFqpZ9lu3b4EDoAYhOhgGVV+Rin183svR/7KmYzvAvgT8XOCq16+JIxolR6Gv         FmvERdLoPUFmpeq6WZDf2dNPkLgC2D6oQZt4sK1Hmt9xbKniDz4QhqXSNCFJbutN2WXn         wWQPeUasT+dZS+9DNj+J1SNb1cqJ5ZOTd5+sc=
- Reply-to: pygame-users@xxxxxxxx
- Sender: owner-pygame-users@xxxxxxxx
In my pygame code I am using rect.clamp to keep sprites within a
screen or gameboard, where I clamp and if the center was moved I
recalculate the sprite's movement like so:
            ctr = self.rect.center
            self.rect = self.rect.clamp(self.clamp_rect)
            if self.rect.center != ctr:
I'm now using OpenGL with wxPython and my own sprite class. Would it
make sense to keep a pygame rect for my sprites and use this clamp
function?  I assumed the clamp being in C is better than me doing it
in python... Using the rect wouldn't slow things down vs just keeping
x,y in my own sprite class would it? I would only use rect.center and
I assume rect.x y top bottom etc are only calculated if they are used
right?
Mark