Форум: "Игры";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизИнтерфейс игровых меню Найти похожие ветки
← →
alexus (2003-05-05 13:05) [0]Привет всем.
Не подскажете идею как на основе стандартных компонентов собрать интерфейс менюшек, с анимацией и визуальными эффектами (кнопочки красивые там, открытие/закрытие окон и пр.).
Ставить аvi и jpeg"и и обрабатывать щелчки на них муторно, так как много памяти жрут. Может есть некий способ?
← →
Darthman (2003-05-05 15:02) [1]Есть один...
Не использовать стандартные средства.
← →
Плохой человек (2003-05-05 20:25) [2]Можно пустить на задним фон бегущий слой. И использовать TLayers.
← →
k-man (2003-05-05 22:04) [3]Ну не знаю, наверняка есть какие-нибудь компоненты.
Ну а если по делать простенькую менюшку, то могут помочь компоненты с событиями OnMouseLeave и OnMouseEnter.
Вешаешь на них какие-нибудь изменения и вполне пристойная менюшка может получиться. Но это довольно примитивное решение.
Если делать серьезно то самому.
Поэтому согласен с Darthman"ом лучше не использовать стандартные средства.
← →
alexus (2003-05-06 12:20) [4]Понял, спасибо за инфу.
Привет всем!
← →
KefiR (2003-05-06 22:45) [5]Когда-то писал процедурку, чтоб двигать контрол по форме:
procedure TForm1.MoveControl(var control: TControl; DestPoint: TPoint; DelayTime: integer); //<<<---DelayTime - in seconds
procedure
var LastPoint:TPoint;
DelayBetween:integer;
dx,dy:single;
Rasst:single;
count:integer;
begin
LastPoint.x:=Control.Left; LastPoint.y:=control.Top; Rasst:=sqrt(sqr(LastPoint.x-DestPoint.x)+sqr(LastPoint.y-DestPoint.y));
DelayBetween:=Round(delaytime/rasst);
dx:=(DestPoint.x-LastPoint.x)/rasst;
dy:=(DestPoint.y-LastPoint.y)/rasst;
count:=1;
repeat
count:=count+1;
Control.Left:=LastPoint.x+round(count*dx);
control.Top:=LastPoint.y+round(count*dy);
Delay(delayBetween);
until (Control.top=destpoint.y) and (control.left=destpoint.x);
end;
Оптимизацией не занимался, т.к. саму процедуру писал около 10 минут. Недостаток - двигает только один контрол. Вызов:
MoveControl(TControl(Button1),Point(10,10),2);
особо на глючность не тестировал
← →
KefiR (2003-05-06 22:47) [6]Чуть не забыл
procedure Delay(Time:integer);
var TimeOut:TDateTime;
begin ( 0,Time div 3600, time div 60, time)Чуть не забыл
procedure Delay(Time:integer);
var TimeOut:TDateTime;
begin
TimeOut:=Now + EncodeTime(0,Time div 3600, time div 60, time);
while now<timeout do Application.ProcessMessages;
end;
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c