package Ġcom . tz t . customize kt . di y . widget Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Matrix Ċ import Ġkotlin . math . sin Ċ import Ġkotlin . random . Random Ċ Ċ /** Ċ Ġ* Ċ Ġ*@ author Ġabc Ċ Ġ*@ time Ġ 2 0 2 0 / 4 / 1 0 Ġ 1 7 : 2 7 Ċ Ġ*/ Ċ data Ġclass ĠSnow ( ĊĠĠĠ Ġvar Ġx : ĠFloat , Ġvar Ġy : ĠFloat , Ġval Ġradius : ĠFloat , Ġval Ġspeed : ĠInt , ĊĠĠĠ Ġval Ġscale : ĠFloat , Ġvar Ġangle : ĠDouble , Ġval Ġwind Speed : ĠInt Ċ ) Ġ{ ĊĊĠĠĠ Ġvar Ġbitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġget Bitmap ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmove ( total : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġy Ġ+= Ġspeed ĊĠĠĠĠĠĠĠ Ġx Ġ+= Ġ( wind Speed Ġ* Ġsin ( angle )). toFloat () ĊĠĠĠĠĠĠĠ Ġangle Ġ+= Ġ( if Ġ( Random . next Boolean ()) Ġ- 1 Ġelse Ġ 1 ) Ġ* ĠMath . random () Ġ* Ġ 0 . 0 0 2 5 ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ> Ġtotal ) Ġy Ġ= Ġ 0 f ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Bitmap ( bitmap : ĠBitmap ?): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġbitmap . width ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġbitmap . height ĊĊĠĠĠĠĠĠĠ Ġval Ġnew W Ġ= Ġwidth Ġ* Ġscale ĊĠĠĠĠĠĠĠ Ġval Ġnew H Ġ= Ġheight Ġ* Ġscale ĊĊĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠ Ġmatrix . post Scale ( scale , Ġscale ) ĊĠĠĠĠĠĠĠ Ġmatrix . post Rotate ( Random . nextInt ( 9 0 ). toFloat ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠBitmap . create Bitmap ( bitmap , Ġ 0 , Ġ 0 , Ġwidth , Ġheight , Ġmatrix , Ġtrue ) ĊĠĠĠ Ġ} Ċ Ċ }