o
    tVÆg®  ã                   @   sž   d Z ddlZddlZddlZej ej e¡¡d Z	ej 
e	d¡Zz
ddlZddlZW n ey8   edƒ Y nw dd„ Zdd„ Zed	krMeƒ  eƒ  dS dS )
aµ   pygame.examples.blit_blends

Blending colors in different ways with different blend modes.

It also shows some tricks with the surfarray.
Including how to do additive blending.


Keyboard Controls
-----------------

* R, G, B - add a bit of Red, Green, or Blue.
* A - Add blend mode
* S - Subtractive blend mode
* M - Multiply blend mode
* = key BLEND_MAX blend mode.
* - key BLEND_MIN blend mode.
* 1, 2, 3, 4 - use different images.

é    NÚdataz$no surfarray for you!  install numpyc               
   C   sÖ  t  ¡  t j ¡  t j d¡} t  |  ¡ ¡}| d¡ t  |  ¡ ¡}| d¡ |}| 	d¡ i }||t j
< t j tj td¡¡|t j< t j tj td¡¡|t j< t j tj td¡¡|t j< | ¡ }| ¡ }i }t j|t j< t j|t j< t j|t j< t j|t j< t j|t j< i }d|t j< d	|t j< d
|t j< d|t j< d|t j< |   |d¡ t j !¡  t j" #¡ }	t$d| %d¡g ƒ d}
|
rå|	 &d¡ t j' (¡ D ]}|j)t j*krÖd}
|j)t j+krßt,ƒ  |j)t j+krî|j-t j.krîd}
qË|j)t j+kr|j-| /¡ v r||j- }| ¡ }qË|j)t j+kr>|j-| /¡ v r>t" "¡ }|  |dd ||j- ¡ t" "¡ }t$d| %d¡g ƒ t$d|| › dƒ qË|j)t j+kr|j-t j0fv r| /¡ D ].}t" "¡ }t1dƒD ]}|  |dd || ¡ q[t" "¡ }|| }t$d|› d|| › dƒ qQqË|j)t j+kr³|j-t j2fv r³t" "¡ }|  |d¡ t" "¡ }t$d| %d¡g ƒ t$d|| › dƒ qË|j)t j+krð|j-t j3krðt" "¡ }t4j5 6|¡}t4j5 6|¡}||7 }~~t" "¡ }t$d| %d¡g ƒ t$d|| › dƒ qË|j)t j+krG|j-t j7fv rGt" "¡ }t4j5 8|¡}t4j5 8|¡}| 9t:j;¡}| 9t:j;¡}||7 }t: <|d¡}t4j5 =||¡ ~~t" "¡ }t$d| %d¡g ƒ t$d|| › dƒ qË|j)t j+kr„|j-t j>t j?t j@fv r„i }d|t j>< d|t j?< d|t j@< t4j5 6|¡}|||j- 7 }~t$d| %d¡g ƒ qË|j)t j+kr|j-t jAkrt$d| %d¡g ƒ qË|j)t j+kr×|j-t jBkr×t" "¡ }| 	d¡ |  |d¡ | 	d¡ t" "¡ }t$d| %d¡g ƒ t$d|| › dƒ qË|   |d¡ t j !¡  |
sÁt  ¡  d S )N)i€  ià  )éd   r   r   )r   é2   r   é   z	chimp.pngz
alien3.gifz
liquid.bmpÚ	BLEND_ADDÚ	BLEND_SUBÚ
BLEND_MULTÚ	BLEND_MAXÚ	BLEND_MIN)r   r   zone pixel is:%s:Té<   Fztime to do:ú:i,  ztime to do :z: is :éÿ   i   é   é   )CÚpgÚinitÚmixerÚquitÚdisplayÚset_modeÚSurfaceÚget_sizeÚfillÚ	set_alphaÚK_1ÚimageÚloadÚosÚpathÚjoinÚdata_dirÚK_2ÚK_3ÚK_4ÚconvertÚconvert_alphar   ÚK_ar   ÚK_sr   ÚK_mr	   ÚK_EQUALSr
   ÚK_MINUSÚblitÚflipÚtimeÚClockÚprintÚget_atÚtickÚeventÚgetÚtypeÚQUITÚKEYDOWNÚusageÚkeyÚK_ESCAPEÚkeysÚK_tÚrangeÚK_oÚK_SPACEÚpygameÚ	surfarrayÚpixels2dÚK_zÚpixels3dÚastypeÚnumpyÚuint16ÚminimumÚ
blit_arrayÚK_rÚK_gÚK_bÚK_pÚK_f)ÚscreenÚim1Úim2Úim3ÚimagesÚimg_to_blitÚiaaÚblitsÚblitsnÚclockÚgoingr2   Út1Út2ÚbkeyÚxÚonedoingÚim1pÚim2pÚim1p16Úim2p16Úcolmap© rc   úO/home/ubuntu/.local/lib/python3.10/site-packages/pygame/examples/blit_blends.pyÚmain$   sä   














ö&




€
˜jre   c                   C   s   t dƒ t dƒ t dƒ d S )Nz'press keys 1-5 to change image to blit.z&A - ADD, S- SUB, M- MULT, - MIN, + MAXz(T - timing test for special blend modes.)r/   rc   rc   rc   rd   r7   ½   s   r7   Ú__main__)Ú__doc__r   r?   r   r-   r   ÚsplitÚabspathÚ__file__Úmain_dirr   r    Úpygame.surfarrayrE   ÚImportErrorr/   re   r7   Ú__name__rc   rc   rc   rd   Ú<module>   s&   ÿ 
þ