Электронная библиотека » Сергей Евдокимов » » онлайн чтение - страница 3


  • Текст добавлен: 26 апреля 2023, 17:23


Автор книги: Сергей Евдокимов


Жанр: Компьютеры: прочее, Компьютеры


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 3 (всего у книги 6 страниц)

Шрифт:
- 100% +
2.7 Особенности создания 2D-приложений на С#

С# («Си Шарп») – это многофункциональный язык программирования, на котором пишутся разные программные продукты, начиная от небольших десктопных утилит до крупных WEB-порталов, WEB-сервисов, которые обслуживают каждый день больше миллиона пользователей. Для создания своей первой игры на языке С# не обязательно досконально знать этот язык. Так как для создания программного продукта необходимо владеть только набором несложных приемов, знать основные принципы по созданию игр, и так быстро достичь результата, создавая на С# свою 2D-игру. По написанию 2D нужно знать принципы объектно-ориентированного программирования, навыки написания игровых скриптов на C# станет базой и дадут возможность реализовать несложные проекты, игры и приложения собственной разработки.

Созданию игр с нуля на языке C# открывает для начинающих программистов новые горизонты, так как на одном этом языке можно создать любое приложение (для Windows, мобильное, веб, приложения для Android и iOS) и для любой платформы.

Cоздание игры в двумерной графике на C# (С Sharp) на базе современныой среды разработки – это фундамент, позволяющий понять логику мощных, гибких и популярных языков программирования и перейти на более сложные уровни. Освоить азы игровой разработки и создания игровых сценариев на этом современном, простом и удобном в использовании, можно любому человеку, имеющему базовые навыки пользователя ПК.

2D-игры используют плоскую графику, которая не имеет трехмерной геометрии. Спрайты в 2D-приложениях отображаются на экране в виде плоских изображений, а ортогональная проекция перспективы не имеет. 2D или двумерная графика взаимодействует с изображением, которое сформировано в двух измерениях – по высоте и по ширине. Изображение является объектом 3D, которое сформированное в трех измерениях: по высоте, по ширине, и по глубине. В 3D оценивается размер до объекта и расстояние. 2D-игры дают возможность сосредоточитьть на истории, деталях художества, и геймплее, не тратя много усилий на работу с моделями и трехмерной физикой.

Много игр были сделаны разработчиками за небольшое время, при этом они получают большую популярность за счет своей атмосферы и индивидуальных деталей. Если сделать программирование своей основной профессией, или просто попробовать себя в этом направлении, стоит остановиться на 2D, так как этот подход потребует меньше сил и ресурсов для реализации.

Еще немного о преимуществах С# в 2D: Асинхронное программирование, анонимные типы, лямбда выражения, функциональное программирование и ЦМО позволяют создавать легко поддерживаемый код, превращая в щедрое на ошибки программирование в простое и приятное занятие. С# сочетает простоту и выразительность современных объектно– ориентированных языков с богатством возможностей. Например, автоматическое управление памятью, тогда программисту не обязательно вручную управлять памятью, так как он имеет возможность сосредоточится на реальных задачах. С#-разработчики не ждут разрушений программы после её запуска, чтобы найти очевидные ошибки, так как это всё делает компилятор за них.

2.8 Использование C Sharp в прикладном программировании и в Backend разработке

Прикладное ПО включает в себя компьютерные программы, что создаются для пользователей для задания компьютеру по конкретной работы. Например, программы прикладного программного обеспечения: по обработке заказов, графические редакторы, WEB-браузеры или разработка списков рассылки и т. д. Прикладные программы в большинству ОС не могут связываться с ресурсами компьютера напрямую, поэтому взаимодействуют с оборудованием и другими программными средствами операционной системы.

Прикладное ПО используется по управлению: данными, базами данных, сетью и безопасностью. Также есть как образовательное, так и имитационное ПО (первое способствует изучению материала и имеет четкие требования по тестированию знаний пользователя, второе – в целях научных исследований, обучения или развлечения по симуляции физических или абстрактных системах. Прикладную программу используют самостоятельно, но для её написания потребуются C#.

Для бэкенда самыми популярным языками до сих пор является C#. Для простых проектов и задач выбор языка практически не имеет значения. Времена сложных конфигураций с веб-серверами и XML давно прошли, а с текущими MVC-фреймворками написать простое приложение можно на любом языке. Что на Node. js, что на Spring Boot развернуть веб приложение можно всего за несколько минут. Что касается сложных и объёмных проектов с долгосрочной поддержкой, лучше отдавать предпочтение статически типизированным и компилируемым языкам, таким как C#, Go и Java. В больших проектах скорость написания кода не очень важна, зато более приоритетной является скорость анализа при чтении кода и возможности не деструктивного рефакторинга, особенно если вы имеете дело со сложной бизнес-логикой. И наконец, фреймворки ASP.NET для C# и Spring для Java, благодаря большому набору компонентов в DI-экосистеме, предоставляют все возможности для удобного проектирования и точной конфигурации веб-приложения. Многие технологии, фреймворки и среды разработки требуют лицензии, но есть и много бесплатных вариантов. На практике, скорее всего, у вас будет выбор между платными инструментами, но с большей функциональностью и поддержкой, или бесплатные, но с ограниченным набором функций. В моей практике чаще всего всё зависело от языка программирования, которым владеет команда. Если команда пишет на C#, то и весь стек связан с платформой. NET и т. д.

При выборе фреймворка или языка программирования необходимо всегда обращать внимание в первую очередь на его популярность и наличие экспертов в команде (или на рынке). Это позволит в будущем избежать проблем с поиском кадров. Можно выбрать в качестве языка, например, Scala или Clojure, которые, безусловно, имеют свои сильные стороны относительно консервативной Java, но потом столкнуться с серьёзной проблемой поиска специалистов, когда необходимо будет усилить команду или заменить сотрудников, которые решили покинуть проект.

РАЗДЕЛ 3. ПРОЕКТНАЯ ЧАСТЬ

Непрерывное внимание к качественному проектированию повышает отдачу от гибких технологий.

3.1 Опись входящей и выходящей информации

Входящее данные программы даны в Табл. 3.1


Таблица 3.1.1 — Входящие данные


Исходящее данные приведены в Табл. 3.2


Таблица 3.1.2 — Исходящее данные

3.2 Описание алгоритма решения задачи

Алгоритм программы был разработан в виде блок-схемы и диаграммы классов, приведенных в Рис. 3.2.1 и 3.2.2 [cтр. 65—66].


Рисунок 3.2.1 — Блок-схема алгоритма игры


Рисунок 3.2.2 — Диаграмма классов

3.3 Программа решения задания и её опись

Программа состоит из 5 модулей, имя и назначение которых приведены в Табл. 3.3.1


Таблица 3.3.1 — Модули программы


Разработка программной среды Microsoft Visual Studio позволяет разработать привлекательный и удобный интерфейс для игры. На окне главного меню (Рис. 3.3.2) расположены элементы «Button» и один элемент «Checkbox», кнопки позволяют пользователю начать игру, просмотреть справку для пользователя, выйти из игры, а переключатель – изменить состояние звука, то есть выключить или включить его.


Рисунок 3.3.2 — Главное меню программы


Кнопка

Окно «Справка» (Рис. 3.3.3) содержит информацию о разработчике ПО и кратких правилах игры.


Рисунок 3.3.3 — Справка пользователя

3.4 Инструкция с эксплуатации системы

Запуск программы выполняется по двойному щелчку на ярлыке или на файле с расширением «PingPongAplication. ехе» (Рис.3.4.1)


Рисунок 3.4.1 — Файл PingPongAplication. ехе


После запуска программы на экране отображается главное меню игры «Пинг-Понг» (Рис.3.3.2). При щелчке по кнопке «Новая игра» будет запущена игра – откроется игровое поле с ракеткой (доской) и мячиком (Рис.3.4.2).


Рисунок 3.4.2 — Окно «Игровое поле»


Запуск игры начинается тогда, когда пользователь нажал кнопку «Новая игра». Перемещение ракетки производится с помощью клавиш для стрелок вверх и вниз для игрока. В любой момент игрок может перезапустить игру или выйти из нее. При окончании игры пользователь увидит окно, в котором он выберет дальнейшие действия (Рис. 3.4.3). Игрок может включить звук, выйдя из игры в меню нажать переключатель, затем вернуться к игре, но игра начнется заново.


Рисунок 3.4.3 — Окно по окончании игры

3.5 Декомпозиция модели проекта ПЗ

DFD-диаграмма (c англ. Data Flow Diagram) представляется как «диаграмма потоков данных», или один из главных инструментов анализа структурирования, спроектированная на информационных системах.

DFD-диаграмма помогает более лучше понять, из чего состоит программный продукт.

В диаграмме имеются следующие структурные элементы:

– Функциональные блоки, описывающее действия, их последовательность. К примеру, функции обработки физики игровых объектов.

– Внешние сущности. Объекты, которые не входят в ПО, но являются источником или получателем данных. К примеру, как человек.

– Хранилище данных. Этом блоке находятся данные, которые необходимо обрабатывать: промежуточные и конечные результаты. К примеру, за игровую сессию достижения пользователя.

– Поток данных. На диаграмме изображается в виде стрелок, которые показывают данные, выходящее одного блока и входящее в другой.

Такое разбиение по блокам описывает процессы по любой сложности. Например, в DFD-диаграммах функциональный блок подразделяют на сколько угодно таких же блоков. На следующей странице приведено как пример DFD-диаграммы, используемой при разработке компьютерной игры «Настольный теннис». Ниже (на Рис. 3.5.1) представлена контекстная диаграмма, на основе которой будет выполняться последующая декомпозиция. На ней изображены следующие элементы: внешняя сущность (игрок), хранилище данных (файл с рекордами), процесс (игра «PingPong») и потоки данных (линии, оканчивающиеся стрелкой). Из контекстной диаграммы видно, что игрок обменивается информацией с функциональным блоком игровой логики, который в свою очередь сохраняет информацию о текущих рекордах в файл или загружает информацию об имеющихся из файла.


Рисунок 3.5.1 — Контекстная диаграмма проекту PingPong


Рисунок 3.5.2 — Структурная декомпозиция проекту PingPong


Рисунок 3.5.3 — Обработка игрового поля проекта PingPong

3.6 Детализация потоков даних другого и третьего уровня

При полученных на первом этапе контекстных диаграммах отображается укрупненная модель бизнес-процессов исследуемой предметной области. Потоки данных, входящие в процесс и исходящие из процесса контекстной диаграммы, переносятся на диаграмму второго уровня. При этом входные потоки служат источником информации для процессов детализированной диаграммы, а выходные – результатом выполнения процессов.

В результате детализации получается диаграмма первого уровня, полученная модель не в полной мере подробно описывает рассмотренные бизнес-процессы, необходимо проводить дальнейшую детализацию путем построения диаграмм второго уровня. Поэтому получен набор диаграмм второго уровня, описывающих процессы первого уровня более подробно.

Так как приведенная на Рис. 3.6.1 диаграмма потоков данных является укрупненной, а на Рис. 3.6.2 приведена диаграмма DFD, детализирующая структуру и возможность использования приложения «PingPong_esa» в двух режимах: как клиент, и как разработчик (режим кондуктора).


Рисунок 3.6.1 — Детализация потоков 1-го уровня


Рисунок 3.6.2 – Детализация потоков 2-го уровня

3.7 Розработка логической модели БД

Построенная диаграмма классов (Рис. 3.7.1) разбита на 3 пакета:

«Внешняя модель» – содержит внешние по отношению к подсистеме классы;

«Объектная модель» – содержит объектную модель, прилагаемую разрабатываемым плагином «Построение алгоритма»;

Логика – содержит основные управляющие классы, реализующие бизнес-логику построения маршрутов.

Диаграмма классов для реализации приведена на Рис. 3. 8.1


Рисунок 3.7.1 — Логическая модель

«Диаграмма классов»

3.8 Рабочий проект

Microsoft Visual Studio 2019 – универсальный набор утилит, предоставляющих встроенную среду для разработки приложений.


Windows Forms – интерфейс программирования приложений, отвечающий за графический пользовательский интерфейс и являющийся частью Microsoft. NET Framework. Данный интерфейс упрощает доступ к элементам интерфейса Microsoft Windows за счет создания обертки для существующего Win32 API в управляемом коде [9].


MySQL для Visual Studio предоставляет доступ к объектам и данным MySQL, не заставляя разработчиков покидать Visual Studio.


Рисунок 3.8.1 – Физическая модель БД

РАЗДЕЛ 4. ПРАКТИЧЕСКАЯ ЧАСТЬ

Visual Studio 2015 – это интегрированная среда разработки с широкими возможностями для создания потрясающих приложений для Windows, Android и iOS, а также современных веб-приложений и облачных служб [9].

4.1 Установка платформы. Net и ПС MVS 2023

– Подготовка компьютера к установке Visual Studio

Перед началом установки Visual Studio нужно проверить требования к системе, применить актуальные обновления Windows и необходимые системные компоненты для Visual Studio. Ещё нужно освободить необходимое место на жестком диске (от 20 до 50 ГБ).


– Скачивание самой Visual Studio 2023

Переходим на официальный сайт visualstudio.microsoft.com ИЛИ по ссылке: https://visualstudio.microsoft.com/downloads/ и скачиваем версию на компьютера на платформе (Windodws, Linux, Mac)


Рисунок 4.1.1 — Скачивание MVS Community 2022


– Установка установщика Visual Studio 2023

Запускаем файл начального загрузчика, чтобы установить Visual Studio Installer. Новый установщик имеет меньший размер и включает все необходимое для установки и настройки Visual Studio.


Рисунок 4.1.2 — Выбор основных компонентов (обязательно)


Выбрав нужные рабочие нагрузки, нажмите кнопку Установить. Далее будут отображаться экраны состояния, на которых демонстрируется ход установки Visual Studio 2023.

– Выбор отдельных компонентов

Если вы не хотите пользоваться функцией рабочих нагрузок для настройки установки Visual Studio или хотите добавить дополнительные компоненты, которые не устанавливает рабочая нагрузка, это можно сделать путем установки или добавления отдельных компонентов на вкладке Отдельные компоненты. Выберите нужные компоненты и следуйте указаниям.


Рисунок 4.1.3 — Выбор отдельных компонентов (необязательно)


– Далее – Установка языковых пакетов (необязательно) и Выбор расположения установки (дополнительно)


Рисунок 4.1.4 — Выбор языков MVS 2023


Рисунок 4.1.5 – Выбор расположения MVS 2023


При установке или изменении Visual Studio выберите одну или несколько из следующих рабочих нагрузок в зависимости от типа создаваемого приложения: рабочая нагрузка Кроссплатформенная разработка. NET Core в разделе Другие наборы инструментов;


Рисунок 4.1.6 — Установка. NET в Windows


Иногда возникают проблемы. Если установить Visual Studio не удается, воспользуйтесь пошаговыми указаниями на официальніх сайте MICROSOFT: https://learn.microsoft.com/ru-ru/visualstudio

4.2 Ознакомление с Microsoft Visual Studio 2015

Сначала нужно запустить программу Microsoft Visual Studio 2015. Она была скачана бесплатно на официальном сайте программы: visualstudio.com (Community Version). В данном случае будет рассмотрена российская версия ПО. Строим проект приложения Windows Forms:

1. В строке меню выберем Файл, Создать, Проект. Диалоговое окно должно выглядеть следующим образом:


Рисунок 4.2.1 — Диалоговое окно «Новый проект»


2. В списке Установленные шаблоны выберите Visual C#.

3. В списке шаблонов выберите значок Приложение Windows Forms. Назовите новую форму PingPongAplication и нажмите кнопку «ОК».

4. На следующем Рис. 4.2.2 показано, как теперь должен выглядеть интерфейс MV Studio.


Рисунок 4.2.2 — Окно интегрированной среды разработки


Интерфейс содержит восемь окон: главное окно, Обозреватель решений, Tem Explorer, Представление классов, окно Свойства, Списка ошибок, Вывода и окно Панель элементов.

Если любое из этих окон отсутствует, восстановим макет окон по умолчанию, выбрав в нем меню Окно, Сброс макета окон. Можно также отобразить окна с помощью команд меню. В строке меню выбираем «Вид», Окно «Свойства» или «Обозреватель решений». Если открыты любые другие окна, закрываем их с помощью кнопки Закрыть (x) в правом верхнем углу.

5. На рисунке 4.2.2 показаны следующие окна (по часовой стрелке от левого верхнего угла):

– Главное окно. В этом окне выполняется основная часть работы, например работа с формами и редактирование кода. На рисунке в окне показана форма в редакторе форм. имя вкладки заканчивается на. vb, а не на. cs.).

– Окно Обозреватель решений. В этом окне можно просматривать все элементы, входящие в решение, и переходить к нему. Если выбрать файл, содержимое в окне Свойства изменится. Если открыть файл кода (с расширением. cs в Visual C# и. vb в Visual Basic), откроется файл кода или конструктор для файла кода. Конструктор – это визуальная поверхность, на которую можно добавлять элементы управления, такие как кнопки и списки. работе с формами Visual Studio он называется конструктор Windows Forms.

– Team Explorer – это модуль, устанавливаемый вместе с Visual Studio или Eclipse. … Team Explorer обеспечивает подключение Visual Studio к командным проектам.

– Представление классов указывает структуру классов.

– Окно cвойств. В этом окне производится изменение свойств элементов, выбранных в других окнах. Например, выбрав форму «Form1», можно изменить ее название путем задания «свойства»: «Text», а также можно изменить цвет фона путем задания свойства Backcolor.

– Окно cписка ошибок показывает количество ошибок, предупреждений, кодов и описание каждой ошибки. Если ошибок нет, то он пуст.

– Окно вывода читает код программы и выводит данные.

– Панель элементов – закладка слева от пользовательского экрана, служит для хранения элементов Windows Forms, элементы являются частью интерфейса программы.

– Заходим в окно «Обозреватель решений», над вкладкой с названием нашего проекта: «PingPongAplication» нажимаем правую кнопку мыши, и открывается контекстное меню, в нем выбираем «свойства», затем выбираем вкладку «Ресурсы», перемещаем наши файлы сюда, как показаны на рис. 4.2.3 Они нужны будут в процессе работы над проектом. Теперь можно переключаться между загруженными видами ресурсов (картинка, иконка, звуковой файл и т.д.), нажав на вкладку «Изображения», меняя нужный вид загрузка файлов.


Рисунок 4.2.3 — Окно переноса файловс ПК в среду разработки

4.3 Начало написание игры. Создание класса «Game»

Нажать на главное окно, а затем в открывшемся окне «Свойства» найти команду «name», выбрав, переименовать имя «Form1» на «screen», в команде «text» переименовать «Form1» на «PingPong», а в команде icon выбрать значок ico_32x32. Открываем вкладку скрытого окна «Панель элементов», в открывшемся окне и пункте «Все элементы» ищу элемент «panel», перемещаем на рабочее место (главное окно).

В открывшемся окне «Свойства» и в пункте «по категориям» в определенных командах вводим или изменяем данные (если там написаны какие-то данные): «name» (разработка) – table, «Dock» (макет) – Fill. Возвращаемся к окну «панель элементов», выбираю «PictureBox», перемещаю в рабочее место, а над его свойствами, в пункте «по категориям» в определенных командах меняем данные, как меняли с элементом «panel», только данные другие вписываем, именно: «name» – board, «size» – 200; 20, «backcolor» – Blue;

Повторяем цикл этой процедуры для следующих четырех элементов:

Добавляем элемент PictureBox: name – ball, size – 30;30, backcolor – Transparent, image – PingPongAplication. Properties.Resources. мяч; Добавляем элемент «Timer»: «name» – timer1, «interval» – 1; Добавляем и настраиваем по центру экрана элемент «label»: «name» – gameover_text, «Anchor» – None, «TextAlign» – MiddleCenter, «Font» (показано на рис.4.3.1), «text» (Все три слова писать в столбик, и желательно: между первым и вторым словом расстояние (вертикально) 2—3 отступления) – «Игра закончена! R – Повторить Esc – Выйти (без кавычек)», «BackColor» – Control.


Рисунок 4.3.1 — Шрифты для class GAME в MVS


Добавляем элемент «label»: «BackColor» – Control, «Fond» (записано на Рис. 4. 3.5), «Fore color» – ControlText, «text» – «Счёт:» (без кавычек), «name» – score_text;

Добавляем элемент «label»: «name» – points_text, Fond (заражен на Рис.4.3.2),

Теперь напишем код, для этого нужно во вкладке вид в меню выбрать пункт «код». На Рис. 4.2.2 это изображено.


Рисунок 4.3.2 — Выбор кода


Пишем код, к создаваемой платформе, закомментирующие данные будут пояснительной запиской. Это основной код программы!

 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System. Data;
using System. Drawing;
using System.Linq;
using System. Text;
using System.Threading. Tasks;
using System.Windows.Forms;
 
 
namespace PingPongAplication
 

{

public partial class screen: Form

{

bool right; // переменное право

bool left; // переменная влево


public int speed_left = 2; // скорость мяча

public int speed_top=2;

public int points = 0; // Набранные очки


public screen ()

{

InitializeComponent ();


timer1.Enabled=true;

/// Cursor. Hide (); // Скрыть курсор


this.FormBorderStyle = FormBorderStyle.None; // удалить любые границы

this.TopMost = true; // вывести бланк на передний

this.Bounds = Screen.PrimaryScreen.Bounds; // полноэкранный вид


board.Top = table.Bottom – (table.Bottom/10); // Установить позицию ракетка

gameover_text. Left = (table. Width/2) – (gameover_text. Width/2); // Позиция в центре

gameover_text.Top= (table. Height/2) – (gameover_text. Width/2);

gameover_text.Visible = false;


}


private void timer1_Tick (object sender, EventArgs e)

{

if (right == true) {board. Left += 15;}

if (left == true) {board. Left -= 15;}


/// racket. Left = Cursor. Position. X – (racket. Width/2); // Установить Центр ракетки с позиции курсора // для управления курсором

// I метод для создания boundaries: // Этот метод не используется:

// if (board. Width + racket. Left> = table. Width) // Если левая координата плюс Ширина больше или равна экрану Ширины // {board. Left = table. Width – board. Width; right=false;} // остановить падение мяча

// (if (board. Width – board. Right> = table. Width)) {board. Right = table. Width + racket. Width; left=false;}


// II способ создания границ, который используется:

if (board. Left> 1350) {board. Left = -185; right=false;} // Границы правого края

/// if (board. Right <0) {racket. Left = 15; right=false;} // Ограничение движения ракетки в правой части экрана

if (board. Right <-15) {board. Left=1350; left=false;} // Границы левого края

/// if (board. left <0 {racket. Left = 0; left = false;} // Restriction of movement of racket to left of the screen


ball. Left += speed_left; // Переместить мяч

ball.Top+=speed_top;


if (ball.Bottom> = board.Top && ball.Bottom <= board.Bottom && ball. Left> = board. Left && ball. Right <= board. Right) // Позиция ракетки (доски)

{

speed_top+=1;

speed_left +=1;

speed_top=-speed_top; // изменить направление

points+=1;

points_text. Text = points.ToString ();


Random r = new Random ();

table.BackColor = Color.FromArgb(r.Next (155, 255), r.Next (155, 255), r.Next (155, 255)); // Получить случайный цвет RGB, screen BackColor [16]


}


if (ball. Left <= table. Left)

{

speed_left=-speed_left;

}


if (ball. Right> = table. Right)

{

speed_left=-speed_left;

}


if (ball.Top <= table.Top)

{

speed_top=-speed_top;

}

if (ball.Bottom> = table.Bottom)

{

timer1.Enabled = false; // Если мяч вне зоны -> остановка игры)

gameover_text.Visible = true;

}

}

private void Form1_KeyDown (object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Escape) {this.Close ();} // Нажмите Esc для выхода

if (e.KeyCode == Keys. R) // Перезапустить игру

{

ball.Top = 50;

ball. Left = 50;

speed_left=2;

speed_top=2;

points=0;

points_text. Text = «0»;

timer1.Enabled=true;

gameover_text.Visible = false;

table.BackColor = Color. White;

}

if (e.KeyCode == Keys. Right) {right = true;}

if (e.KeyCode == Keys. Left) {left = true;} // Клавиши управления

}


private void Form1_KeyUp (object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys. Right) {right = false;}

if (e.KeyCode == Keys. Left) {left = false;} // Клавиши доски

}

}

}


После написания кода, не спешим, потому что нужно связать некоторые детали кода с платформой, а затем проверить класс «Prorgam». События» команда «Tick», ввести данные – timer1_Tick (можно просто нажать на пустое поле, затем покажет этот вариант); в свойствах объекта «screen», в пункте «События», команды «KeyDown» и «KeyUp» ввести как показано на Рис. 4.3.3


Рисунок 4.3.3 — Свойства объекта screem


Теперь перейдем к классу «Program», нужно в окне «Обозреватель решений» выбрать этот класс, через правую кнопку мыши открыть контекстное меню, и выбрать из перечисленных вариантов «открыть», также можно было сделать проще, нажав дважды по классу. Открылся код класса «Program», код должен быть такой же, как и на Рис. 4.3.4.


Рисунок 4.3.4 — Код класса «Program»


Если есть недостатки, то корректируем. Код написан правильно, программа работает, как видно на Рис.4.3.5


Рисунок 4.3.5 — Проверка работы классов


Страницы книги >> Предыдущая | 1 2 3 4 5 6 | Следующая
  • 1 Оценок: 1

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации