
    i                        d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlZ	ej                  j                  ej                  j                  e            d   Zej                  j                  ed      ZdZdej$                  v rdZd	ej$                  v rd
Zd
Zdej$                  v rdZd
Zdej$                  v rdZdZdZdej$                  v ree	j,                  z  Zdej$                  v ree	j.                  z  Zdej$                  v ree	j0                  z  ZdZdej$                  v ree	j4                  z  Zd
Zdej$                  v ree	j6                  z  ZddgZdej$                  v r6ej$                  j;                  d      Z eej$                  edz            ed<   dej$                  v r6ej$                  j;                  d      Z eej$                  edz            ed<   dej$                  v Z  e!e        G d de	jD                  jF                        Z$ G d de	jD                  jF                        Z%	 	 	 	 	 	 ddZ&e'dk(  r e&eeeee e       yy)z pg.examples.testsprite

Like the testsprite.c that comes with libsdl, this pygame version shows
lots of sprites moving around.

It is an abomination of ugly code, and mostly used for testing.


See pg.examples.aliens for some prettyier code.
    N)randint)time)ListdataTz-update_rectsz-noupdate_rectsFz-staticz-layered_dirtyz-flipz-fullscreenz-swz-hwz-scaled    z-height   z-widthz-alphac                   B    e Zd ZU g Zeej                     ed<   d Zd Z	y)Thingyimagesc                    t         j                  j                  j                  |        t        j
                  d   | _        | j                  j                         | _        t        dt        d         | j                  _        t        dt        d         | j                  _        t        dd      t        dd      g| _        d| _        y )Nr   r	      )pgspriteDirtySprite__init__r   r   imageget_rectrectr   screen_dimsxyveldirtyselfs    d/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pygame/examples/testsprite.pyr   zThingy.__init__e   s    
		&&t,]]1%
JJ'')	aQ0		aQ0		BNGBN3
    c                    dD ]}  }| j                   |   | j                  |   z   }|t        |   k\  s|dk  r<| j                  |    | j                  |<   | j                   |   | j                  |   z   }|| j                   |<    y )N)r   r	   r   )r   r   r   )r   argskwargsinvs        r   updatezThingy.updatep   s{     	A1+B[^#rAv#xx{lYYq\DHHQK/DIIaL	r   N)
__name__
__module____qualname__r   r   r   Surface__annotations__r   r%    r   r   r   r   b   s    !FD!	r   r   c                   <    e Zd ZU g Zeej                     ed<   d Zy)Staticr   c                 d   t         j                  j                  j                  |        t        j
                  d   | _        | j                  j                         | _        t        ddt        d   z  dz        | j                  _        t        ddt        d   z  dz        | j                  _        y )Nr         r	   )r   r   r   r   r-   r   r   r   r   r   r   r   r   r   s    r   r   zStatic.__init__|   s~    
		&&t,]]1%
JJ'')	a[^!3q!89		a[^!3q!89		r   N)	r&   r'   r(   r   r   r   r)   r*   r   r+   r   r   r-   r-   y   s    !FD!:r   r-   c                 J
   |rd} t        j                          t         j                  j                          t         j                  j                  ||dt        j
                  v       }t         j                  j                          t         j                  j                         }|dkD  r/t         j                  j                  d      }|j                          |j                  g d       t         j                  j                          t         j                  j                  t        j                  j                  t         d            }	t         j                  j                  t        j                  j                  t         d            }
t"        rg|	j%                  g dt         j&                  t         j(                  z         |
j%                  g dt         j&                  t         j(                  z         nD|	j%                  g dt         j&                         |
j%                  g dt         j&                         |r!|	j+                         }	|
j+                         }
n |	j-                         }	|
j-                         }
|	gt.        _        |r|
gt2        _        t5        t        j
                        d	kD  r	 t7        t        j
                  d
         }nd}d}|rt         j:                  j=                         }n?| rt         j:                  j?                         }nt         j:                  jA                         }tC        d|      D ]>  }|r!|dz  dk(  r|jE                  t3                      |jE                  t/                      @ d}tG               }t        jH                  |jK                               }|j-                         }|j                  g d       d}|r| s|j                  g d       | r|jM                  ||       |jO                          |jQ                  |      }| r t         j                  jO                  |       nt         j                  j                          t         jR                  jU                         D ]O  }|jV                  t         jX                  t         jZ                  t         jX                  t         j\                  fv sNd}Q |d	z  }|rtG               }t_        d|||z
  z  d       t        j`                          y# t8        $ r d}Y Kw xY w)a  Show lots of sprites moving around

    Optional keyword arguments:
    update_rects - use the RenderUpdate sprite group class (default True)
    use_static - include non-moving images (default False)
    use_layered_dirty - Use the FastRenderGroup sprite group (default False)
    screen_dims - Pygame window dimensions (default [640, 480])
    use_alpha - use alpha blending (default False)
    flags - additional display mode flags (default no additional flags)

    Tz-vsync)vsyncr   )r   r   r   zasprite.bmpz
static.png)   r3   r3   r	   r   d   Nr   FzFPS: f)1r   initdisplayset_modesysargvjoystick	get_countJoystickfillflipr   loadospathjoindata_diruse_rleset_colorkeySRCCOLORKEYRLEACCELconvert_alphaconvertr   r   r-   lenint	Exceptionr   LayeredDirtyRenderUpdatesGrouprangeaddr   r)   get_sizeclearr%   draweventgettypeQUITKEYDOWNJOYBUTTONDOWNprintquit)update_rects
use_staticuse_layered_dirtyr   	use_alphaflagsscreennum_joystickssticksprite_surfacesprite_surface2
numspritesspritesr#   framesstart
backgroundgoingrectsrV   ends                        r   mainrp      s   ( GGIJJOO ZZ  e8sxx;O PF KKKK))+Mq$$Q'


KK	JJOOXX]]277<<-#HINhhmmBGGLL<$HIO##$68TU$$%7"++9UV##$6G$$%7H'557)779'//1)113#$FM()
388}q	SXXb\*J 
G))((*ii--/Giioo'G1j! !a%1*KK!FH
 FFEFOO-.J##%JOOIE
KK	"
 MM&*-V$JJe$JJOOXX\\^ 	Ezzbggrzz277B<L<LMM	 	!+ , &C	E&C%K(+
,-GGIg  	J	s   7T T"!T"__main__)TFF)r   r   Fr   )(__doc__r9   rA   randomr   r   typingr   pygamer   rB   splitabspath__file__main_dirrC   rD   r^   r:   r_   r`   rb   	DOUBLEBUF
FULLSCREEN	SWSURFACErE   	HWSURFACESCALEDr   indexr#   rL   ra   r\   r   r   r   r-   rp   r&   r+   r   r   <module>r      s?  	  	    77==23A677<<&)
 chhL L
J  sxxL 	

chh	R\\ECHH	R]]ECHH	R\\E
CHH	R\\EG	RYYECjy!A!a%)KNsxxx A!a%)KN 	 k .RYY"" .:RYY"" : 
rj zz#4k9eT r   