Создание Главного Меню в Игре - Часть 1 - Кнопки и ЧекБоксы
Оформил: XVeL
Автор: Spose
WEB-сайт: http://daddy.mirgames.ru
Начинать делать игру надо именно с главного меню! К
такому выводу я пришел тогда, когда начил вставлять меню в
"Наш Крафт" (ныне "В ОСАДЕ"), это было жутко неудобно так как
пришлось перестраивать структуры игры! Итак, злобный
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;
Тут код примера Вот в принципе и всё.
|