Thanks guys!  I think I've got a better handle on it now.

On Sat, Oct 2, 2010 at 10:05 PM, B W <stabbingfin...@gmail.com> wrote:

> I like Ian's earlier suggestion, Kevin, which he only hinted at. But I
> sense you're really struggling with how to extend your Circle class, and
> could use an example to go with the explanations.
>
> Note that every time you create a circle object with the Circle class,
> you're executing the constructor __init__. So if you add some parameters to
> __init__, then you can manipulate the creation and will get objects that
> behave in the same manner but with different details. Details such as
> position, direction, color, and anything else you need.
>
> In the constructor do something like this:
>
>
> class Circle(pygame.sprite.Sprite):
>     def __init__(self, position, direction, color, *groups):
>         pygame.sprite.Sprite.__init__(self, *groups)
>         #[use your same image and rect code]
>         self.rect.center = position
>         self.dx,self.dy = direction
>
> Your update method is fine the way it is. As Ian points out, get rid of
> update_circle2; it doesn't serve your purposes.
>
> In main create some circles at different start positions, directions, and
> colors, and might as well supply their sprite group since the Sprite
> superclass's constructor can automatically add the sprite to the group for
> you:
>
> Circle([25,25], [+5,+5], Color("yellow"), allSprites)  # top-left, going
> down-right
> Circle([640-25,25], [-5,+5], Color("red"), allSprites)  # top-right, going
> down-left
>
> You may be wondering where the circles go, since you're obviously not
> assigning them to a variable. They're in your sprite group, by virtue of the
> pygame.sprite.Sprite.__init__(self, *groups) call.
>
> I'm sure you can figure out the other two circles.
>
> After making these changes, you can remove the few lines of main's sprite
> initialization that no longer serve a purpose.
>
> Hope that helps to get you over the hump.
>
> Gumm
>
>
>
> On Sat, Oct 2, 2010 at 7:38 PM, kevin hayes <kevino...@gmail.com> wrote:
>
>> I just want to thank you for taking the time to help me out.  I'm going to
>> take a break for a while and when I come back I'm going to look over your
>> suggestions.  I hope to be able to answer some questions at some point
>> rather than asking them.
>>
>> On Sat, Oct 2, 2010 at 7:24 PM, Ian Mallett <geometr...@gmail.com> wrote:
>>
>>> On Sat, Oct 2, 2010 at 8:09 PM, kevin hayes <kevino...@gmail.com> wrote:
>>>
>>>> At this point I don't really care if the sprites write over eachother...
>>>
>>> You should.  Because otherwise, you can't see anything.  I don't mean
>>> proper handling of occlusion; I mean not being able to see what's going on.
>>> The problem can be found by first figuring out why they are being drawn on
>>> top of each other.  In graphics programming the problem is almost always
>>> self-evident once you see what's actually happening.
>>>
>>>> as long as that doesn't cause the program to crash.  I'm just trying to
>>>> get four circles going diagonally from each corner.  The problem I'm having
>>>> is with the update function...Do I write two update functions?  How do I 
>>>> get
>>>> the update function to apply separate code for the two (or more) circles?
>>>
>>> Only one update function can exist.  What you CAN (and should) do,
>>> though, is have the update function do a different thing for each sprite.
>>> Your second update function is never getting called, so delete it.
>>>
>>>> Here is my code as it stands:
>>>>
>>> Add this:
>>> circle2.dx = -5
>>> Then, you'll see that the sprites were being drawn over each other (and
>>> moreover, they were starting in the same position, so the yellow one darts
>>> off the screen to the left).  This latter is due to the fact that startPosx
>>> is never used.  Change your update function to change startPosx and
>>> startPosy instead of rect.center.
>>>
>>> Ian
>>>
>>
>>
>

Reply via email to