Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.63 MB
Время: 0.035 c
1-1103538071
Mishenka
2004-12-20 13:21
2005.01.09
Unit DesignEditors


6-1098390112
первый!
2004-10-22 00:21
2005.01.09
Прием разных пакетов на Один порт


3-1102346246
zunder
2004-12-06 18:17
2005.01.09
Как происходит master.Post в master-detail ?


3-1101964594
Sirus
2004-12-02 08:16
2005.01.09
Нужно подробное описание работы объединения JOIN


3-1102480164
_sulent
2004-12-08 07:29
2005.01.09
Genereal SQL error





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский