Центральный Дом Знаний - Визуальное управление числовой величиной (TRACKBAR). Программа-игра "Авиасимулятор"

Информационный центр "Центральный Дом Знаний"

Заказать учебную работу! Жми!



ЖМИ: ТУТ ТЫСЯЧИ КУРСОВЫХ РАБОТ ДЛЯ ТЕБЯ

      cendomzn@yandex.ru  

Наш опрос

Я учусь (закончил(-а) в
Всего ответов: 2653

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Форма входа

Логин:
Пароль:

Визуальное управление числовой величиной (TRACKBAR). Программа-игра "Авиасимулятор"

Скачать работу полностью

ВИЗУАЛЬНОЕ УПРАВЛЕНИЕ ЧИСЛОВОЙ ВЕЛИЧИНОЙ (TRACKBAR). ПРОГРАММА-ИГРА «АВИАСИМУЛЯТОР»
Пояснительная записка к курсовому проекту по дисциплине «Технология разработки программных продуктов»
МРМТ .230105.020 ПЗ-КП

СОДЕРЖАНИЕ
Введение 3
1. Техническое задание 4
2. Теоретический раздел 6
2.1. Назначение, область применения и особенности компонента TrackBar 6
2.2. Характерные свойства 7
2.3. Характерные методы и события 9
2.4. Пример приложения с компонентом TrackBar 9
3. Практический раздел 11
3.1. Назначение программы 11
3.2. Требования к аппаратным и программным средствам 11
3.3. Руководство программиста 11
3.4. Руководство пользователя 12
4. Листинг программы 13
4.1. Файл проекта TrackFly.dpr 13
4.2. Модуль Main.pas 13
4.3. Модуль BB.pas 16
Заключение 19
Список литературы 20

Введение
В курсовом проекте описывается компонент Win32-приложений TrackBar (Движок), сферы его применения, характерные свойства, методы и события Этот компонент повсеместно используется в программном обеспечении для выставления значений определённых свойств – например, для настройки уровня звука в программах аудио-редактирования, регулирования масштаба (zoom) в графических редакторах и т.д.
В данном курсовом проекте предложено использование компонента TrackBar для управления самолётом в программе-авиасимуляторе и разработано соответствующее приложение. Движки TrackBar в разработанном приложении используются для регулирования положения самолёта, все изменения видны мгновенно, в приложении используются все основные свойства и события компонента TrackBar.  

Техническое задание
на разработку программного продукта «Авиасимулятор»
1.1. Разработать программный продукт «Авиасимулятор»
1.1.1. Назначение программы.
Программа позволяет управлять авиа-средством с помощью движков TrackBar – регулировать скорость движения авиа-средства, его положение по высоте и по осям X, Y (в горизонтальной плоскости). При изменении скорости движения авиа-средства ускоряется его анимация и движение «заднего плана» - имитации поверхности земли. При изменении высоты самолёта визуально изменяется «задний план» - при увеличении высоты становятся видны облака, а видимость поверхности земли ухудшается, и наоборот – при уменьшении высоты облака перестают быть видными, а видимость поверхности увеличивается. Увеличение/уменьшение видимости облаков разрабатывается с помощью использования механизма смешивания двух изображения для имитации эффекта полупрозрачности (Alpha Blend).
1.1.2. Интерфейс программы.
Интерфейс реализован с помощью четырёх движков TrackBar:
Скорость
Значения от 1 до 10
Шаг: 1
Расположение: горизонтальное
Высота
Значения от 1 до 10
Шаг: 1
Расположение: вертикальное
Ось X
Значения от 1 до 100
Шаг: 1
Расположение: горизонтальное
Ось Y
Значения от 1 до 100
Шаг: 1Расположение: вертикальное
Кроме того, для воссоздания процесса полёта использованы 8 компонент TImage:
2 «задних плана» - поверхность земли
2 текстуры неба (облаков) – 1 исходная и 1 вспомогательная
1 исходная текстура поверхности земли
1 контейнер для авиа-средства
1 фоновое изображение кокпита для размещения движков
1 справочное изображение с подсказками

Для хранения кадров анимации (4 шт.) авиа-средства использован компонента TImageList, а для воспроизведения анимации – компонент TTimer.

1.2. Разработать руководства программиста.

1.3. Разработать руководства пользователя.
Теоретический раздел
Назначение, область применения и особенности компонента TrackBar
Компонент Движок (TTrackBar) обычно применяется там, где надо в визуальном режиме выставить с помощью мыши какое-либо приближенное значение, что выполняется перетаскиванием движка по шкале. В старых версиях Windows для этого использовались компоненты типа полос прокрутки. Движок стал стандартным элементом управления в 32-разрядных версиях Windows. 
(.....)
Внешний вид движка настраивается с помощью следующих свойств (табл. 1).
Таблица 1 – Свойства компонента Движок и их назначение
Свойство Назначение
Frequency Частота засечек
Min Max Минимальная и максимальная допустимые границы
Orientation Ориентация: горизонтальная (значение trHorizontal) или вертикальная (значение trVertical)
SeLStartSelEnd Начало и конец "оптимального” диапазона в рамках границ Min/Max по аналогии с приборами управления. Область оптимального диапазона выделяется дополнительными засечками и другим цветом
Свойство Назначение
StiderVisible Видимость движка
ThumbLength Толщина полосы движка в пикселах
TickMarks Положение засечек. Возможные значения: tmBottomRight (снизу); tmlopLeft(сверху); tmSoth (с обеих сторон)
TickStyle Способ отображения засечек на движке. Возможные значения: tsAuto(автоматически); tsManual (программно); tsNone (вообще не отображаются)

Более детальное описание свойств см. в разделе 2.2. Характерные свойства.
Компонент Движок представляет собой элемент управления в виде ползунка, который пользователь может перемещать курсором мыши или клавишами во время выполнения. Таким образом, пользователь может управлять какими-то процессами: громкостью звука, размером изображения и т.п. На рис. 2 приведены различные формы отображения ползунка. Как видно из рисунка, он может располагаться горизонтально, вертикально, иметь шкалу с различных сторон, иметь какой-то выделенный диапазон шкалы. (.....)
Характерные свойства
Основное свойство компонента — Position. Это свойство можно задавать во время проектирования или программно во время выполнения. При перемещении пользователем ползунка можно прочитать значение Position, характеризующее позицию, в которую пользователь переместил ползунок. Для возможности такого чтения служит событие OnChange. В обработчике этого события можно прочитать значение Position и использовать его для управления каким-то компонентом.
Свойство Position — целое, значение которого может изменяться в пределах, задаваемых свойствами Min и Мах. По умолчанию Min = 0, Мах = 10, так что Position может принимать только 11 значений — от 0 до 10. Если задать большее значение Мах, соответственно увеличится количество возможных значений Position в диапазоне Min — Мах.
Свойство Orientation определяет ориентацию ползунка: trHorizontal — горизонтальная, trVertical — вертикальная.
Свойство TickMarks указывает размещение шкалы относительно компонента и может принимать значения: tmBottomRight — снизу или справа в зависимости от ориентации компонента (верхний и правый компоненты на рис. 2), tmTopLeft — сверху или слева в зависимости от ориентации компонента (нижний компонент на рис. 1), tmBoth — с обеих сторон (средний компонент на рис. 2).
Свойство TickStyle определяет способ изображения шкалы. Оно может принимать значения: tsAuto — автоматическая прорисовка шкалы, tsNone — отсутствие шкалы, tsManual — программное рисование шкалы с помощью метода SetTick(Value: Integer), который помещает метку шкалы в позицию, соответствующую величине Value. Метки, соответствующие началу и концу шкалы автоматически размещаются и в случае TickStyle = tsManual.
При TickStyle = tsAuto частота меток шкалы определяется свойством Frequency. Это свойство задает, сколько возможных значений Position лежит между метками. Например, если Frequency = 2, то метки будут соответствовать только каждому второму возможному значению позиции (такое значение Frequency задано в верхнем компоненте на рис. 2).
Свойства LineSize и PageSize определяют, насколько смещается ползунок, если пользователь управляет им с помощью соответственно клавиш со стрелками или клавишами PageUp и PageDown.
Свойства SelStart и SelEnd позволяют визуально выделить на шкале некоторый диапазон (см. средний компонент на рис. 2), который о чем-то говорит пользователю, например, рекомендуемый диапазон значений. При этом ничто не мешает пользователю выйти за пределы этого диапазона.
Характерные методы и события
По умолчанию метки рисуются для каждого шага приращения (Frequency:=1), по нижней стороне полосы (TickMarks:=tmBottomRight). Видимость меток – «заслуга» свойства TickStyle, имеющего по умолчанию значение tsAuto. Если бы оно было установлено в tsNone, то метки были бы скрыты. В том же случае, если для него выбрано значение tsManual, то выделено было бы только начало и конец диапазона, а промежуточные позиции можно было бы выставить при помощи метода SetTick:
TrackBar1.TickStyle:=tsManual;
TrackBar1.SetTick(4);
TrackBar1.SetTick(7);
В данном случае у компонента TrackBar1 было бы выставлено 4 метки – в начале, на 3-й позиции, на 7-й, и на последней. Метод SetTick – это единственный собственный метод компонента TrackBar, все же остальные его методы вполне стандартны, поскольку являются унаследованными от класса TWinControl.
Событие OnChange – основное событие компонента TrackBar, оно генерируется при изменении значения свойства Position. Чтобы создать его обработчик, достаточно дважды щелкнуть по размещенному на форме объекту TrackBar. 
Пример приложения с компонентом TrackBar
Идея демонстрационного приложения состоит в том, чтобы пользователь, изменяя положение ползунка, помеченного как «перемещение» (TrackBar2), мог бы влиять на положение индикатора (ProgressBar1). При этом величина перемещения задается при помощи коэффициента (TrackBar1). Поскольку индикатор имеет максимальное значение 100, а количество позиций перемещения – 10, то для полного совпадения в конечной точке понадобится коэффициент 10 – для этого и было сделано выделение диапазона от 9 до 11.
Весь программный код данного приложения сводится к обработчику события OnChange элемента TrackBar1. Чтобы создать такой обработчик, достаточно дважды щелкнуть по размещенному на форме объекту TrackBar1. Сам же код будет состоять из вычисления позиции для индикатора и вывода его числового значения в заголовке формы:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
ProgressBar1.Position:=TrackBar2.Position*TrackBar1.Position;
Form1.Caption:=IntToStr(ProgressBar1.Position);
end;
(.....)
Практический раздел
Назначение программы
Назначение программы – эмуляция полёта на самолёте. Для более наглядной демонстрации эффектов изменения положения самолёта использована винтовая модель авиа-средства (для наглядной демонстрации различной скорости анимации), а для демонстрации эффекта высоты и изменения положения самолёта в плоскости (XY) использован общий вид камеры «сверху».
Требования к аппаратным и программным средствам
Требования к конфигурации компьютера.
Процессор Pentium 4 2ГГц или идентичный ему по характеристикам.
256 мегабайт оперативной памяти.
7 мегабайт свободного места на жёстком диске или другом носителе информации.
Клавиатура, монитор, манипулятор «мышь».
Разрешение монитора – 1024x768.
Требования к операционной системе.
Целевая операционная система приложения – Microsoft Windows XP, продукт совместим c ОС Windows Vista и Windows 7.
Руководство программиста
Программа поставляется в виде единственного исполняемого файла – TrackFly.exe, вся необходимая графика содержится внутри исполняемого файла. Программу допустимо запускать как с перезаписываемых запоминающих устройств (жёсткие диски, флеш-карты), так и с компакт-дисков. Для установки программы достаточно скопировать на компьютер исполняемый файл. По желанию пользователя возможно создание ярлыка программы средствами ОС Windows.

eHeРуководство пользователя
Листинг программы
Файл проекта TrackFly.dpr
program TrackFly;
uses
  Forms,
  Main in 'Main.pas' {frmMain},
  BB in 'BB.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
Модуль Main.pas
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GIFImg, ExtCtrls, ImgList, ComCtrls, jpeg, TeeFilters, Math, pngimage, BB,
  StdCtrls;

type
  TfrmMain = class(TForm)
    imlAircraft: TImageList;
    imgAircraft: TImage;
    tmrAnimator: TTimer;
    trkSpeed: TTrackBar;
    trkYpos: TTrackBar;
    Background1: TImage;
    imgSkies: TImage;
    trkHeight: TTrackBar;
    imgEarth: TImage;
    BackGround2: TImage;
    imgCockpit: TImage;
    trkXpos: TTrackBar;
    imgSkies2: TImage;
    imgGuide: TImage;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure tmrAnimatorTimer(Sender: TObject);
    procedure trkSpeedChange(Sender: TObject);
    procedure trkYposChange(Sender: TObject);
    procedure trkHeightChange(Sender: TObject);
    procedure trkXposChange(Sender: TObject);
    procedure drawBackground(Opacity: Byte);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  i: integer; //Номер кадра анимации самолёта

implementation

{$R *.dfm}

{Процедура генерации фонового изображения уровня, Opacity - непрозрачность, от 0 до 255}
procedure TfrmMain.drawBackground(Opacity: Byte);
var Bmp: TBitmap;
begin
(......)

Loading

Календарь

«  Май 2019  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Друзья сайта

  • Заказать курсовую работу!
  • Выполнение любых чертежей
  • Новый фриланс 24