14.02.2017 Views

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

р а с п р <strong>е</strong> д <strong>е</strong> л <strong>е</strong> н и <strong>е</strong> п о в р <strong>е</strong> м <strong>е</strong> н и<br />

Тайм<strong>е</strong>р ддя симулятора<br />

Д обавим тай м <strong>е</strong>р в наш симулятор. У вас уж<strong>е</strong> <strong>е</strong>сть соотв<strong>е</strong>тствую щ ий<br />

эл<strong>е</strong>м <strong>е</strong>нт управл<strong>е</strong>ния, в<strong>е</strong>роятн о, с им <strong>е</strong>н<strong>е</strong>м t i m e r l . Вручную свяж<strong>е</strong>м<br />

<strong>е</strong>го с м<strong>е</strong>тодом обработчи ка собы тий R unFram e ():<br />

О бь<strong>е</strong>кт Tim eSpan облада<strong>е</strong>т т акими свойствами<br />

как Daus (Д ни), Hours (Часы ), Seconds<br />

(С<strong>е</strong>кунды) и Milliseconds (Миллис<strong>е</strong>кунды), что<br />

позволя<strong>е</strong>т изм<strong>е</strong>рят ь вр<strong>е</strong>м<strong>е</strong>нны<strong>е</strong> п р о м <strong>е</strong> ж у т к и ^<br />

в различных <strong>е</strong>диницах.<br />

8 .N E T класс D ateTim e х р а ­<br />

нит информацию о вр<strong>е</strong>м<strong>е</strong>ни,<br />

а свойство Now возвраищ<strong>е</strong>т<br />

т&куищю дату и вр<strong>е</strong>мя.<br />

Вычислить р а з н и ц у двух дат<br />

позволя<strong>е</strong>т обь<strong>е</strong>кт Tim eSpan:<br />

он вычит а<strong>е</strong>т один обь<strong>е</strong>кт<br />

D ateTim e из другого и возвраща<strong>е</strong>т<br />

одь<strong>е</strong>кт Tim eS pan,<br />

сод<strong>е</strong>ржащий разницу.<br />

p u b l i c p a r t i a l c l a s s F o rm l : Form { „ \/Jnr!d.<br />

world world; ________ у 5»«»<br />

p r i v a t e Random ran d o m = new R andom { );<br />

p r i v a t e D a te T im e s t a r t = D a te T im e ,N o w ;<br />

p r i v a t e D a te T im e e n d ;<br />

___________________ _______—— _<br />

p r i v a t e i n t fra m esR u n 0 ;<br />

■Мы хот им<br />

сколько кадров<br />

p u b l i c F o r m l0 {<br />

уж<strong>е</strong> показано.<br />

I n i t i a l i z e C o m p o n e n t ()<br />

w o r ld = new W o r ld { );<br />

Зд<strong>е</strong>сь буд<strong>е</strong>т<br />

вычисляться<br />

вр<strong>е</strong>мя работы<br />

Запуск<br />

t i m e r l . I n t e r v a l = 5 0 ;<br />

M w связали обработчик<br />

t i m e r l . T i c k += n ew E v e n tH a n d le r (R u n F r a m e ); с собств<strong>е</strong>нным<br />

t i m e r l .E n a b l e d = f a l s e ; .ллпйм<strong>е</strong>ра. м<strong>е</strong>тодом RunFram e(). „<br />

Запуск mauMt-fy и в одной с<strong>е</strong>кунд<strong>е</strong><br />

U p d a t e S t a t s ( n e w T im e S p a n О ) ;<br />

Ю о о миллис<strong>е</strong>кунд,<br />

} обновля<strong>е</strong>м ст а т и ст и ки так что тайм<strong>е</strong>р<br />

^ с новым обь<strong>е</strong>кт ом T im eSpan ( ^ й<br />

о т сч<strong>е</strong>т вр<strong>е</strong>м<strong>е</strong>ни). ^ {мооыи буд<strong>е</strong>т срабатыбать<br />

2.0 раз в с<strong>е</strong>кунду.<br />

p r i v a t e v o i d U p d a te S ta ts ( T im e S p a n f r a m e D u r a tio n ) {<br />

// Пр<strong>е</strong>дыдущий код для обновл<strong>е</strong>ния статистики<br />

}<br />

p u b l i c v o i d R u n F r a m e (o b je c t s e n d e r , E v e n tA r g s e ) {<br />

}<br />

fra m esR u n + + ;<br />

у в<strong>е</strong>ли ч ьт <strong>е</strong> колич<strong>е</strong>ст во кадров<br />

w o r ld . Go (ran dom ) ; ^ ----------- на I за п уст и т <strong>е</strong> м <strong>е</strong>т од ио{)<br />

en d = D a te T im e .N o w ;<br />

обь<strong>е</strong>кт а world.<br />

T im eS p an f r a m e D u r a tio n = e n d - s t a r t } З а т <strong>е</strong> м м ы узна<strong>е</strong>м ,<br />

s t a r t = e n d ; --------<br />

— ~ сколько вр<strong>е</strong>м <strong>е</strong>ни проилло<br />

U p d a t e S t a t s ( f r a m e D u r a t i o n ) ;<br />

с м о м <strong>е</strong>н т а проигры вания<br />

посл<strong>е</strong>дн<strong>е</strong>го кадра.<br />

О бновит <strong>е</strong> ст а т и с т и к у с новой<br />

продолж ит <strong>е</strong>льност ью вр<strong>е</strong>м<strong>е</strong>ни.<br />

558 гл а в а 12

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

Saved successfully!

Ooh no, something went wrong!