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><br />

{<br />

Оп<strong>е</strong>ратор<br />

if пров<strong>е</strong>ря<strong>е</strong>т<br />

н а л и ч и <strong>е</strong> ^<br />

в ListBox нажатой<br />

игроком<br />

буквы.<br />

Контроль за нажати<strong>е</strong>м клавиш.<br />

Осталось сд<strong>е</strong>лать так, чтобы правильно нажатая игроком буква удалялась из окна ListBox),<br />

а статистика S t a tu s S t r i p обновлялась.<br />

В<strong>е</strong>рнит<strong>е</strong>сь к конструктору форм и выд<strong>е</strong>лит<strong>е</strong><br />

форму. Щ<strong>е</strong>лкнит<strong>е</strong> на кнопк<strong>е</strong> с изображ<strong>е</strong>ни<strong>е</strong>м<br />

молнии в в<strong>е</strong>рхн<strong>е</strong>й части окна Properties, а зат<strong>е</strong>м<br />

дважды щ<strong>е</strong>лкнит<strong>е</strong> на строчк<strong>е</strong> KeyDown,<br />

чтобы добавить м<strong>е</strong>тод Forml_KeyDown (), вызыва<strong>е</strong>мый<br />

при каждом нажатии клавиши. Вот<br />

код для этого м<strong>е</strong>тода:<br />

Properties<br />

О' !<br />

InputlanguageChdf<br />

Forml System.Wim<br />

KeyPfess<br />

p r i v a t e v o id F orm l_K eyD ow n(ob ject s e n d e r , K eyE ventA rgs e)<br />

П<br />

и<br />

i f<br />

{<br />

KeyUp<br />

Е с л и п о л ь з о в а т <strong>е</strong> л ь п р а в и л ь н о н а ж и м а <strong>е</strong> т клавишу,<br />

и у в <strong>е</strong> л и ч ь т <strong>е</strong> с к о р о с т ь п о я в л <strong>е</strong> н и я букв<br />

( l i s t B o x l . I t e m s . C o n t a in s ( <strong>е</strong> . K eyC ode))<br />

l i s t B o x l . I te m s .R e m o v e (e . K eyC od e);<br />

l i s t B o x l . R e f r e s h ( );<br />

i f ( t i m e r l . I n t e r v a l<br />

t i m e r l . I n t e r v a l<br />

i f ( t i m e r l . I n t e r v a l<br />

t i m e r l . I n t e r v a l<br />

i f ( t i m e r l . I n t e r v a l<br />

t i m e r l . I n t e r v a l<br />

n l.K eyO sm i Ц<br />

Эта кнопка м<strong>е</strong>ня<strong>е</strong>т<br />

вид окна Properties.<br />

Кнопка сл<strong>е</strong>ва от<br />

н<strong>е</strong><strong>е</strong> возвраш,а<strong>е</strong>т<br />

окно к привычноми<br />

виду.<br />

Вы получа<strong>е</strong>т<strong>е</strong><br />

список событий<br />

(events). О том,<br />

что это тако<strong>е</strong>,<br />

мы поговорим<br />

поздн<strong>е</strong><strong>е</strong>.<br />

у д а л и т <strong>е</strong> б у к в у из L is tB o x ,<br />

Ум<strong>е</strong>ньшая числа, вычита<strong>е</strong>мы<strong>е</strong> из<br />

парам<strong>е</strong>тра timeri-.Interval, вы<br />

обл<strong>е</strong>гча<strong>е</strong>т<strong>е</strong> игру, а ув<strong>е</strong>личивая —<br />

усложня<strong>е</strong>т<strong>е</strong> <strong>е</strong><strong>е</strong>.<br />

d i f f i c u lt y P r o g r e s s B a r .V a l u e = 800 - t i m e r l . I n t e r v a l ;<br />

При нажатии<br />

клавиши<br />

м<strong>е</strong>тод Forml.<br />

KeyPown()<br />

вызыва<strong>е</strong>т м <strong>е</strong> ­<br />

тод UpdateQ<br />

объ<strong>е</strong>кта Stats,<br />

обновляющий<br />

ст ат ист и-<br />

ку, а зат<strong>е</strong>м<br />

р<strong>е</strong>зультат<br />

от о-<br />

6J}aжaemcя<br />

StatusStrip.<br />

''<br />

}<br />

e l s e<br />

{<br />

}<br />

/ / П р и п р а в и л ь н о м н а ж а т и и к л а в и ш и о б н о в л я <strong>е</strong> м о б ъ <strong>е</strong> к т S t a t s ,<br />

/ / в ы з ы в а я м <strong>е</strong> т о д U p d a te () с а р г у м <strong>е</strong> н т о м t r u e<br />

s t a t s . U p d a t e ( t r u e ) ;<br />

// П р и н <strong>е</strong> п р а в и л ь н о м н а ж а т и и к л а в и ш и о б н о в л я <strong>е</strong> м о б ъ <strong>е</strong> к т S t a t s ,<br />

// в ы з ы в а я м <strong>е</strong> т о д U p d a te () с а р г у м <strong>е</strong> н т о м f a l s e<br />

s t a t s . U p d a t e ( f a l s e ) ;<br />

/ / О б н о в л <strong>е</strong> н и <strong>е</strong> м <strong>е</strong> т о к э л <strong>е</strong> м <strong>е</strong> н т а S t a t u s S t r i p<br />

c o r r e c t L a b e l .T e x t = " C o rrect: " -i- s t a t s . C o r r e c t ,•<br />

m is s e d L a b e l. T ex t = "M issed: " + s t a t s . M issed ;<br />

t o t a l L a b e l.T e x t = " T o ta l: " + s t a t s . T o t a l ;<br />

a c c u r a c y L a b e l. T ex t = "A ccuracy: " + s t a t s .A c c u r a c y +<br />

Запуск игры.<br />

В окно ListBox должно пом<strong>е</strong>щаться ровно 7 букв, поэтому мож<strong>е</strong>т потр<strong>е</strong>боваться пом<strong>е</strong>нять<br />

разм<strong>е</strong>р шрифта. Для изм<strong>е</strong>н<strong>е</strong>ния уровня сложности отр<strong>е</strong>дактируйт<strong>е</strong> знач<strong>е</strong>ния вычита<strong>е</strong>мы<strong>е</strong> из<br />

парам<strong>е</strong>тра t i m e r l . I n t e r v a l в м<strong>е</strong>тод<strong>е</strong> F o rm l_ K ey D o w n ( ) .<br />

190<br />

глава 4<br />

★ -

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

Saved successfully!

Ooh no, something went wrong!