![]() |
||||||
[Главная]
|
[Новости] |
[Статьи] |
[Проекты] |
[Автор] |
||
[Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi] | ||||||
[Разработка компьютерной игры] [Пример игры Donuts3D] | ||||||
Разбираем
конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 |
||||||
Данный небольшой урок является введением в программирование игр на C++ для DirectX 9 Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал), и DirectX SDK 9 версии, или лучше самой последней - DirectX SDK August 2008. |
||||||
[назад] [далее] [к содержанию] | ||||||
Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 | ||||||
В предыдущих уроках - [Первый старт], [Меняем иконку приложения], [Добавляем другую модель] мы ознакомились с первыми шагами, которые нужно выполнить для начала работы с directx в Microsoft Visual Studio 2008 - настроить примеры для корректной компиляции, сменить иконку в собственном проекте и наконец приступить к первым модификациям кода |
||||||
Задача: вывести значение переменной на экран Реализация: можно поместить на форму метку (label). Если реализовать вывод значения переменной по нажатию на кнопку. При этом возникают следующие вопросы: Как получить доступ к метке label на форме из кода? Сначала решаем так: объявляем переменную, по нажатию на кнопку в ее свойстве Text выводим значение переменной В заголовочном файле Form1.h private:
System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) { код помеченный коричневым был сгенерирован системой, код помеченный зеленым был записан нами результат работы - по нажатию на кнопку на ее поверхности выводится текст: 1 |
||||||
Функция перевода числа в текст? itow (перевод int в строку Unicode) эквивалент для .Net Framework - System::Convert::ToString private:
System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) { |
||||||
Показанный выше пример выводит число 0 в виде текста на поверхность кнопки! Теперь можно заняться исследованиями языка C++ |
||||||
Разработка мини-калькулятора Самый простейший вариант программы это небольшой калькулятор, который бы выполнял основные арифметические операции - сложение, вычитание, умножение, деление должно быть поле для ввода значений и отображения результата, кнопки +, -, *, /, = Работа происходит так: в поле вводится первое число, нажимается кнопка операции, вводится второе число, нажимается = при этом в поле ввода должен появиться результат |
||||||
Реализация - на форме нужно разместить элементы управления Button (5 шт), в качестве поля ввода TextBox Дать элементам управления более осмысленные имена (свойство Name в панели Properties), например plus_button, minus_button, mult_button, div_button, result_button, EnterFieldtextBox Для свойства Text кнопок установите +, -, *, /, = соответственно |
||||||
![]() |
||||||
По нажатию на кнопки - + * / значение текстового поля должно заноситься в переменную первого операнда (x), в специальную переменную должен заноситься код операции (code_op), по нажатию на кнопку = значение текстового поля должно заноситься в переменную второго операнда (y), должен вычисляться результат (res) и выводится в текстовое поле | ||||||
Для очистки регистров x, y, res и code_op можно добавить специальную кнопку - Clear | ||||||
Вообще программирование приложения Windows Forms в MSVS 2008 сильно напоминает методы работы в Delphi 7! Я не удержался и удалил кнопку Say Hello. Как поведет себя MSVS ? К сожалению код обработчика мне пришлось удалять вручную. Среда Delphi в этом случае повела бы себя более разумно - во время сохранения изменений когда код обработчика был бы пуст она бы удалила метод обработчика из кода. MSVS 2008 как видим этого не сделала. В этом плане MSVS сильно отличается от Delphi 7. Еще меня удивило, что код модуля формы для обработчиков нажатий кнопок попадает в заголовочный файл формы Form1.h. Возможно это связано с тем, что не вводился специальный тип файла для хранения данных формы. В Delphi 7 для этих целей есть специальный файл *.dfm Похоже, что основные идеи создания приложений Windows Forms в Microsoft пришли из Delphi. Или я ошибаюсь? |
||||||
в коде класса формы добавляем описание наших переменных статичных полей для формы private: static int x, y, res, code_op; |
||||||
остальной код (после автоматического добавления обработчиков нажатий на кнопки формы по аналогии с HelloWorldCLR) будет выглядеть так - |
||||||
private: System::Void plus_button_Click(System::Object^ sender, System::EventArgs^ e) { | ||||||
|
||||||
} | ||||||
private: System::Void clear_button_Click(System::Object^ sender, System::EventArgs^ e) { | ||||||
|
||||||
} | ||||||
private: System::Void result_button_Click(System::Object^ sender, System::EventArgs^ e) { | ||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
} | ||||||
private: System::Void minus_button_Click(System::Object^ sender, System::EventArgs^ e) { | ||||||
|
||||||
} | ||||||
private: System::Void mult_button_Click(System::Object^ sender, System::EventArgs^ e) { | ||||||
|
||||||
} | ||||||
private: System::Void div_button_Click(System::Object^ sender, System::EventArgs^ e) { |
||||||
|
||||||
} | ||||||
зеленым помечен код, который Вы должны написать сами | ||||||
сохраняем, выполняем сборку, проверяем работу нашего калькулятора - | ||||||
![]() |
||||||
Щелкаем мышью по текстовому полю, вводим с клавиатуры первое число, нажимаем кнопку операции, снова щелкаем по текстовому полю и вводим второе число, нажимаем знак равно, получаем результат. Кнопка clear приводит к очистке полей формы x, y, res, code_op и записи строкового значения "0" в свойство Text поля ввода EnterFieldtextBox Обратите внимание!!! Т.к. MSVS и язык C++ являются чувствительными к регистру букв (заглавные/строчные), то все имена переменных и других идентификаторов необходимо вводить именно так, как вы их записали во время первого объявления! Т.е. записав в секции объявлений или где-то в коде переменную с именем ReS обращаться к ней нужно именно как ReS, обращения res или Res или даже RES будут восприняты компилятором как обращения к совершенно другой переменной!!!!! Имейте это в виду, если Вы только только начали писать на С++. Поскольку я хорошо знаком с Delphi 7, то я всегда буду сравнивать MSVS именно с ним. Ваш опыт программирования в других языках и средах сформирует в дальнейшем Ваше собственное мнение. |
||||||
в
следующем уроке мы начнем разбор основных конструкций языка C++ |
||||||
[назад] [далее] [к содержанию] | ||||||
Обновления
и новости о развитии Delphi DirectX проекта http://www.megainformaticsite.pochta.ru |
||||||
[Главная]
|
[Новости] |
[Статьи] |
[Проекты] |
[Автор] |
(c) Мега Информатик 2006-2009 | ||||||