![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактор карт в DelphiX [Delphi, DelphiX, Windows]
Аццкий_рыцарь:) © (2006-01-24 01:15:00)я наверное уже задолбал вас со своими тупыми и ламерскими вопросами :)
вот вопрос :)
Расскажите мне плиз как создавать редактор карт в DelphiX. Тоесть, как делается так что потом карта сохраняется в отдельный файл, а потом загружается?
Домовенок (2006-02-04 22:59:00) [21]> Cash © (04.02.06 11:36) [83]
Не забудь прикрутить VSync в настройки своей игры :)
Аццкий_рыцарь:) (2006-02-04 17:10:00) [22]Я неправильно выразился:) вернее ФПС сильно падает, а вообще-то... нафиг мне этот свет сдался? :) я вожусь с ним неделю и ничего толкового не добился :(
Cash (2006-02-04 16:40:00) [23]Аццкий_рыцарь:) (04.02.06 15:19) [88]:
Порядочный глюк - это вполне вообразимая вещь! Его видно четко и ясно,
иначе это не глюк, а последствие неправильной последовательности
нажатий клавиш. Одним словом надо бы описать. Глюки то есть.
Аццкий_рыцарь:) (2006-02-04 15:19:00) [24]воть:
Procedure Tobjectdo.DoMove(MoveCount: Integer);
begin
inherited DoMove(MoveCount);
if playervector<>9 then
begin
X:=grass.x+xobj;
Y:=grass.y+yobj;
end;
collision;
end;
ну смотри, если я через surface рисую на спрайте с картинкой свет только когда create, то прога не глючит из-за альфы, потому что я рисую там один раз, только вот свет смешивается с задним фоном некрасиво. А если я в Dxtimer ставлю рисовать постоянно этот свет ТО ГЛЮКИ НЕВООБРАЗИМЫ!
Cash (2006-02-04 14:54:00) [25]Аццкий_рыцарь:) (04.02.06 14:44) [86]:
Гы-гы-гы... мне нужен полностью работоспособный класс, так что и DoMove
тоже надо огласить. Дело в том, что его надо будет бросить в модуль с
классом карты, для этого надо его полностью переписать. Поэтому мне и
нужен он весь с методами.
А сто ты имеешь ввиду под "нарисовать на спрайте"?
Не, свет, как и все остальное должен перерисовываться.
И... ето.... ужас прям какой то. Сперва Protected, потом Private.
Издевательство над бедным кодоанализатором какоето! :)))
Аццкий_рыцарь:) (2006-02-04 14:44:00) [26]У нас пока что общая :) 1 курс техникума :)
вот класс:
type
TObjectdo = class(TImageSprite)
protected
procedure DoMove(MoveCount: Integer); override;
private
xobj:integer;
yobj:integer;
questprogress:integer;
isclickable:boolean
end;
и кстати, насчет освещения...
мне получилось сделать как тут говорили, но мне кажется что будет легче и меньше глюков, если только раз нарисовать этот свет на спрайте, а потом уже перерисовывать. Только у мну не получается одна вещь... Как сделать, чтоб у спрайта рисунка небыло, всмысле картинки, но рисовать на нем можно было. Я пытался делать типа рисунок белый квадрат, и транспарент включал на белый, но когда я drawadd, на него :), то свет смешивается с воном и получается резкий переход.
Cash (2006-02-04 14:32:00) [27]Аццкий_рыцарь:) (04.02.06 14:30) [84]:
Физик много бывает, какая именно?
Аццкий_рыцарь:) (2006-02-04 14:30:00) [28]ФИЗИКА - 5 !!!! ААА!!!!!! все, ща похаваю и выложу код с ObjectDo :)
Cash (2006-02-04 11:36:00) [29]Домовенок © (04.02.06 11:17) [82]:
Ну... как знаешь, Call Of Duty у меня без VSYNC идет, нравится!!!!....
А нерадивые юзвери с кривыми и уж очень старыми мониторами пусть на
этот самый VSYNC и надеются. Он вроде для них и для ну очень
требовательных к видеоотдаче людей сделан.
"Вертикальная синхронизация поможет избежать некоторых дефектов в
видеопередаче..."
Большой оборот кадров говорит о легкости и быстроте кода. Можно и
подумать о какой нибудь фиче для улучшения гейминга! А если у тебя
при выводе 120 примитивов оборот составит около 80 - 90 кадров, то
время думать не о фичах, а о том, что к хирургу пора, руки к плечам
с пятой точки перешивать!
Домовенок (2006-02-04 11:17:00) [30]> Cash © (04.02.06 09:25) [81]
У меня вообще-то нормальный монитор :).
А ты игру пишешь для себя? Или пользователи с неправильным монитором у тебя в расчет не идут? И кстати правильно тебе написали, сколько бы фпс у тебя не было, визуально это будет выглядеть как 100-120.
*Извиняюсь за оффтоп.
Cash (2006-02-04 09:25:00) [31]Домовенок © (04.02.06 00:14) [80]:
Не на некоторых машинах, а на мониторах с низкой вертикальной разверткой.
В таких случаях либо VSYNC либо преобрести качественный монитор.
Аццкий_рыцарь:) (03.02.06 13:40) [78]:
Мне этот класс нужен для завершения модуля.
Это будет модуль твоей карты, все как надо + возможность
сохранения/загрузки в спец. формат файла.
Домовенок (2006-02-04 00:14:00) [32]> Cash © (01.02.06 12:32) [63]
> Люблю текстурные курсоры, и когда скорость меньше
> 100 fps при резких движениях мышью курсор начинает скакать по полю.
> Зрелище не слишком лицеприятное, поэтому предпочитаю держать fps
> как можно ближе к идеальному.
Идеальный FPS считается 60-80... На некоторых машинах при FPS более 100 картинка неровно перерисовывается и изображение рябит. У меня такая проблема была, например в Call Of Duty - играть было не возможно, спас vsync в опциях игры. Много где еще с аналогичными проблемами сталкивался.
Shirson (2006-02-03 14:04:00) [33]Физика - рулез :)
P.S. Сорцов нет, я же сказал, что закрыл проект не сохраняя.
Аццкий_рыцарь:) (2006-02-03 13:40:00) [34]Смогу только завтра утром, тошо ЭКЗАМЕН, НАХ! АААА!!!!!!!!! ФИЗИКА, ШОБ ЕЁ!
Cash (2006-02-03 10:01:00) [35]По правилам - это типа с понтами, примерно с такими:
Не ObjectDo (не понятно, что этот класс из себя представляет), а
TNPCObject (говорит отом, что это тип [T], а не переменная,
о том, что это объект НПЦ [перевод дальнейшего названия])
В [44] я ссылку дал на сайт, там и про это все расписано, только,
как говорится, расписано как для дебилов. Я читал и потехоньку
создавалось впечатление, что автор меня за дебила принимает...
или за женщину. 8)
"первая буква обязательно 'T', а вторая такая то...."
Выпиши сюда или кинь на WebFile модуль, где этот тип описан.
Нужно его полное описание со всеми методами и т. д.
Аццкий_рыцарь:) (2006-02-02 23:15:00) [36]И ПРОСЬБА К SHIRSON`у !!
скинь плиз на вэбфайл исходник, каким образом ты реализовал свет в DelphiX. А то я через drawadd вывожу, то там где должен быть задний фон спрайта (transparentcolor у него := true), у меня там смешивается... короче, СКИНЬ ПЛИЗ!
Аццкий_рыцарь:) (2006-02-02 19:29:00) [37]По правилам не назвал (которых я незнаю :) ) потому, что мне так удобней:)
А на тех файлах его нет :( я просто там создал левые спрайты, чтоб проверить как все записывать и грузить
Cash (2006-02-02 16:12:00) [38]Аццкий_рыцарь:) (02.02.06 13:25) [73]:
Класс ObjectDo (кстати, почему не по правилам назван?) имеется в
тех двух проектах, которые ты на WebFile кинул?
Аццкий_рыцарь:) (2006-02-02 13:25:00) [39]НЕ
У меня 3 спрайта
1) Это карта grass=class(TBackGroundSprite); Тайловая, в которой её картинка повторяется (это трава, земля и т.д),
2) второй нетайловый, просто ОДИН ЗДОРОВЫЙ СПРАЙТ, картинка которого маленький квадратик белого цвета, а transparentcoor у него включен на белый, и этого спрайта мы не видим, но на именно этом бэкграунде я рисую трупов и т.д.
3) Это спрайт препятствия ObjectDo=class(TImageSprite). Им может быть домик, камень или если поставить public переменную в нем boolean NPC:=true, то этот спрайт является НПЦ, но он не перестает быть препятствием :) (об него тоже надо упираться как игроку так и монстрам)
Cash (2006-02-02 10:12:00) [40]Аццкий_рыцарь:) (02.02.06 09:33) [71]:
То есть карта состоит из одного тайла, под размер экрана?
А что тогда ты в ней изменяешь?
И Image у препятствий - выбираешь по имени картинки?
Или по ее индексу в ImageList?