Форум: "Игры";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизПрошу потестировать cyborgengine2d Найти похожие ветки
← →
Magikan © (2004-09-14 10:50) [40]Что-то до боли знакомая ситуация с обработчиками событий...
Верное решение. Одобряю ;)
← →
Колбасьев © (2004-09-14 20:41) [41]
> > [28] Servelat © (13.09.04 18:00)
> Почти всё, что ты написал, там есть :)
> И тайлы и анимации, только это нужно делать ВАМ!
> Если бы я сделал всё в движке, то о движке как таковом небыло
> бы и речи, я ведь не знаю какой формат хранения спрайтов
> вам понадобится и как кадры будут в нём расположены, как
> у меня - кадры горизонтально и направления вертикально (танк
> например так в игре сделан) или как-то по другому.
Хочу заметить, что DirectX например поддерживает .X файлы (думаю известный факт) - которые являются более-менее сбалансированными в плане объем-скорость_загрузки-функциональность. Для подавляющего большинства задач этого хватает. А написанные "свои" форматы часто являются дописками к .X.
Но DX - это даже не движок в данном понимании этого слова. Движки пишуться над ним.
Поэтому пару советов, уважаемый cyborg:
1. Лучше сделать какой-то универсальный формат хранения спрайтов + поставлять функции (и программу) для преобразования из BMP, например, в него. Остальные функции библиотеки будут с ним работать.
2. Добавить дополнительное "место" в спрайт для хранения разной информации - очень хорошо придумано. Но правильней этого бы не делать, так как для организации объектов игры можно использовать список(массив)-запись (создаваемую программистом игры), где один из полей - спрайт. Тогда работ по указателю будет меньше, как и приобразований типов, что возможно на Си выглядит и неплохо, но в Delphi - уродует код (с моей точки зрения - я всегда стораюсь написать элегантней и поменьше).
3. Вот все это и будет движок. А так больше похоже на оболочки для функций API DX сгруппированные по 2 по 3. Несильно помогает, так как все приходиться делать самому, даже утомительные рутинные операции.
Желаю успехов в совершенствовании. Хочется видеть в этом более "мощьный" продукт.
← →
Kind (2004-09-14 21:47) [42]ATHLON 600; RAM 384; TNT2 16MB
На WIN98 и ХР FPS в меню 550 в игре 427
На WIN2000 FPS равен refresh rate монитора
95 недавно удалил, а в 3.11 пробовать не стал :)
← →
cyborg © (2004-09-15 08:52) [43]
> [41] Колбасьев © (14.09.04 20:41)
> 1. Лучше сделать какой-то универсальный формат хранения спрайтов
Чем BMP не универсальный формат спрайта? Лбой редактор поддерживает этот формат.
По пункту 2 не правильная у тебя мысль, массивы зачем-то прилепить, видимо у тея никогда небыло задачи работать с множеством разных объектов и обрабатывать их. Это не сишные замашки - работать с данными, это рутинная работа программиста на любом языке ;). Если ты этого никогда не использовал, то попробуй поработать так, тебе понравится :).
> 3. ... так как все приходиться делать самому, даже утомительные
> рутинные операции.
Если ты возьмёшся за игру, с движком, у которого всё фиксировано - конкретный формат не дающий тебе ничего лишнего сделать, то через месяц-другой ты начнёшь плеваться, что не можешь сделать того-то и того-то, потому, что у тебя нет возможности использовать объект так, как тебе хочется. У меня же сделано так, что с объектом ты можешь делать всё, что тебе угодно. Единственные поля, которые нельзя трогать (изменять значения) в PSprite это Pred, Next, Chain, DataSize и Data, остальное рули как хочешь. На вывод спрайта влияют поля: X,Y,W,H и SrcRect остальные поля под твоё усмотрение, как хочешь их, так и используй.
← →
cyborg © (2004-09-15 09:02) [44]Кстати, картинки можно растягивать, в третьем примере замените:
//Спрайт мышиного курсора:
SpriteMouse :=CreateSpr(0,0,100,100, SurfaceMouse , nil, 0, false, lDown, false);
SpriteMouse^.W:=200;
SpriteMouse^.H:=200;
и
//Отобразить спрайт мышки:
ShowSprite(SpriteMouse, nil);
← →
cyborg © (2004-09-15 09:05) [45]
> [44] cyborg © (15.09.04 09:02)
Только пока с этим глюки имеются, если спрайт за границу экрана уходит, то размеры меняются :). На данный момент так можно фон на весь экран растягивать.
← →
cyborg © (2004-09-15 09:12) [46]
> [43] cyborg © (15.09.04 08:52)
> На вывод спрайта влияют поля: X,Y,W,H и SrcRect
Забыл UseScreenOfset ещё в этот список добавить
← →
Magikan © (2004-09-15 10:19) [47]Даешь исходники в массы!!!
← →
cyborg © (2004-09-15 10:21) [48]
> [47] Magikan © (15.09.04 10:19)
Header-ом обойдёшься :)
Нужны исходники - собирай: статьи на моём сайте+исходники RoboWarz+фантазия ;)
← →
MANGOL (2004-09-15 11:20) [49]а шо за RoboWarz?
← →
cyborg © (2004-09-15 11:25) [50]http://robowarz.cyborghome.ru/
← →
Darthman © (2004-09-15 12:21) [51]>>Header-ом обойдёшься :)
Тоже стыдно за свои каляки-маляки? Потому и прячешь, угадал? :)))))
Если по существу:
Помимо функции заменяющей три обычные - можно же сделать дополнительно функции и классы позволяющие быстро все сделать, может быть и с большими ограничениями. Иногда это удобнее.
← →
Micah'GF © (2004-09-16 14:33) [52]- запускалась она у меня несколько длительно ~30сек. Думаю это не нормально.
- сделай чтобы клавиши обрабатывались исключительно. Т.е. в винде у меня назначено несколько комбинаций клавиш, связанных с Ctrl и стрелками, и при нажатии комбинации в игре все просто встает. При попытке переключиться в другую задачу или закрыть по Alt-F4 выдает "Приложение выполнило недопустимую операцию".
- поиграть так и не удалось.
WinXP, p4-2.4, 512, GF4-Ti4200
← →
cyborg © (2004-09-16 14:37) [53]Нарисовал полноценный пример, игра "Мухи", типа той, что на денди была, пуляешь там летающие объекты. В примере: создание и обработка сцен "Меню", "О программе" и "Игра"; анимация объектов и динамическая работа с ними - противник, пули, взрывы. Выстрелы противника делать не стал, лень, хватит выстрелов игрока, противнику также делать, как и игроку, там даже функцию создания пульки противника сделал.
Плюс в библиотеке добавил функции получения контекста устройства поверхности и получение доступа к пикселям поверхности, не проверял как работает, но должно работать, по идее :)
ftp://cyborghome.ru/CyborgEngine2D/CyborgEngine2D.zip
166 килобайт
Для компиляции примеров нужно скопировать файлы: CyborgEngineHeader.pas и cyborgengine2d.dll в папку с примером. Для работы вашей программы нужно помещать в папку программы файл cyborgengine2d.dll.
В архиве есть скомпилированный пример "Мухи" на Дельфи и на Фрипаскале, почувствуйте разницу ;), кроме размера ничем не отличается. Люди переходите на Фрипаскаль! :)
← →
cyborg © (2004-09-16 14:40) [54]
> [52] Micah"GF © (16.09.04 14:33)
Действительно ненормально :), на такой тачке 30 секунд запускаться, подозрения у меня, что ты там чего-то намутил :).
← →
NikeOLD © (2004-09-16 17:09) [55]Но AV по Alt+F4 это факт.
Устраняй!
← →
cyborg © (2004-09-16 18:50) [56]
> [55] NikeOLD © (16.09.04 17:09)
Непонятно вообще мне, сейчас проверил в ХР переключаю по нескольку раз и в меню и в игре, всё нормально переключается. Загрузил Вин98, то же самое, всё нормально, даже скорость на 30% возросла. Позапускал "Мухи" из примера, попереключал туда сюда в меню, в игре, тоже всё работает и в Хр и в 98-ом.
Мистика :), может всё дело в интеловском процессоре!? :)
Micah"GF и NikeOLD проверьте пожалуйста в примере с мухами ([53] cyborg © (16.09.04 14:37)), если будет глючить, откомпилируйте с отладочной информацией, там может покажет где спотыкается.
← →
NikeOLD © (2004-09-16 22:23) [57]По твовое просьбе:
В 98 все ОК. Но ты же отрубил Alt+F4 (если нет, то у меня вообще не работает комбинация в твоей программе).
Переключение между задачами стабильно и работает. Правда после нескольких запусков, в один из запусков программа выдала ошибку DirectInput и красиво вылетела, но это единичный слчай.
Очень плохо, что запретил Ctrl+Alt+Del. Верни сочетание обратно. Вдруг что сглючит хрен твою прогу прррибьешь.
В остальном впечатление благоприятное.
FPS 33, только в самом начале 50-60, а затем нормализуется.
Системные требования смотри мой первый пост
← →
cyborg © (2004-09-17 09:26) [58]
> [57] NikeOLD © (16.09.04 22:23)
Сейчас в 98-ом опробовал, переключается :), ты не быстро нажимай Alt+Tab, а пол секунды подержи. Ну незнаю что такое там у вас. Джойстик есть? Может дрова видеокарты влияют на это, не знаю, компьютер у меня один, потестировать нормально не могу. Может и версия ДиректХ виновата, шут его знает. Ctrl+Alt+Del в 98 почему-то не работает, в ХР нормально с этим делом.
Товарищи у кого ещё нормально работают эти вещи и ненормально?
← →
cyborg © (2004-09-17 09:29) [59]Может какие нибудь клавиатурные шпионы у вас стоят, вирусы какие нибудь, трояны? Может "умный" переключатель раскладки установлен, ниндзя чтоли называется?
← →
NikeOLD © (2004-09-17 12:54) [60]Ничего лишнего не установлено.
Переключается по Alt-Tab нормально, просто ты не так понял, может я не так выразился.
А вот C+A+D не работает. Компилироавл твои примеры, там тоже все ОК, кроме C+A+D. Может и впрямь 9.0 Direct с 98 виндой парит (глубоко сомневаюсь), тестить надо, а не на чем? DDSCL_ALLOWREBOOT точно выставил? У меня XP нет, может там оно по умолчанию системой перехватывается.
Джойстика нету и вообще это для геймеров с компами выше :(-
На дрова видюхи не жалуюсь.
← →
cyborg © (2004-09-17 18:13) [61]
> [60] NikeOLD © (17.09.04 12:54)
Про ALT+F4 это я не о том подумал, почему-то мне показалось, что вы про Alt+Tab говорите. :)
← →
cyborg © (2004-09-18 17:01) [62]Танчики я убрал, кто опоздал, тот не успел :), кому интересно смотрите [53] cyborg © (16.09.04 14:37)
← →
NikeOLD © (2004-09-19 10:58) [63]Если мне память не изменяет, то какое-то время назад Майкрософт настучала по головам нерадивым разработчикам, блокирующим Alt+F4 в программах, в т.ч. и в играх. Верните комбинацию назад и протестируй на предмет глюков. И Ctrl+Alt+Del тоже.
← →
cyborg © (2004-09-19 11:06) [64]
> [63] NikeOLD © (19.09.04 10:58)
Видимо тебе память изменяет, это отключение предусмотрено самим Микрософт. Выключил специально, и назад не верну, нечего игры по ALt+F4 закрывать! Ctrl+Alt+Del уже включил, на винте лежит :). Если тебе захочется сделать иру чтобы закрывалась, обрабатывай эту комбинацию и закрывай свою игру корректно.
← →
cyborg © (2004-09-19 15:13) [65]Подправил немного.
Ctrl+Alt+Del включил, инициализацию немного доработал - режим работы Software/Hardware, ошибку при инициализации должно корректно обрабатывать.
http://www.cyborghome.ru/index.php?&id=sources
ftp://cyborghome.ru/CyborgEngine2D/CyborgEngine2D.zip
167 килобайт.
← →
NikeOLD © (2004-09-19 18:34) [66]>>Видимо тебе память изменяет, это отключение предусмотрено самим Микрософт.
Не изменяет, но именно после этого она и настучала по головам за использование. Не знаю, чем они это мотивировали, но лично меня сильно раздражает, что нельзя выйти из игры быстро, а надо пройти несколько меню, отвечая на дурацкие вопросы (частень ко по многу раз: "Хотети ли выйти?". Так и хочется взять молоток и по голове разработчика постучать.). Иногда игру надо прекратить мгновенно и Alt+F4 единственный к этому сопособ.
Дело хозяйское, конечно... Я лишь рекомендовал его, но Ctrl+Alt+Del - требование обязательное. Спасибо, что прислушался.
← →
cyborg © (2004-09-20 08:45) [67]
> Не изменяет, но именно после этого она и настучала по головам
> за использование.
Кому, когда настучала? Не сышал такого. И счего это вдруг натучала? Обиделись чтоли, что не могли закрыть? Как-то смешно это звучит, что Микрософт ругает разработчиков игры :)
А хотите ли выйти на то и существует, чтобы случайно не выходили, иначе мат будет стоять вокруг при таком раскладе дел.
← →
NikeOLD © (2004-09-20 09:22) [68]Вот по Alt+F4 точно случайно из игры не выйдешь. Но если надо быстро (шеф идет!), то лучше не придумаешь. А пока из игры в главное меню, оттуда на выход, там еще один вопрос о выходе - запалят. :)
← →
cyborg © (2004-09-20 09:31) [69]В этом случае нужно Alt+Tab нажимать :)
← →
Denis_Ac (2004-09-20 10:48) [70]Всё прочитать не успел... Но есть вопрос Твой движок использует какие средства (OpenGl? если да то какую версии библиотек)
← →
cyborg © (2004-09-20 10:51) [71]
> [70] Denis_Ac (20.09.04 10:48)
Нет. DirectX7 использует, не 3D, а 2D!
← →
NikeOLD © (2004-09-20 16:12) [72]
> cyborg © (20.09.04 09:31) [69]
Если умничать, то по полной. А вдруг у меня единственное приложение - твоя игра, в этом случае Alt+Tab не прокатит. :)
Так что лично я выбираю Alt+F4 :) В смысле всегда добиваюсь, чтобы приложение вело себя как полноценное окно.
← →
cyborg © (2004-09-20 16:55) [73]
> А вдруг у меня единственное приложение - твоя игра, в этом
> случае Alt+Tab не прокатит.
Почему не прокатит, прокатит. Что уж, твой начальник прям лезет в компьютер и смотрит чего у тебя там запущено? И вообще игры на работе не играют, поэтому твои притензии по поводу начальника не катят ;)
← →
NikeOLD © (2004-09-20 18:12) [74]дело хозяйское... ;)
← →
Micah'GF © (2004-09-22 08:38) [75]а помоему хотя бы на время разработки и тестирования Alt-F4 надо включить. А в идеале в файл настроек добавить ключ (или хотя бы ключ командной строки), который позволит разрешать эту комбинацию.
Страницы: 1 2 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.62 MB
Время: 0.044 c