здавствуйте, если можете, помогите, пожалуйста..
мне нужно меню во фрейме для игры... Где-то слышал, что такое возможно... Напишите, пожалуйста модуль для этого.
Заранее благодарен
![]() |
![]() ![]() |
![]() |
Wait |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
здавствуйте, если можете, помогите, пожалуйста..
мне нужно меню во фрейме для игры... Где-то слышал, что такое возможно... Напишите, пожалуйста модуль для этого. Заранее благодарен |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
В каком еще фрейме ? вы о чем?
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
NightPaladin |
![]() ![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 67 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мне кажется можно только нарисовать параллелепипед bar3D(x1,y1,x2,y2, глубина). Использую предварительно SetFillStyle(образец_заливки, цвет) и SetLineStyle(стиль_линий, 0, толщина).
Я правильно понял фрейм - это рамка? Тогда так можно. ЕСли надо могу выложить полный внешний вид и исходник -------------------- На горе лежит дискета
У неё испорчен boot Через дырочку в конверте Её вирусы грызут |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Если это "меню в рамке", то можно и поискать по форуму - уже выкладывалось несколько реализаций графического меню...
|
Wait |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(NightPaladin @ 14.05.05 18:25) Мне кажется можно только нарисовать параллелепипед bar3D(x1,y1,x2,y2, глубина). Использую предварительно SetFillStyle(образец_заливки, цвет) и SetLineStyle(стиль_линий, 0, толщина). Я правильно понял фрейм - это рамка? Тогда так можно. ЕСли надо могу выложить полный внешний вид и исходник Выложите, пожалуйста... :molitva: |
NightPaladin |
![]() ![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 67 Пол: Мужской Репутация: ![]() ![]() ![]() |
Лично у меня получилось вот так:
Код program asd; Uses crt,graph; var a,i : Integer; begin a:= detect; i:=0; InitGraph(a, i, 'C:\BP\BGI'); ClearDevice; SetFillStyle(5, 9); bar(0,0,640,480); SetLineStyle(4,255,red); rectangle(10,10,630,470); SetFillStyle(4, 10); bar(10,10,630,470); SetFillStyle(SolidFill,black); bar(220,170,450,320); SetFillStyle(7, 3); bar3D(200,150,430,300, 0, TopOn); OutTextXY(285,180,'Options'); OutTextXY(282,200,'New Game'); OutTextXY(297,220,'Exit'); Readkey; CloseGraph; end. Внешний вид огрничен только фантазией и занием графики в TP. Я конечно сделал очень просто, но ИМХО похоже на рамку... -------------------- На горе лежит дискета
У неё испорчен boot Через дырочку в конверте Её вирусы грызут |
Дож |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот, что я написал в прошлом году по этому поводу:
Unit FMenu;
Interface
Type menu=record
But:byte;
button:array[1..8] of string[22];
Cin,Cout:integer;
Fon:array[1..2]of integer;
Zag : string[10];
end;
Var N : menu;
Function SimpleMenu : byte;
IMPLEMENTATION
Uses Graph,crt;
Function SimpleMenг : byte;
Var i,j:integer;;
C:char;
Y:1..8;
BEGIN
SetFillStyle(N.Fon[1],N.Fon[2]);
Y:=1; C:=' ';
While ord(c)<>13 do begin
i:=0;
With N do begin
settextstyle(4,0,8);{перенисите нужный BGI шрифт!}
setcolor(Cout);
Bar(0,0,640,480);
OutTextXY(20,5,Zag);
settextstyle(4,0,5);
While i<>But do begin
i:=i+1;
If i=Y then setcolor(Cin) else setcolor(Cout);
OutTextXY(20,i*TextHeight(N.Button[i])+60,N.Button[i]);
end;
end;
C:=Readkey;
Case ord( c ) of
72:If Y<>1 then Y:=Y-1 else Y:=N.But;
80:If Y<>N.But then Y:=y+1 else Y:=1;
end;
end;
simpleMenu:=Y;
end;
BEGIN
End.
Модуль состоит из одной функции SimpleMenu, типа Menu и глобальной переменной N. Переменная N отвечает за внешний вид и содержимое меню, а точнее за: 1) кол-во кнопок в меню (переменная Menu.but) 2) надписи в кнопках(переменная Menu.Button) 3) названия меню(переменная Menu.Zag) 4) цвет фона в стиле Bar. В переменной Menu.Fon[1] задан тип фона(см. setfillstyle), а в Menu.Fon[2] цвет фон. 5) Цвет пассивных и активных кнопок. Menu.Cin - cursor in(курсор внутри) Menu.Cout - cursor out(курсор вне) Функция SimpleMenu: создает меню и обробатывает сигналы пользователя: стрелка вверх: сдвинуть указатель вверх стрелка вниз: сдвинуть указатель вниз Enter : выбрать выделенную кнопку. Функция возвращает номер выбранной пользователем кнопки. Примечание : модуль использует какой-то BGI шрифт, не помню какой точно. Прошу не судить строго, я тогда не знал ни о каком ООП, мышь на паскале казалась нереальностью... :p2: Сообщение отредактировано: volvo - -------------------- Доброго времени суток.
:nnn: |
NightPaladin |
![]() ![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 67 Пол: Мужской Репутация: ![]() ![]() ![]() |
Красиво - мой респект Дож.
Если Wait надо шоб полная симуляция менюшки - ну с управлением и т.д. то щас пойду усовершенствую... 2Дож А почему ООП, мышь можно и встроенным ассемблером делать к сожалению на память не воспроизведу, но можно и найти - тя интересует? -------------------- На горе лежит дискета
У неё испорчен boot Через дырочку в конверте Её вирусы грызут |
Дож |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата А почему ООП, мышь можно и встроенным ассемблером делать к сожалению на память не воспроизведу, но можно и найти - тя интересует? Я тебя недопонял. -------------------- Доброго времени суток.
:nnn: |
NightPaladin |
![]() ![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 67 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата ни о каком ООП, мышь на паскале казалась нереальностью Я эб этом, что мышь к паскалю можно приспособить с помощью встроенного ассемблера, и ооп здесь ни причём -------------------- На горе лежит дискета
У неё испорчен boot Через дырочку в конверте Её вирусы грызут |
Дож |
![]()
Сообщение
#11
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
ААА! Да, насчет мыши я все уже хорошо знаю, но год назад не знал. А насчет ООП, если бы я об нем знал, то создал бы объект, например, TMenu, в который бы входили все эти поля и функция SimpleMenu. И была бы возможность создавать не одно меню, а много! Хотя, здесь не много исправлять нужно.
Цитата А почему ООП, мышь можно и встроенным ассемблером делать к сожалению на память не воспроизведу, но можно и найти - тя интересует? Да, нет наверно, у меня рядом книжка по паскалю лежит и в FAQ про это говорится(FAQ). Сообщение отредактировано: Дож - -------------------- Доброго времени суток.
:nnn: |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Кого интересует меню с ООП - смотрите здесь: Меню - ООП
|
Wait |
![]()
Сообщение
#13
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(NightPaladin @ 15.05.05 16:50) Если Wait надо шоб полная симуляция менюшки - ну с управлением и т.д. то щас пойду усовершенствую... Усовершенствуйте, плиз, если Вам не трудно, буду очень благодарен. Мне это меню нужно для первой страницы игры В тексовом режиме я его умею делать, но это не то - для первой страницы нужна графика... Мне надо, чтобы управление было попроще без всяких там мышей, ассемблеров... чтобы был переход на метки Новая игра, Справка, Выход... Очень хотелось бы... |
Wait |
![]()
Сообщение
#14
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Или кто-нибудь... напишите это мне, пожалуйста. Очень прошу. Надо побыстрее :molitva: :molitva: :molitva: :molitva: :molitva: :molitva:
|
Дож |
![]()
Сообщение
#15
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну, что тебя не устраивает здесь:
Код Unit FMenu; Interface Type menu=record But:byte; button:array[1..8] of string[22]; Cin,Cout:integer; Fon:array[1..2]of integer; Zag : string[10]; end; Var N : menu; Function SimpleMenu : byte; IMPLEMENTATION Uses Graph,crt; Function SimpleMenг : byte; Var i,j:integer;; C:char; Y:1..8; BEGIN SetFillStyle(N.Fon[1],N.Fon[2]); Y:=1; C:=' '; While ord( C )<>13 do begin i:=0; With N do begin settextstyle(4,0,8);{перенисите нужный BGI шрифт!} setcolor(Cout); Bar(0,0,640,480); OutTextXY(20,5,Zag); settextstyle(4,0,5); While i<>But do begin i:=i+1; If i=Y then setcolor(Cin) else setcolor(Cout); OutTextXY(20,i*TextHeight(N.Button[i])+60,N.Button[i]); end; end; C:=Readkey; Case ord( C ) of 72:If Y<>1 then Y:=Y-1 else Y:=N.But; 80:If Y<>N.But then Y:=y+1 else Y:=1; end; end; simpleMenu:=Y; end; BEGIN End. А? Назови конкретно, что нужно исправить... -------------------- Доброго времени суток.
:nnn: |
Дож |
![]()
Сообщение
#16
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Кого интересует меню с ООП - смотрите здесь: Меню - ООП Не компилируется Graph... Цитата(console) graphix.pas(9,11) Fatal: Can't compile unit GRAPH, no sourcer available ![]() -------------------- Доброго времени суток.
:nnn: |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Ну так ты в ту же директорию GRAPH.TPU скопируй... Кстати, я не тестировал эту программу под FPC, когда я ее писал даже TP7 еще не было...
|
Дож |
![]()
Сообщение
#18
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не получается, GRAPH.TPU там уже был... Та же ошибка...
![]() -------------------- Доброго времени суток.
:nnn: |
-= M0hs =- |
![]()
Сообщение
#19
|
Гость ![]() |
|
Дож |
![]()
Сообщение
#20
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
-= M0hs =-
тема потеряла актуальность ![]() Я даже не помню о чем идет речь. -------------------- Доброго времени суток.
:nnn: |
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 6:23 |