14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

эл<strong>е</strong>м<strong>е</strong>нты управл<strong>е</strong>ни<strong>е</strong> и графич<strong>е</strong>ски<strong>е</strong> фрагм<strong>е</strong>нты<br />

В в <strong>е</strong> р х н <strong>е</strong> й ч а ст и к ласса R e n d e r e r д о л ж н ы<br />

н а х о д и т с я стр о к и u s i n g S y s te m .D r a w in g<br />

и u s i n g S y ste m .W in d o w s.F o r m s.<br />

p r i v a t e B e e C o n t r o l GetBeeControl(B ee b e e )<br />

B e e C o n t r o l b e e C o n t r o l ;<br />

i f ( I b e e L o o k u p . C o n t a i n s K e y ( b e e ) ) {<br />

{<br />

М<strong>е</strong>тод GetBeeControiQ ищ<strong>е</strong>т пч<strong>е</strong>лу<br />

в словар<strong>е</strong> beeLookup. При от сут ­<br />

ствии нужной пч<strong>е</strong>лы он созда<strong>е</strong>т эл<strong>е</strong>м<strong>е</strong>нт<br />

управл<strong>е</strong>ния BeeControl разм<strong>е</strong>ром<br />

4 0 X 4 0 и добавля<strong>е</strong>т <strong>е</strong>го к форм<strong>е</strong> hive<br />

(в<strong>е</strong>дь им<strong>е</strong>нно зд<strong>е</strong>сь появляются новы<strong>е</strong><br />

пч<strong>е</strong>лы).<br />

/ " ■ '“ d e c o n t r o l = n e w B e e C o n t r o l 0 { W id t h = 4 0 , H e i g h t = 4 0 } ;<br />

He забудьт<strong>е</strong>: b e e L o o k u p . A d d (b e e , b e e C o n t r o l ) ;<br />

! означа<strong>е</strong>т НЕТ!<br />

}<br />

h i v e F o r m . C o n t r o l s . A d d ( b e e C o n t r o l ) ;<br />

b e e C o n t r o l . B r i n g T o F r o n t ( ) ;<br />

}<br />

e l s e<br />

b e e C o n t r o l = b e e L o o k u p [ b e e ] ;<br />

r e t u r n b e e C o n t r o l ;<br />

p r i v a t e v o i d MoveBeeFromHiveToField( B e e C o n t r o l b e e C o n t r o l )<br />

Г<br />

h i v e F o r m . C o n t r o l s . R e m o v e ( b e e C o n t r o l ) ;<br />

b e e C o n t r o l . S iz e = n e w S i z e (2 0 , 20<br />

f i e l d F o r m . C o n t r o l s . A d d ( b e e C o n t r o l ) ;<br />

b e e C o n t r o l . B r i n g T o F r o n t ( ) ;<br />

'<br />

М <strong>е</strong>тод MoveBeeFromHiveToFieldQ<br />

б<strong>е</strong>р<strong>е</strong>т указанный эл<strong>е</strong>м <strong>е</strong>нт BeeControl<br />

из колл<strong>е</strong>кции Controls улья и добавля<strong>е</strong>т<br />

<strong>е</strong>го в колл<strong>е</strong>кцию Controls поля.<br />

Пч<strong>е</strong>лм на пол<strong>е</strong> им<strong>е</strong>ют м<strong>е</strong>ньший разм<strong>е</strong>р,<br />

ч<strong>е</strong>м пч<strong>е</strong>лы в уль<strong>е</strong>, соотв<strong>е</strong>тств<strong>е</strong>нно,<br />

м<strong>е</strong>тод долж<strong>е</strong>н м<strong>е</strong>нять свойство Size<br />

эл<strong>е</strong>м<strong>е</strong>нта BeeControl.<br />

p r i v a t e v o i d MoveBeeFromFieldToHive( B e e C o n t r o l b e e C o n t r o l ) {<br />

}<br />

f i e l d F o r m . C o n t r o l s . R e m o v e ( b e e C o n t r o l ) ;<br />

b e e C o n t r o l . S i z e = n e w S i z e ( 4 0 , 4 0 ) ;<br />

h i v e F o r m . C o n t r o l s . A d d ( b e e C o n t r o l ) ;<br />

b e e C o n t r o l . B r i n g T o F r o n t ( ) ;<br />

p r i v a t e v o i d RemoveRetiredBeesAndDeadFlowers()<br />

]<br />

f o r e a c h (B e e b e e i n r e t i r e d B e e s )<br />

b e e L o o k u p . R e m o v e ( b e e ) ;<br />

r e t i r e d B e e s . C l e a r ( ) ;<br />

f o r e a c h ( F lo w e r f l o w e r i n d e a d F lo w e r s )<br />

f l o w e r L o o k u p . R e m o v e ( f l o w e r ) ;<br />

d e a d F lo w e r s . C l e a r ( ) ;<br />

М<strong>е</strong>тод MoveBeeFromFieldToHiveO<br />

возвраща<strong>е</strong>т эл<strong>е</strong>м<strong>е</strong>нт управл<strong>е</strong>ния<br />

BeeControl обратно в ул<strong>е</strong>й. Соотв<strong>е</strong>тств<strong>е</strong>нно,<br />

он долж<strong>е</strong>н ув<strong>е</strong>личить<br />

<strong>е</strong>го разм<strong>е</strong>р.<br />

К ак только м<strong>е</strong>тоды VrawBees()<br />

и PrawFlowersO обнаруживают,<br />

что цв<strong>е</strong>тка или пч<strong>е</strong>лы больш<strong>е</strong><br />

н<strong>е</strong>т, они добавляют эти объ<strong>е</strong>кты<br />

в списки deadFlowers и retiredBees,<br />

чтобы в конц<strong>е</strong> кадра произошло их<br />

удал<strong>е</strong>ни<strong>е</strong>.<br />

Напосл<strong>е</strong>док визуализатор вызыва<strong>е</strong>т м <strong>е</strong>­<br />

тод для удал<strong>е</strong>ния из словар<strong>е</strong>й вс<strong>е</strong>х увядших<br />

цв<strong>е</strong>тов и пр<strong>е</strong>кративших работу пч<strong>е</strong>л.<br />

дальш<strong>е</strong> > 595

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!