|
|
#341 | ||
|
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,375
Репутация скрыта
|
Конечно, можно. Только что ты понимаешь под анимированной текстурой? Если просто "запихнуть, а там Irrlicht сам разберется", то все не так просто. Тебе нужно реализовать это все самому. Я, например, уже сделал возможность создания анимированной текстуры при помощи пиксельных шейдеров (это, вообще говоря, элементарно), а теперь занимаюсь делом посложнее - хочу перевести вышеупомянутый пример под Irrlicht и сделать такую текстуру из видеофайла. --- Все! Проблема решена. Я сделал класс, который генерит в Irrlicht текстуру на основе видеофайла, то есть гипотетически можно ренедерить видео прямо на юнита, например. Кого интерисует, как такое сделать - спрашивайте, помогу.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) Последний раз редактировалось pokibor; 14.12.2006 в 17:13. |
||
|
|
|
|
|
#342 | ||
|
Юзер
Регистрация: 06.11.2005
Адрес: кому надо спросит.
Сообщений: 140
Репутация: 28
|
Кто-нибудь знает, как в Newton-е делать Character'а?
Ну аналог FPSCamer-ы c коллизией в ирлихте. Ирлихтовский вариант меня не устраивает, часто бывает так, что персонаж застревает в полу, и не поднимается по лесенкам. У Newton-а есть конечно пример, как это сделать, но я в нем не смог разобраться, потому что пример пользует для вывода картинки на экран какие-то сторонние библиотеки, все процедуры свалены в кучу... вобщем нечитабельно это для меня ещё. Пытался делать по своему, но это больше похоже на катание на воздушной подушке. Помогите, не знаю что делать.
__________________
Эта подпись всех задолбает!!! Ну а хотя, кто её знает? |
||
|
|
|
|
|
#343 | ||
|
Guest
Сообщений: n/a
|
Люди, кто знает как и хочет помочь в создании игры. Пишем вдвоем 3D RTS на С++. Есть ландшафт, UI, юниты и основы AI, вражеский AI в разработке. Нужна графика и сценарий. Если есть кто-то кто программирует на C++ под DirectX, и имеет недюжинный опыт, то откликнитесь. И вопрос, как лучше делать AI врага в игре : шаблоны, нейронные сети, конечный автомат?
|
||
|
|
|
#344 | |||
|
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,375
Репутация скрыта
|
Цитата:
. Впорочем, подход хороший. Потому что обычно новички дальше сценария так и не уходят.Цитата:
.Цитата:
Итак, я рекомендую обратить внимание на CBR и нечеткую логику. Возможно также попробовать сделать многоагентную систему, но это скорее уже не к AI противника имеет отношение, а к индивидуальному AI юнита. Хотя как раз его и конечным автоматом можно сделать. но многоагентная система интереснее - например, сделать так, чтобы он мог "общаться" с близлежащими своими. Если "свой" видит врага, а юнит нет, то "свой" ему может сказать об этом. Таким образом, если выстроится цепочка юнитов и враг подойдет с фланга, то о нем узнает вся цепочка, а не только стоящие рядом с местом нападения юниты. P.S. Как вы понимаете, присоединится я к вам не могу - у меня свой проект есть. Но если будут вопросы - обращайтесь.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) |
|||
|
|
|
|
|
#346 | ||
|
Юзер
Регистрация: 06.11.2005
Адрес: кому надо спросит.
Сообщений: 140
Репутация: 28
|
я конечно не уверен, но можешь попробовать:
Цитата:
Я код взял из примера для Newton-а, с выводом графики на иррлихте. Ты конечно умный человек, но на всякий случай(а так же для потенциальных читателей) скажу, что этот код нужно засовывать в цикл, в котором ты выводишь графику на экран.
__________________
Эта подпись всех задолбает!!! Ну а хотя, кто её знает? |
||
|
|
|
|
|
#348 | ||
|
Новичок
Регистрация: 04.12.2006
Сообщений: 18
Репутация: 1
|
Господа, просьба к вам не бросать в меня тухлыми помидорами, называть нубом и ламером можно (ну не программер я, не программер).
Однако не мог бы кто-нибудь плюнуть в меня ссылочкой или отписать как же все-таки правильно пользоваться иррлихтовским хелпом? У меня сейчас встала проблема вычитать конфиг-файл. Хочу для этого пользоваться ирллихтовскими классами. Я так понимаю мне для этого нужно воспользоваться вот этим: Код:
virtual s32 irr::io::IReadFile::read ( void * buffer, s32 sizeToRead ) [pure virtual] Reads an amount of bytes from the file. |
||
|
|
|
|
|
#349 | ||||
|
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,375
Репутация скрыта
|
Цитата:
Цитата:
Цитата:
Кстати, обычно под "конфигом" понимают текстовый файл, а не двоичный, посему пользоватья функциями для чтения двоичных файлов не совсем удобно. Цитата:
Но на твой вопрос отвечу. Очевидно, что данная функция (точнее, метод интерфейса IReadFile) читает из файла несколько байт (их количество определяется переменной sizeToRead) начная с текущей позиции указателя и записывает их в буффер, ссылка buffer на которою сюда также передается. Очевидно, что под буффер нужно выделить память не меньшую, чем количество запрашиваемых байт. Если ты не понял ничего из написаного выше мною (а так, скорее всего, и есть) и не знаешь, что такое интерфейс, за чем он нужен и как выделять память в указатель (а также что за тип такой void), то я не буду устраивать тебе тут курс языка C++, а пошлю в http://forum.igromania.ru/showthread.php?t=23543, где ты сможешь скачать нормальную книгу и изучить-таки C++. А иначе скоро пойдут вопросы "а что такое виртуальные функции", "а как наследовать от класса" и им подобные.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) |
||||
|
|
|
|
|
#350 | ||||
|
Новичок
Регистрация: 04.12.2006
Сообщений: 18
Репутация: 1
|
Цитата:
![]() Что такое файл и как им пользоваться, я знаю. Код:
FILE *configFile = fopen("config.cfg", "r");
char configValues [1001];
memset(configValues, 0, 1001);
fscanf(configFile, configValues);
fclose(configFile); //тупо, но эффективно, 2 минуты на набор кода
Цитата:
Хелп открываю, читаю. Что выполняет каждая функция - написано вполне понятно на вполне читабельном аглицком. Понятно какие параметры даже туда запихивать, какого типа они дожны быть, а вот как их вызывать - совершенно непонятно. Цитата:
А вообще просто попался именно этот пример для вопроса. Минут 15 до написания поста был бы другой пример. Цитата:
В результате получил ответ на совершенно другой вопрос. Еще и скрепленный изрядной долей негодования от "гуру", вместо того, чтобы уточнить или разобраться, что спрашивают, ладно, всякое бывает, и даже посты в топике не соответсвуют теме оного, и с ноги можно не той встать и т.п. Переформулирую и оконкретизирую вопрос с учетом вышенаписанного. Не мог бы кто-нибудь кратко и внято (желательно с минимумом сленговых словечек и профжаргона) объяснить как вызовы функций сообразуются с их описанием в ирллихтовском хелпе? Или ссылкой в меня плюнет. А то на дотнет прийдется перейти, чего бы мне карйне не хотелось бы.
|
||||
|
|
|
|
|
#351 | ||
|
Новичок
Регистрация: 07.03.2006
Адрес: !here();
Сообщений: 38
Репутация: 26
|
о, да, ты это прекрасно продемонстрировал
pokibor правильно сказал. прежде чем читать документацию по движку, не мешало бы документацию по функциям стандатной библиотеки почитать.. этот вызов не делает ничего; из этой ссылки должно быть понятно почему - http://www.cplusplus.com/ref/cstdio/fscanf.html собственно сам вопрос - - функция делает то, что про неё написано в описании.. (что именно из "Reads an amount of bytes from the file." непонятно?)
__________________
Use the Darkness that you have inside Последний раз редактировалось L'ombre; 18.12.2006 в 14:32. |
||
|
|
|
|
|
#353 | ||
|
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,375
Репутация скрыта
|
BlueSky
![]() Ой, ржу! С тобой, о великий программист, все ясно! Я-то думал, ты вообще ничего не понимаешь в программировании (ну ошибся, начал учить что-то раньше времени - всякое бывает), а оказывается, ты, что-то понимая, умудрился сесть за построенный на интерфейсах C++ - движок абсолютно без знания объектно-ориентированного программирования (это слегка описывает твое понимание программирования как "нулевое")! Потому что если бы ты его хоть немного знал, то вопроса "как вызовы функций сообразуются с их описанием в ирллихтовском хелпе" (тем более, после того, как я тебе сказал, что это не функция, а метод интерфейса) не могло возникнуть в принципе. Короче, все, что я написал, остается в силе. И ссылка то же. Читай, что такое классы (интерфейс - полностью абстрактный класс), для чего они и с чем их едят. А потом садись за движок, требующий этих знаний. P.S. Уж не знаю, как ты на Дельфи писал (все-таки Object Pascal тоже объектно ориентированный язык), но объектная половина языка явно прошла мимо тебя. Точного определения не существует. В моем понимании движок - грамотно спроектированная и структурированная совокупность классов/интерфейсов/функций, предназначенная для решения некого набора задач разработческого характера. Какие функции он должен обеспечивать зависит от того, какая задача перед ним поставлена (т.е. для разработок в какой области он предназначен).
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) Последний раз редактировалось pokibor; 18.12.2006 в 16:12. |
||
|
|
|
|
|
#354 | ||
|
Новичок
Регистрация: 04.12.2006
Сообщений: 18
Репутация: 1
|
Ну заменить fscanf на fread и все будет работать. Это не суть важно, хотя мне не совсем понятно зачем было в Сях городить такой огород с вводом-выводом.
Перефразировать вопрос больше не буду, ибо вы напрочь не хотите его понимать - для вас это "слишком низкий уровень". А сейчас начнутся крики наподобие "все ламеры руки прочь от ООП", "побойся Страуструпа" и т.п. Однако это не изменит того, что ООП - это просто чуть более удобная организация процесса программирования как такового, с возможностью абстрагироваться от основ, чтобы, потеряв в производительности (с современными мощностями это, обычно, не так уж и страшно, хотя видеть тот же Х3, тормозящий на хай-энд железе просто противно, хотя игра красивая, ничего не скажешь), увеличить простоту создания программ и скорость их создания. Что у нас там есть в ООП: 1. Инкапсуляция 2. Наследование 3. Полиморфизм Итак. 1. Есть переменные глобальные и локальные. Использование только локальных переменных и переопределение их внутри функций и процедур в зависимости от типа, который нужен, а также хранение функций и процедур вне основной программы, даст эффект инкапсуляции. 2. Вызовы одной одной функции в другой, с добавлением своих функций, а другой в третьей, с добавлением своих функций, дает нам наследование, как таковое. 3. Самый простой и доступный пример - функция сортировки, которая получаемое множество данных преобразует к одному виду, после чего им оперирует, а на выходе выполняет обратное преобразование, так получаем полиморфизм. Вот и весь хваленый ООП. Так что можно называть как душе угодно, главное понимать, как это работает. А теперь можете реветь тут как раненые белуги, называть меня последним законченным ламерюгой, ничего не понимающим в программировании, а уж тем более в ООП. Разрешаю. Даже с удовольствием почитаю как-нибудь на досуге. Только не забывайте, что ООП - это всего лишь частный случай системного подхода, не больше и не меньше. P.S. А за ссылочку на книги - спасибо. |
||
|
|
|
|
|
#355 | ||||||||||
|
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,375
Репутация скрыта
|
О, да! Еще как!
Вот только для fread необходимо 4 аргумента, а не 2. Так что работать все равно не будет. И у меня складывается впечатление, что ты сейчас, стремясь показать свои знания, быстренько пытаешься найти что-то, похожее на правильный ответ на вопрос, тогда как сам подобного кода никогда не писал.Цитата:
Цитата:
IReadFile - интерфейс и Irrlicht вообще построен на интерфейсах, значит, скорее всего, объект с таким интерфейсом нужно откуда-то получать, а не создавать самому. Откуда можно получить файл? Из файовой системы. Глаза сами бегут к интерфейсу IFileSystem в хелпе. А откуда получать файловую систему - основополагающий объект? Очевидно, из "главного интерфейса" - IIrrlichtDevice. Так что все в хелпе есть, нужно только обладать базовыми знаниями ООП и уметь читать. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Вывод - механизм наследования делает за тебя часть работы, а на некоторых языках программирования еще и оптимизирует код. Ну и разумеется про естественное упрощение восприятия кода забывать не следует. Цитата:
Цитата:
Цитата:
ООП - основа всей современной концепции программирования, база языков типа Java и C# и простейший путь реализции сложной системы, над которой работает более одного человека. Но ты можешь ползать на четвереньках и утешать себя тем, что езда на автомобиле - лишь частный случай передвижения.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) |
||||||||||
|
|
|
|
|
#357 | ||
|
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,375
Репутация скрыта
|
А зачем? Готовый движок (хороший движок, вроде Irrlicht) представляет собой надстройку над графическими библиотеками, просто ускоряющую процесс разработки без ограничения возможностей. Разработка собственного движка обернется затратой большого количества времени, а нечто лучше Irrlicht все равно не выйдет. К тому же прежде чем писать свой движок, изучить готовый точно будет не лишним!
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) |
||
|
|
|
|
|
#358 | ||
|
Юзер
Регистрация: 13.05.2006
Сообщений: 273
Репутация: 92
|
Цитата:
|
||
|
|
|
|
|
#360 | ||
|
Юзер
Регистрация: 13.05.2006
Сообщений: 273
Репутация: 92
|
Цитата:
|
||
|
|
|
|
|
|