
    &h                        S r SSKrSSKr\R                  (       d  \" S5        \R                  (       d  \" S5        \R                  R                  \R                  R                  \
5      5      S   r\R                  R                  \S5      rSS jrS r " S S	\R                   R"                  5      r " S
 S\R                   R"                  5      rS r\S:X  a  \" 5         gg)zpygame.examples.chimp

This simple example is used for the line-by-line tutorial
that comes with pygame. It is based on a 'popular' web banner.
Note there are comments here, but for the full explanation,
follow along in the tutorial.
    NzWarning, fonts disabledzWarning, sound disableddatac                    [         R                  R                  [        U 5      n[        R
                  R                  U5      nUR                  5       nUR                  5       nUS   U-  US   U-  4n[        R                  R                  XE5      nUb7  US:X  a  UR                  S5      nUR                  U[        R                  5        XDR                  5       4$ )Nr      r   r   )ospathjoindata_dirpgimageloadconvertget_size	transformscaleget_atset_colorkeyRLEACCELget_rect)namecolorkeyr   fullnamer   sizes         M/var/www/auris/envauris/lib/python3.13/site-packages/pygame/examples/chimp.py
load_imager      s    ww||Hd+HHHMM(#EMMOE>>DGeOT!Wu_-DLLu+Er>||F+H8R[[1.."""    c                     " S S5      n[         R                  (       a#  [         R                  R                  5       (       d  U" 5       $ [        R                  R                  [        U 5      n[         R                  R                  U5      nU$ )Nc                       \ rS rSrS rSrg)load_sound.<locals>.NoneSound*   c                     g )N selfs    r   play"load_sound.<locals>.NoneSound.play+   s    r   r#   N)__name__
__module____qualname____firstlineno__r&   __static_attributes__r#   r   r   	NoneSoundr    *   s    	r   r-   )r   mixerget_initr   r	   r
   r   Sound)r   r-   r   sounds       r   
load_soundr2   )   sZ      88288,,..{ww||Hd+HHHNN8$ELr   c                   0    \ rS rSrSrS rS rS rS rSr	g)	Fist8   z8moves a clenched fist on the screen, following the mousec                     [         R                  R                  R                  U 5        [	        SS5      u  U l        U l        SU l        SU l        g )Nzfist.pngr   )iiF)	r   spriteSprite__init__r   r   rectfist_offsetpunchingr$   s    r   r9   Fist.__init__;   s>    
		!!$' *:r :
DI&r   c                    [         R                  R                  5       nXR                  l        U R                  R                  U R                  5        U R                  (       a  U R                  R                  SS5        gg)z)move the fist based on the mouse position      N)r   mouseget_posr:   topleftmove_ipr;   r<   )r%   poss     r   updateFist.updateA   sV    hh 				$**+==IIb"% r   c                     U R                   (       d>  SU l         U R                  R                  SS5      nUR                  UR                  5      $ g)z1returns true if the fist collides with the targetTN)r<   r:   inflatecolliderect)r%   targethitboxs      r   punch
Fist.punchI   s@    }} DMYY&&r2.F%%fkk22 r   c                     SU l         g)zcalled to pull the fist backFN)r<   r$   s    r   unpunchFist.unpunchP   s	    r   )r;   r   r<   r:   N)
r(   r)   r*   r+   __doc__r9   rF   rN   rQ   r,   r#   r   r   r4   r4   8   s    B&3r   r4   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
ChimpU   zTmoves a monkey critter across the screen. it can spin the
monkey when it is punched.c                 .   [         R                  R                  R                  U 5        [	        SSS5      u  U l        U l        [         R                  R                  5       nUR                  5       U l
        SU R                  l        SU l        SU l        g )Nz	chimp.pngr      )
   Z      F)r   r7   r8   r9   r   r   r:   displayget_surfacer   arearC   movedizzy)r%   screens     r   r9   Chimp.__init__Y   sk    
		!!$' *;A >
DI'')OO%	"			
r   c                 h    U R                   (       a  U R                  5         gU R                  5         g)z,walk or spin, depending on the monkeys stateN)r`   _spin_walkr$   s    r   rF   Chimp.updateb   s    ::JJLJJLr   c                 (   U R                   R                  U R                  S45      nU R                  R                  U5      (       d  U R                   R                  U R                  R                  :  d.  U R                   R
                  U R                  R
                  :  ai  U R                  * U l        U R                   R                  U R                  S45      n[        R                  R                  U R                  SS5      U l	        Xl         g)z7move the monkey across the screen, and turn at the endsr   TFN)
r:   r_   r^   containsleftrightr   r   flipr   )r%   newposs     r   re   Chimp._walki   s    A/yy!!&))yy~~		.$))//DIIOO2S!YYJ	A7\\..tzz4G
	r   c                 ^   U R                   R                  nU R                  S-   U l        U R                  S:  a  SU l        U R                  U l        O<[
        R                  R                  nU" U R                  U R                  5      U l        U R                  R                  US9U l         g)zspin the monkey image   ih  F)centerN)	r:   rp   r`   originalr   r   r   rotater   )r%   rp   rr   s      r   rd   Chimp._spins   s|    !!ZZ"_
::DJDJ\\((Ftzz:DJJJ''v'6	r   c                 X    U R                   (       d  SU l         U R                  U l        gg)z,this will cause the monkey to start spinningTN)r`   r   rq   r$   s    r   punchedChimp.punched   s     zzDJ JJDM r   )r^   r`   r   r_   rq   r:   N)r(   r)   r*   r+   rS   r9   rF   re   rd   ru   r,   r#   r   r   rU   rU   U   s     "
7'r   rU   c                     [         R                  " 5         [         R                  R                  S[         R                  5      n [         R                  R                  S5        [         R                  R                  S5        [         R                  " U R                  5       5      nUR                  5       nUR                  S5        [         R                  (       ae  [         R                  R                  SS5      nUR                  SSS	5      nUR                  UR!                  5       S
-  SS9nUR#                  X45        U R#                  US5        [         R                  R%                  5         ['        S5      n['        S5      n[)        5       n[+        5       n[         R,                  R/                  Xx45      n	[         R0                  R3                  5       n
SnU(       Ga  U
R5                  S5        [         R6                  R9                  5        H  nUR:                  [         R<                  :X  a  SnM%  UR:                  [         R>                  :X  a"  UR@                  [         RB                  :X  a  SnMe  UR:                  [         RD                  :X  aJ  URG                  U5      (       a"  URI                  5         URK                  5         M  URI                  5         M  UR:                  [         RL                  :X  d  M  URO                  5         M     U	RQ                  5         U R#                  US5        U	RS                  U 5        [         R                  R%                  5         U(       a  GM  [         RT                  " 5         g)zthis function is called when the program starts.
it initializes everything it needs, then runs in
a loop until the function returns.)i   i  zMonkey FeverF)         N@   zPummel The Chimp, And Win $$$T)rY   rY   rY      rY   )centerxyr   z	whiff.wavz	punch.wav<   )+r   initr\   set_modeSCALEDset_captionrA   set_visibleSurfacer   r   fillfontFontrenderr   	get_widthblitrk   r2   rU   r4   r7   RenderPlaintimeClocktickeventgettypeQUITKEYDOWNkeyK_ESCAPEMOUSEBUTTONDOWNrN   r&   ru   MOUSEBUTTONUPrQ   rF   drawquit)ra   
backgroundr   texttextposwhiff_soundpunch_soundchimpfist
allspritesclockgoingr   s                r   mainr      sJ   
 GGIZZ  bii8FJJ>*HH FOO-.J##%JOOO$ 
wwww||D"%{{:D,O--
(<(<(>(Bb-I& KK
F#JJOO [)K[)KGE6D&&}5JGGMMOE E


2 XX\\^EzzRWW$rzz)eii2;;.Fr111::e$$$$&MMO$$&r/// $ 	 	J'


/ %2 GGIr   __main__)Nr   )rS   r   pygamer   r   printr.   r	   splitabspath__file__main_dirr
   r   r   r2   r7   r8   r4   rU   r   r(   r#   r   r   <module>r      s    
 	ww	
#$	xx	
#$77==23A677<<&)# 299 :.'BII .'b=H zF r   