Форум: "Игры";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизПросмотр удаленного объекта Найти похожие ветки
← →
Cash © (2004-09-28 17:23) [0]Обрисуем сабж.
- Есть у нас карта, большая карта, такая, что в экран не влезает :).
- Есть некий объект, который находится за пределами экрана.
? Какнибудь можно взять изображение карты с этим объектом и поместить
на экран. Вроде видео съемки.
! Если можно, то ссылки, примеры, и т.д.
← →
cyborg © (2004-09-29 09:27) [1]Можно - нарисуй на экране кусок карты и этот объект.
← →
Omar2002 (2004-09-30 10:21) [2]Сделай так же как и с обычным- видимым игровым полем. Выведи еще один такой кусок экрана, только меньших размеров(естественно с другими координатами) Конечно это уменьшит скорость, но все зависит от размера этого просмотрового окна.
← →
BaDeVlad (2004-09-30 11:39) [3]Хоть бы тип игры указал! Если это "сотовая" карта, то все очень просто. Каждому типу "клетки" карты будет соответствовать точка определенного цвета на миникарте. Координаты объектов накладываешь тоже точками определенных цветов...
← →
Colt1978 (2004-09-30 13:43) [4]эта карта у тебя что представляет ?
← →
Cash © (2004-09-30 15:17) [5]BaDeVlad: 2D, предназначена для сети, возможно аркада, хотя не тянет.
Но речь идет не о миникарте, ее я уже написал, а о объекте, за которым следит камера и отображает куда мне надо.
Colt1978: "STD" набор спрайтов, отрисовывающихся только на видимой части экрана.
А кусок для перерисовки размерами ~[120x120]. Не много, но достаточно.
← →
Colt1978 (2004-09-30 15:32) [6]может глупость спрашу, а что тебе мешает камеру перемещать ?
← →
Cash © (2004-09-30 18:37) [7]Дык смотри.
- Есть спрайт плеера, во время движения камера следит за ним.
- А остановился плеер, можно камеру самолично ворочить.
- Так вот тут и вступает в действие маленькое окошко с окружением плеера.
Чтоб не зашиб никто, пока по карте гуляет.
← →
Cash © (2004-09-30 18:40) [8]Да вот еще.
Прорисовку этого окошка я наметил делать только, если спрайт плеера, будучи остановленным, скрывался из видимой области экрана.
← →
П7 (2004-09-30 22:17) [9]Это смотря на чём пишешь. Поэтому конкретно сказать не могу, но так или иначе можно отрисовать (отрендерить) нужный тебе кусок уровня в отдельный спрайт (текстуру), а затем выводить...
В чём проблема-то заключается?
← →
Cash © (2004-10-01 19:15) [10]П7 Пишу на Omega 7.
А проблема в том, что Вся карта прописана так:
За ненадобностью остального кода опускаю....
TBackGroundSprite = Class(TSprite)
Private
FChips: array of array of integer; // Само сабой динамический
Public
Procedure Draw; override;
end;
Procedure TBackGroundSprite.Draw;
var
a,b,i,j,mi,mj: integer;
begin
if not MapSized then exit;
j:=round(x) div FXPixels;
i:=round(y) div FYPixels;
if (FXSize*FXPixels) > Application.MainForm.Width then
mj:=j+(Application.MainForm.Width div FXPixels)
else mj:=FXSize-1;
if (FYSize*FYPixels) > Application.MainForm.Height then
mi:=i+(Application.MainForm.Height div FYPixels)
else mi:=FYSize-1;
for a:=i to mi do begin
for b:=j to mj do begin
image.Draw(round(X)+(FXpixels*b),round(Y)+(FYPixels*a),FChips[a,b]);
end;
end;
end;
Из этого мы видим, что на отрисовку поступает только видимая часть экрана.
Проц. Draw имеет параметры (X,Y,DrawIndex: integer;).
А из этого мы видим, что FChips является только носителем индекса данной клетки.
Но когда я создал проц. для отрисовки куска по координатам и последующей передачи его в качестве параметра проц. {Ниф.} ничего не вышло, и не выходдит.
← →
П7 (2004-10-04 08:57) [11]Я не знаю, что такое Omega 7, но предположу, что это клон или надстройка DirectX.
Посему вот что нужно сделать:
1. Создаёшь отдельную поверхность для выводимого куска
2. Выставляешь глобальные координаты смещения карты относительно экрана равными точки начала вывода куска
3. выводишь карту на созданную поверхность учитывая размер экрана, который в данном случае равен не разрешению экрана, а размеру нужного тебе куска
Всё, с на этой поверхности то, что тебя интересует.
Затем выводишь эту поверхность на экран, в нужном тебе месте. Перерисовывать её можно только в случае необходимости, что сэкономит ресурсы.
ВотЪ! (:
← →
Cash © (2004-10-04 14:42) [12]П7 Правильно предположил.
Я тут покопался в его сырцах и вот, что нашел:
- если это о чем то говорит, то у спрайта под Омегой есть св-во
Image: IDirect3DTexture8;
- При отрисовке спрайта, само собой, вызывается метод
FSprite.Draw(Self.Image, @LocRect, @SVector, @RVector, Rotation, @Vector, D3DColor_RGBA(Red, Green, Blue, Alpha));
где:
- FSprite: ID3DXSprite;
- Self.Image = Image: IDirect3DTexture8;
- Vector, SVector, RVector: TD3DXVector2;
Вобщем все так, а следовательно можно предположить, что Омега
может быть применена при разработке 3D игры.
← →
П7 (2004-10-05 10:26) [13]Ну так ты реализовал вывод куска или как? Если нет, но очень хочется, то можешь мне на мыло скинуть вот что:
1. Эту самую -А-мегу 7 (:
2. Исходниксвоего проекта или работающий исходник того, что тебе нужно изменить
3. Ридми какое-нибудь или описалого того, что нужно поточнее...
ВотЪ! (:
← →
Cash © (2004-10-05 11:13) [14]П7 Не выходит.
При отладке смотрю ширину и высоту возвращаемого куска, а Debuger показывает [0,0]. т. е. скин спрайта после загрузки из источника TPicture хранится в св-ве Image (см. [12]), а Picture: TPicture (источник) опустошается чтоли.
Как смогу, вышлю все в полном комплекте.
← →
П7 (2004-10-05 11:31) [15]А зафигом тебе TPicture?
Как ты его создаёшь?
← →
Cash © (2004-10-05 13:39) [16]Прошу прощения за не полную демонстрацию кода.
П7: Pictupe используется (по моему) в качестве некоего буфера или средства загрузки изображений с файлов, записано в св-вах класса TImageItem (аналог TPictureCollectionItem у DelphiX).
← →
П7 (2004-10-05 14:04) [17]Ну, вероятно это некорректная работа с графикой, а не невозможность применения описанного мной метода решения твоей проблемы. Т.е. ты хочешь сказать, что ты не можешь в этой Омеге манипулировать спрайтами? Тебе ведь нужно динамически нарисовать спрайт и всё...
← →
Cash © (2004-10-05 17:54) [18]Точно. Ну вот держи Омегу. ~1.2 Mb
Там внутри есть исходники и Туториал.
← →
П7 (2004-10-05 18:08) [19]Омегу я уже качнул.
Вот тебе такое предложение: почему бы не сделать заранее спрайтов-подложек с изображением местности, на которые выводить необходимые тебе объекты? (:
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.038 c