[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Re: Collision bounds smaller than sprite image



Also, I know it's common to have more than one collision rect. That way you 
can have one for where an object can attack from, and a separate one for 
where an object is vulnerable (or for any other purpose). 

So, for example, a ninja performing a flying jump kick might have an "attack" 
rect over their feet, but a "vulnerable" rect over the rest of their body. 
That way if another ninja kicks them from behind, in the back of the head, 
they will take damage. But, if two ninjas kick their feet into each other, 
you can make them bounce apart with no damage to either one. I made a game 
once where these rects had weights associated with them, so that a stronger 
character would prevail if two of these "attack" rects came in contact.

Also, in another game, I had the collision rect shrink when the character 
ducked. The flexability was really nice because I could make the game more 
forgiving than what was actually shown by the graphics. Likewise, with 
multiple rects, you can activate and deactivate them as needed. So, for 
example, you only have an active attack rect when you swing your sword.

On Friday 31 December 2004 02:32 pm, Austin Haas wrote:
> I've heard that in shooters, they always make the collision rect for your
> ship smaller than the graphic, and the rect for your enemies larger.
> Otherwise, players tend to feel like they are being cheated when a bullet
> barely touches them and kills them.
>
> On Friday 31 December 2004 07:15 pm, Lee Harr wrote:
> > >Yeah, the more I think about it, the more I think that creating a
> > >second rect and storing it as an attribute is the way to go.  All of
> > >the graphical adjustments and movements will be performed with the
> > >normal rect attribute, and the actual collision and bounds tests will
> > >be done with the collision_rect.
> >
> > That is how I did it in pygsear:
> > http://www.nongnu.org/pygsear/
> >
> > (except I called it spriteobj.crect  :o)
> >
> > >  I guess it's not really that hard,
> > >but I was really exhausted after writing a strip -> cel routine :D
> >
> > Interesting ... I have been thinking about writing such a beastie
> > for pygsear for the last few weeks... are you releasing your code?
> >
> > _________________________________________________________________
> > Express yourself instantly with MSN Messenger! Download today it's FREE!
> > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/