Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 034

•  TDictionary Custom Sort  6 137

•  Fast Watermark Sources  5 937

•  3D Designer  8 795

•  Sik Screen Capture  6 265

•  Patch Maker  6 687

•  Айболит (remote control)  6 683

•  ListBox Drag & Drop  5 537

•  Доска для игры Реверси  95 749

•  Графические эффекты  6 908

•  Рисование по маске  6 134

•  Перетаскивание изображений  5 068

•  Canvas Drawing  5 441

•  Рисование Луны  5 155

•  Поворот изображения  4 700

•  Рисование стержней  3 314

•  Paint on Shape  2 551

•  Генератор кроссвордов  3 446

•  Головоломка Paletto  2 758

•  Теорема Монжа об окружностях  3 558

•  Пазл Numbrix  2 329

•  Заборы и коммивояжеры  3 019

•  Игра HIP  1 972

•  Игра Go (Го)  1 890

•  Симулятор лифта  2 245

•  Программа укладки плитки  1 955

•  Генератор лабиринта  2 405

•  Проверка числового ввода  2 085

•  HEX View  2 413

•  Физический маятник  2 044

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Создание Главного Меню в Игре - Часть 1 - Кнопки и ЧекБоксы



Оформил: XVeL
Автор: Spose

Начинать делать игру надо именно с главного меню! К такому выводу я пришел тогда, когда начил вставлять меню в "Наш Крафт" (ныне "В ОСАДЕ"), это было жутко неудобно так как пришлось перестраивать структуры игры!
Итак, злобный Spose выкладывает intf.zip содержащий описание компонентов(кнопок, листбоксов, чекбоксов, эдитов и тэдэ) для DelphiX. Рассматривать мы их будем в порядке надобности и по мере улучшения Intf (сейчас дорабатывается), на эту тему будут четыре статьи!
Этапы использования компонентов в игре:
1.Создание и задание параметров
2.Отрисовка и обработка влияния курсора на них
3.Очистка памяти от компонентов которые уже не нужны.
Cначала нужно подключить Intf к игре так:

Uses ..............., intf; //Подключаем Inf к программе
.........................................................................
procedure TForm1.FormCreate(Sender: TObject);
begin
   fsurface:=dxdraw.surface; //Это необходимо
   .........................
end;

.........................................................................
procedure TForm1.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
   if not dxdraw.CanDraw then exit;
   fsurface:=dxdraw.Surface; //Это необходимо
   ..........................
end;
Теперь включив intf в свою программу, можно и компоненты посоздавать.
Компоненты создаются просто:
Btn := TDxImageButton.create; //Где Btn - имя кнопки, заданное зарание в поле VAR (у формы)
Cb := TDxImageCheckBox.create; //Где Cb - имя ЧекБокса, заданное зарание в поле VAR (у формы)
Компоненты создаются просто: Вот такие параметры нужно регулировать у кнопок:
x:=288;//Координаты по X
y:=350;//Координаты по Y
image:=il.Items.Find('btn');//Изображение (обязательно нужно чтобы в одной картинке было 2 изображения - ненажатой и нанажатой)
width:=image.Width;//Это просто надо
height:=image.Height;//Тоже надо
caption:='ВЫхОд ТиПА !';//Заголовок ТиПА
OnClick:=onclick1;//Процедура которая будет работать по нажатию на кнопку
У ЧекБоксов аналогично, но нету процедуры OnClick (пока). Отрисовка производится так:
btn.DoDraw; //Где btn имя вашего компонента
И остается только обработка на поведение мыши(cb - ЧекБокс, btn - Кнопка):
procedure TForm1.DXDrawMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   btn.OnMouseDown(x,y);
   cb.OnMouseDown(x,y);
end;

procedure TForm1.DXDrawMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
   btn.OnMouseMove(x,y);
   cb.OnMouseMove(x,y);
end;

procedure TForm1.DXDrawMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   btn.OnMouseUp;
   cb.OnMouseUp;
end;
Тут код примера
Вот в принципе и всё.




Похожие по теме исходники

Создание таблиц в Paradox




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте