. Стиллмен, Дж. Грин - Изучаем 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