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