Сообщение от DeniSS1:
Похоже, и правда на DirectDraw переходить придётся.
DirectDraw прошлый век.
Хочешь без геммороя масштабировать, поворачивать, накладывать освещение забудь про DirectDraw.
[Ответ]
dn2k4 22:06 14.04.2009
Сообщение от DeniSS1:
теперь это 2d-аркада, дуэль двух летающих тарелок
Сори, навеяло =)
Сообщение от :
Каморка папы Карло - на стене висит кусок холста, на котором пляшет нарисованный огонь. Старый плотник неспешно строгает полено:
- Воооот какой мальчишка будет, смышлёный, красивый...
- Ы-ых! Девчонка...
- Ы-ых! Безногая, но работящая...
- Ы-ых! Собачка...
- Ы-ых! Лягушка...
- Ы-ых! Ладно, черт с ним - брелок...
Ну, я так понимаю, чтобы была прозрачность, надо её для начала включить (аналогично делаю в директХ в дельфях)...
Как выяснилось из гугла, делается это (так же аналогично) парой простых команд, но есть одно НО: данный пример немного усложняет (скорее, запутывает) тем, что здесь используется Depth Testing, из-за этого прозрачность текстуры всё равно в некоторых случаях выглядить некорректно (во всяком случае, я хз как сделать правильно). Т.е. сам пример выбран немного хреновый, нам ведь 3D нафиг не надо по идее (там уж лучше моделями делать). Щас немного переделаю и выложу. Хоть С++ чуток вспомню
P.S. Как в С++ написать вспомогательную процедуру внутри другой процедуры аналогично Delphi?.. Чот не получается... Ато неудобно ппц.
[Ответ]
Gillbert 19:59 17.04.2009
Ну вот что-то типа того. Правил на CodeBlocks, ну надеюсь не будет из-за этого нестыковок... Пример с той самой злополучной шашкой ) Только одного не пойму - как в этом примере могли быть картинки с альфой, если она вообще нигде не была включена? Что-то вы путаете... В этом примере всегда выводились непрозрачные квадратные картинки... Или я всё еще не понимаю чего-то?
Ну и сразу по старой проблеме: чтоб размер окна нельзя было менять, вместо dwStyle=WS_OVERLAPPEDWINDOW; ставим dwStyle=WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
Изображения
Всем спасибо, я разобрался сам. Просто сделал фон вокруг летающей тарелки абсолютно чёрным в Paint-е, а затем сделал так, что чёрные байты не выводятся. :-D Да здравствует Microsoft и DirectX!
P.S. по старой проблеме - режим теперь полноэкранный.
P.P.S. Почему я не могу выложить архив чуть меньше 1 mb?! Соединение с сервером обрывается.
[Ответ]
Gillbert 20:37 18.04.2009
Пора бы уж как-то определяться между DirectX и OpenGL, писать то и на том и на этом удобно, только всё же надо остановиться на чём-то [Ответ]
C71Me 21:38 18.04.2009
Ребят, а можете хотя бы примерное описание игры написать+на чем пишете ?
[Ответ]
DeniSS1 09:05 19.04.2009
C71Me, пишу на С++ и DirectDraw, ввод через WinAPI. Пока задача - сделать две летающие тарелки, одна из который летает по рандомайзу, другая управляется с клавиатуры. При движении должна наблюдаться физика, т.е. будет ускорение и замедление при удерживании клавиши, при попытке поворота из разогнанного состояния тарелка будет описывать дугу, при столкновении они будут отталкиваться друг от друга.
Есть, конечно, и продуманная задумка игры на этой основе, но пока я не сделаю эту основу, ничего не скажу [Ответ]
C71Me 10:24 19.04.2009
Имхо у FastGraph возможностей больше, чем у DirectDraw..
Насчет игры. Нужно уничтожить тарелку противника, управляемой ИИ ?
[Ответ]
DeniSS1, че за хрень? Хоть сделай как в уроках у NeHe, хоть и говорят, что не очень кошерно, но лучше чем у тебя.
[Ответ]
DeniSS1 20:05 08.05.2009
Yandex, 0_о Nehe делает на DirectX? Просто я не уверен, что проблема в получении сигналов с клавиатуры. М.б. что-то я не то нахимичил с выводом на экран.
[Ответ]
xxx-men 20:22 08.05.2009
а хде инопланетяне???
Сообщение от :
backsurf->BltFast(ufo1x, ufo1y, imagesurf2, 0, DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT);
primsurf->Flip(NULL, DDFLIP_WAIT);
ты уверен что первую поверхность флипать надо?
[Ответ]
Yandex 20:56 08.05.2009
DeniSS1, NeHe на OpenGL разумеется, но там здравые мысли по опросу клавы можно усмотреть. Каркас для Dx я бы у SDK-шных приложений посмотрел.
[Ответ]
DeniSS1 21:48 08.05.2009
xxx-men, да, незачем, только лишнее время тратится - фон и так один и тот же
backsurf->Blt(&dst, imagesurf, 0, DDBLT_WAIT, 0); - это фон Yandex, посмотрю и попробую сделать ввод на DirectInput наверное.
[Ответ]
DeniSS1 14:37 09.05.2009
Исправил 2 бага, и всё заработало. Ввод всё тот же (онли клавиатура на WinAPI), следующая демка будет с поддержкой инерции (зачатки физики) и решением проблемы мгновенного исчезновения при подходе к краю.
[Ответ]
DeniSS1 14:48 10.05.2009
максим2007, чувствую, до ИИ ещё как раком до Пекина...
Вот то, что есть на данный момент. До введения энергии для корабля и её распределения по системам (т.е. геймплея) осталось немного - но перед этим нужно решить проблему исчезновения НЛО при подлёте к краям. Она должна уходить за них постепенно - на практике если зашёл за край небольшой участок, исчезает всё.
Если кто может предложить решение - буду очень рад. Знаю, что нужно что-то делать с областями источника копирования и приёмника копирования, но что именно - хз.
P.S. Кстати, в процессе экспериментирования получил интересный эффект - тарелкой можно рисовать змей! (или червей). Выходит очень реалистично.
Изображения
RECT inRect;
RECT outRect;
if(outRect.right>=0 && outRect.left<800 && outRect.top<600 && outRect.bottom>=0)
{
if (outRect.right>800)
{
inRect.right+=800-outRect.right;
outRect.right=800;
};
if (outRect.left<0)
{
inRect.left-=outRect.left;
outRect.left=0;
};
if (outRect.bottom>600)
{
inRect.bottom+=600-outRect.bottom;
outRect.bottom=600;
};
if (outRect.top<0)
{
inRect.top-=outRect.top;
outRect.top=0;
};
SecondarySurf->Blt(&(outRect),ObjOffScreen,&(inRect),DDBLT_WAIT | DDBLT_KEYSRCOVERRIDE ,&ddb);
};
RECT inRect; //источник
RECT outRect; //координаты на экране
[Ответ]
The_God 16:45 10.05.2009
есть кто с опытом работы от 4лет в геймдеве ? а то есть вакансия программиста с++ с зп 50++ тр, работа удалённая постоянная, если кому интересно пишите в аську 150504044 или приват http://dtf.ru/vacancy/info.php?id=9438[Ответ]
xxx-men 16:55 10.05.2009
Сообщение от The_God:
если кому интересно
интересно
Сообщение от The_God:
работа удалённая
еще интереснее
Сообщение от The_God:
с опытом работы от 3лет в геймдеве
У меня опыт 3 года. Возьмёте?
P.S. Хотя бы опишите в общих чертах, что за проект.
P.P.S. xxx-men, спасибо, попробую.
[Ответ]
DeniSS1 22:12 14.05.2009
Вплотную подошёл к физике. Сейчас имеется 2 тарелки, нужно сделать так, чтобы их столкновения выглядели реалистично. Имеются: координаты тарелок, значения вертикальной и горизонтальной скоростей (т.е. на сколько пикселей будет смещаться изображение). Пробовал много вариантов, но в большинстве случаев наблюдается залипание. Помогите, кто чем может.
В физике не силён, но думаю, это нужно сделать как-то через импульсы...
[Ответ]
Yandex 23:13 14.05.2009
DeniSS1, помогаю - физика седьмой класс Закон сохранения импульсов.
[Ответ]