[Tutor] Livewires questions
Eric Brunson
brunson at brunson.com
Thu Jul 26 21:49:56 CEST 2007
Tonu Mikk wrote:
> Eric Brunson wrote:
>
>> Tiger12506 wrote:
>>
>>
>>>> Based on your guidance, I figured it out. I need to use a return
>>>> statement, which I had not encountered before. Now I wrote my
>>>> definitions in this way:
>>>>
>>>> def collided():
>>>> if player_x == robot_x+0.5 and player_y == robot_y+0.5:
>>>> return True
>>>>
>>>>
>>>>
>> Granting that I have not looked at any of the Livewires modules, I just
>> wanted to say...
>>
>> A general check for collision would probably involve the distance
>> formula from geometry
>>
>> collided( (x1,y1), (x2,y2) ):
>> return( sqrt( (x1-x2)**2 + (y1-y2)**2 ) < 1 )
>>
>> but could probably be simplified to something like:
>>
>> def collided( (x1,y1), (x2,y2) ):
>> return( abs( x1 - x2 ) < .5 and abs( y1 - y2 ) < .5 )
>>
>>
>>
> Thanks Eric for your suggestions. I believe Livewires modules have
> simplified collision checking for programming novices like myself.
> There are two shapes that I am working with, a circle and a square. The
> position of the circle is defined by the center coordinates whereas the
> position of the square is defined by the lower left corner of the
> square. When my circle is 0.5 points in diameter, I can add this much
> to both x and y coordinates of the square which will then give me the
> point where the square is sitting on top of the circle. It took me a
> long time to figure this out. I had to re-read the Graphics guide sheet
> that came with Livewires multiple times to try to get it to work
> correctly. I believe this part of my code is OK.
>
>
Good deal and good luck.
More information about the Tutor
mailing list