Результаты поиска
| |
Kwant | Дата: Четверг, 12 Июля 2012, 14:49 | Сообщение # 61 | Тема: Вопрос-Ответ (C++) |
почетный гость
Сейчас нет на сайте
| Ну, /SUBSYSTEM: - это опция, которая указывает операционной системе, как запускать исполняемый файл. И как пишет MSDN:
CONSOLE Win32 character-mode application. Console applications are given a console by the operating system. If main or wmain is defined, CONSOLE is the default.
WINDOWS Application does not require a console, probably because it creates its own windows for interaction with the user. If WinMain or wWinMain is defined, WINDOWS is the default.
Quote (Demeron) для Windows не main, а WinMain главная функция В win, WinMain - не босс )
Quote (Lord_Zeon) А вот без аргументов не компилируется. С пустым WinMain - не собрать: int CALLBACK WinMain( __in HINSTANCE hInstance, __in HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nCmdShow );
|
|
| |
Kwant | Дата: Четверг, 12 Июля 2012, 14:12 | Сообщение # 62 | Тема: PHP и C++ |
почетный гость
Сейчас нет на сайте
| Ну, Vinchensoo, прав, это бред ) Quote (Vinchensoo) Quote (FERAMON) А если мозги есть, то изучай все ЯП, до которых дотянешься, чтоб стать гениальным прогером. Как и вопрос данного топика - из разряда: windows или linux лучше? ) Использовать надо то, что конкретно позволит решить N задачу максимально эффективно, быстро и т.п.
|
|
| |
Kwant | Дата: Среда, 11 Июля 2012, 23:23 | Сообщение # 63 | Тема: Подскажите уроки по WinAPI |
почетный гость
Сейчас нет на сайте
| Унылое зрелище ) Просто почитай Джеффри Рихтера - Windows для профессионалов. Главу 3
|
|
| |
Kwant | Дата: Среда, 11 Июля 2012, 23:06 | Сообщение # 64 | Тема: Подскажите уроки по WinAPI |
почетный гость
Сейчас нет на сайте
| В общем, проще выражаясь: представь себе бумажку, с конкретными координатами нужного тебе объекта и на бумажке могут быть координаты лишь одного объекта. Естественно, что на N объектов, тебе понадобится N бумажек. Собственно, Handle - выше именуемый Бумажкой, так и работает, - указывает на какой либо объект, вот и все. Так яснее?)
ЗЫ: Handle - индекс в системной таблице, которая содержит адрес структуры. Гляди Джеффри Рихтер - Windows для профессионалов.
Сообщение отредактировал Kwant - Среда, 11 Июля 2012, 23:10 |
|
| |
Kwant | Дата: Среда, 07 Марта 2012, 17:58 | Сообщение # 65 | Тема: Есть кто из Жуковского? |
почетный гость
Сейчас нет на сайте
| Собственно сабж, нужна помощь небольшая Денюжкой поблагодарю )
|
|
| |
Kwant | Дата: Среда, 18 Января 2012, 20:02 | Сообщение # 66 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Хм, не, не думал, какой то он....не такой - не юзабельный ) Да и времени у меня нет, творить такое - это накладно, поддерживать множество языков. Бить надо, в золотую середину ) Еще над кое-что перевоять будет и запустить под GCC версию
Сообщение отредактировал Kwant - Среда, 18 Января 2012, 20:06 |
|
| |
Kwant | Дата: Среда, 18 Января 2012, 17:28 | Сообщение # 67 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Quote (Demeron) 1) Используется физика: нужна функция GetPos, что бы Draw(GetPos().x,GetPos().y), а физика там что-то сама делает... Ну или оставить как есть Это зачем? Когда он может иметь реализацию, подобную GetTexture (то, что выше оговорилось)? Т.е. внутри: Draw() { spr->Draw(x, y); } - к примеру.
Quote (Demeron) Но решать тебе, что делать... Вот уж нефига, есть класс по работе со спрайтами, а уж, кто, как его обернет - его личное дело, а не мое )Добавлено (21.09.2011, 03:42) --------------------------------------------- Ну, что же...друзья...мой двиг переехал на новое место
[www.sg13.ru]
Теперь его апдейты и вообще всякая фигня моя, будет лежать там ^^ Милости прошу, буду рад видеть. Добавлено (18.01.2012, 17:28) --------------------------------------------- Что то давно я ничего не писал В общем, над собраться силами и выложить новый билд >_<
Основные изменения: - Билд будет только в Unicode - DX 9 (да прибудет HLSL!) - Работа с музыкой/звуками - Улучшена работа движка - было сделано множество исправлений - Дорабатывается сетевая часть - Ну и прочие плюшки
С частицами, так и не решил, что делать х) Ведь есть Magic Particles + куча враперов и т.п.
Звуковая часть: (Рес-с файл) Code <SOUND> <load name="Song 1" path="Music/TS.mp3" stream="1" loop="0" volume="100" pan="50">0</load> </SOUND>
(Код) Code LoadResource(L"../media/r_file.xml"); SoundPlay(GetSound(L"Song 1"));
Как то так...
|
|
| |
Kwant | Дата: Воскресенье, 11 Сентября 2011, 18:23 | Сообщение # 68 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Чо да? Физика те SetPos(), объект в жопе какой нить, а ты рендришь напрямую Draw(0, 0); - жопа тут полная ) Draw напрямую над ток спрайту, объекту вообще не вперлось это
|
|
| |
Kwant | Дата: Воскресенье, 11 Сентября 2011, 18:11 | Сообщение # 69 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Да епт, можно, эт я протупил х) ЖРАТь я хочу =D Конечно можно в реализацию героя пихнуть:
VOID Object::SetTexture( ... ) { SetTexture(GetTexture(...)); }
Я это просто к тому, что я не связываю тут ни кому руки и все элементарно правится под любой вкус и цвет ) И в Draw нельзя SetPos... Либо напрямую рисуем по координатам переданным в Draw, либо SetPos(); Draw();, т.к. первое используется в месте, где общитывается физика, а второй в области рендра
Сообщение отредактировал Kwant - Воскресенье, 11 Сентября 2011, 18:15 |
|
| |
Kwant | Дата: Воскресенье, 11 Сентября 2011, 18:03 | Сообщение # 70 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| ^^ эт я так упростил...вроде =D
Тут не стоит путать понятие объекта(игрового) и спрайта, что происходит часто. При переделки это на игровой объект, все будет, примерно, таким образом:
oHero.SetTexture(GetTexture(L"hero")); oHero.SetPos(12, 45); oHero.Draw();
Я не вижу ни каких проблем в данной реализации. То, что там - выше, это лишь пример, двиг обладает множеством функций, он спокойно загрузит все ваши ресурсы: LoadResource(L"Res.my"); и птом получайте их: GetTexture(L"fuck");.
Пугает _TXT() ? Так это не железно, хотите - не пишите, эт ведь просто дефайн на юник, чтобы быстро рекомпильнуть с Юни на АНСИ.
Короче, пошел я жарить яишнецу, все тут и так просто
ЗЫ: то, что вы привели, в пример, это надстройка Game.h, она расчитана на обучающие цели, а не: "О, епт, нефига у него код у двига" )
Сообщение отредактировал Kwant - Воскресенье, 11 Сентября 2011, 18:13 |
|
| |
Kwant | Дата: Воскресенье, 11 Сентября 2011, 17:44 | Сообщение # 71 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| На вкус и цвет..., лично мне, не особо, что ужасное, видно в этом коде. Ну или прошу поделится широтой вашей мысли А HCG[Control].h и Game.h - лишь показательные.
Сообщение отредактировал Kwant - Воскресенье, 11 Сентября 2011, 17:48 |
|
| |
Kwant | Дата: Воскресенье, 11 Сентября 2011, 17:39 | Сообщение # 72 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| ыЫ, я тут подзадержался немного ) Ну, я скоро, еще чуток ... пару часиков и все х) Доизвращался аж до такого:
Code #include "../Game.h"
VOID CALLBACK EvDraw( LPVOID lpParam ) { GfxClear();
GetSprite(_TXT("Spr_0"))->Draw(100, 100); GetFont(_TXT("Fnt_0"))->Draw(222, 222, TXA_CENTER, _TXT("X-TEXT")); }
INT WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, INT ) { if(Create()) { SetEvent(AE_RENDER, &EvDraw);
AddSprite(_TXT("Spr_0")); AddFont(_TXT("Fnt_0"));
GetSprite(_TXT("Spr_0"))->SetTexture(LoadTexture(_TXT("../media/Hex.png"))); GetFont(_TXT("Fnt_0"))->SetFont(LoadFont(_TXT("../media/FontID0.fnt")));
FuckItAll();
RemoveAllObjects(); Destroy(); }
return( 0 ); }
Это все, что требуется написать, чтобы начать создавать что либо. Вверху загружается изображение, шрифт, и выводятся % )
Конечно это не железный стандарт, тут 3 обертки, которые доступны для чтения/изменения, чем ниже обертка - тем сложнее ) Кароче, тут жопа полная % ) (Не умею я объяснять нарн ^^)
Кхм, в общем, выглядит это так: (3 LvL) Function (2 LvL) CGame / Class : child (1 LvL) HCGControl / Class : parent ----------------------- (0 LvL) HCGEngine
Все сверху, это просто упрощения и все, показательные, но эт не значит, что я их написал от балды ) Нет, просто, кто захочит большего контроля, то может использовать CGame или еще глубже - HCGControl. (блин, это есесные вещи и че я Вам объясняю - на схеме се видно, да? )
Как то так оно в общем...да, и я подза...долбался с этими архивами х) Но поддержка ресурсов в архивах будет...пароли-не пароли там...
Добавлено (31.08.2011, 04:14) --------------------------------------------- А, и в ближайшее время верну рендер DX9 )
Добавлено (11.09.2011, 17:39) --------------------------------------------- Ну, я залил то, что пока есть, не все успел впихнуть, т.к. времени вообще катастрофично не хватает, даже на личную жизнь...начинает казаться, что она у меня где то в области иррационального сейчас %-)
Скачать можно с помощью APE или по ссылке ниже: Перейти...
Там, в архиве, тествовый код есть и 2 файла на которые стоит обратить внимание: HCG[Control].h и Game.h
Сообщение отредактировал Kwant - Воскресенье, 11 Сентября 2011, 17:40 |
|
| |
Kwant | Дата: Среда, 31 Августа 2011, 04:39 | Сообщение # 73 | Тема: Простая БД |
почетный гость
Сейчас нет на сайте
| Wow ) Тогда тебе стоит еще решить, что стоит использовать Forms или WinAPI - раз собрался что то осваивать то... Первый вариант сильно упрощает задачу, но увеличивает объем exe файла, а во втором варианте, все наоборот )
|
|
| |
Kwant | Дата: Понедельник, 29 Августа 2011, 16:52 | Сообщение # 74 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Ща, то, что на сайте лежит и то, что есть у меня - имеет двольно неплохую разницу ) Если со мной поделятся, одни хорошие люди, интернетом, то я выложу, может, сегодня вечером-ночью, и тогда можно что-то оценивать, эт я так, к слову :3
А сейчас я откланиюсь пожалуй, время Theatre Of Tragedy - Crash/Concrete оО, ДАА!! Чем обрабатывается металл?!! Электрогитарой! \m/>_<\m/
Сообщение отредактировал Kwant - Понедельник, 29 Августа 2011, 16:56 |
|
| |
Kwant | Дата: Понедельник, 29 Августа 2011, 16:10 | Сообщение # 75 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Охох, ну что же, лето к концу, трудовые будни постепенно начинаются х) Такс, что я тут нового сделал: [+] Добавил: -класс HCGUtil -логи во все модули -различные функции в класс IHCGResourceManager, IHCGRoot, CGame (класс для упрощения взаимодействия с движком) [+] Добавляю на данный момент: -работа с архивами -частицы или гуи писать сюда есть смысл? А то я их добавляю уже стопитцот поколений...они все добавится не могут...
[+] Исправления: -убрано 6 ошибок -изменение работы некоторых классов и функций: IHCGResourceManager, IHCGRoot, IHCGCore
Над модулем сети поработать бы еще - добавить пару чтук, ну и пробую звуковую часть поковырять, пару мыслей есть, но....мысли, они и в Африке мысли ) В целом, по тихоньку дело идет Может я че упустил, забыл...эээ....но пока вот..., что есть - изменения идут: упрощаю, добавляю....кручу верчу запутать хочу =D В общем, числа 2-4, след мес, выложу нарн, т.к. косяки с интернетом у меня...
|
|
| |
Kwant | Дата: Вторник, 19 Июля 2011, 21:56 | Сообщение # 76 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Thx Но, я как бы стараюсь его постоянно упростить и сохранить гибкость ) Quote Единственно, что мне пока что не понравилось, так это 6 dll файлов движка, общим весом меньше метра... А что я сделаю то ) Ну модульный двиг, суть его в модулях ^_^, поэтому и куча dll`ов Могу в Core.lib запихать код, который позволит загружать dll ки из ресурсов exe`шника )
Code HHCGMODULE LoadDLLFromResource( HINSTANCE hInstance, PTCHAR pName, PTCHAR pType = NULL );
мм, как то так )
Я еще переписал автопатчер, работает получше, нормально качает/докачивает, висит в трее и больше ни где старается не палиться . Выложу новую версию, как подготовлю новый UD движка.
Добавлено (19.07.2011, 21:54) --------------------------------------------- Скоро думаю залить UD, сделал много изменений: добавление функций, классов, изменение работы внутренних механизмов - в общем много изменений, я не осилю все перечислять х) Написал класс для упрощения работы с движком: CGame - Game.h/cpp С ним код может выглядеть как то так: Code #include "../Game.h"
CGame g_oGame; LPHCGSPRITE g_pSprite = NULL;
VOID CALLBACK EvDraw( VOID ) { g_pGraphics->Clear(ARGB(255, 125, 200, 100)); g_pSprite->Draw(100, 100); }
INT WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, INT ) { if(g_oGame.Create()) { if(g_oGame.LoadResource(_TXT("../media/r_file.xml"))) { g_oGame.SetEvent(AE_RENDER, (LPVOID) &EvDraw);
if(g_pSprite = g_oGame.CreateSprite()) { g_pSprite->SetTexture(g_oGame.GetTexture(_TXT("Name1")))
g_oGame.FuckItAll();
g_oGame.DestroySprite(g_pSprite); } }
g_oGame.Destroy(); }
return( 0 ); }
Тут рисуется 1 спрайт, за Вас все уже подключено, объявлено - все само загрузится, выгрузится х) Ну, как бы вот... Все проверки, в коде выше, сохранены, т.е. если чего будет не так: нету длл, нет ресурса, указатель = NULL, все обрабатывается и уж0сающих синих экранов, RT ерроов не будет наблюдаться )
Сообщение отредактировал Kwant - Вторник, 19 Июля 2011, 21:59 |
|
| |
Kwant | Дата: Воскресенье, 03 Июля 2011, 21:37 | Сообщение # 77 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Хм, странно, давал как то тестировать его и проекты запускались у другого пользователя... Собранный проект в юникоде? Добавлено (29.12.2010, 09:55) --------------------------------------------- Что то я запамятовал кинуть в архив генератор шрифтов... Использовалась программа Bitmap Font Generator v1.12 К следующей сборке дам линк на тулзу (в архив, к движку, пока что класть не буду), если лень искать Добавлено (30.12.2010, 00:05) --------------------------------------------- [ Update ] Скачать: Bitmap Font Generator v1.12 246 Кб Скачать: HCG 2D Engine SDK 1.0 Мб Было исправлено множество ошибок и недочетов, добавлены новые функции. Надо бы днем пошурику накатать пару турторов и небольшую доку, а ща пойду пощемаю на диванчике ) Добавлено (18.01.2011, 00:46) --------------------------------------------- Блин, что то я подтормозил с некоторыми вещами, которые хотел выложить ) Просто в армии немного неудобно кодить ^^ Мм...надо толи осилить что нить, толи до дома подождать х) Добавлено (27.01.2011, 04:59) --------------------------------------------- Такс... Начал клепать турторы и справку, начало пока слабенькое..., но все таки какое то. Также склепал временную страничку, т.к. всему этому делу надо же где то обитать, на протяжение моей службы ) Есть пример по созданию простого окна и созданию менеджера ресурсов с загрузкой ресурса. И есть махонькая "справка", которую буду потихоньку пилить ) Все можно найти тУт. Дальше сделаю примеры по работе со спрайтами, шрифтом, ini файлы, строковый таблицы..м.. ну и т.д. Может появится вопрос, почему я не написал о планах доработки/улучшению двига..., ну, просто.., просто - это армия ) Вернусь домой через 4 мес и проапгрейжу двиг, а пока поиск багов, расширение справки и базы примеров. Добавлено (25.06.2011, 03:34) --------------------------------------------- Йааа дома, епт 8) Хохо, можно браться за дело ^^
Архитектура:
Как видно, взаимодействие с модулями возможно непосредственно через интерфейс в обход Core, по большому счету, эта библиотека нужна для сильного упрощения общения с модулями. При сильном желании, можно любому написать альтернативу библиотеке Core.
Модуль Root содержит в себе элементы по работе с главным окном, менеджером ресурсов, таймером и прочими вспомогательными классами. Из схемы видно, что он также использует модули графики и звука. Например, класс HCGSprite - вызов функции Draw(...).
---
Вообще, я переписал ~30% рендра, пофиксил баги в нескольких модулях, изменил принцип работы некоторых функций вспомогательных классов Анимации и Шрифта, класса по работе с ini файлами. Добавил новые функции по созданию граф устройства, окна - простое, по типу Create() (создать окно и граф устройство) и расширенный вариант, куда передается структура с данными (для окна и граф устройства).
Уже на ~40% навоял класс Частиц. Добавлено (25.06.2011, 15:43) --------------------------------------------- Обновление модулей: Перейти...
Хочется упомянуть, что пока я не поддерживаю разработку рендра DX9, на то есть пока причины.
Забыл в тот раз упомянуть о появление в Root функции, для получения информации о вводе: PINPUT_EVENT_INFO GetInputInfo( VOID ); И в структуру PINPUT_EVENT_INFO добавлена Z координата (колесико) для мыши.
Ща еще работаю над автопатчером, чтобы сам сливал все нужные апдейты/файлы с хоста для обновления движка Добавлено (03.07.2011, 21:37) --------------------------------------------- Так, своял что то, вроде патчера х)) Прошу, посмотрите, если будет на что...оцените минимализм х)
Перейти
Сообщение отредактировал Kwant - Четверг, 27 Января 2011, 21:28 |
|
| |
Kwant | Дата: Пятница, 01 Июля 2011, 22:35 | Сообщение # 78 | Тема: Master Studia |
почетный гость
Сейчас нет на сайте
| Quote Забыл сказать не принемайте скрины всерьёз, они ещё не настоящие. Я так и думал, что это фейк.... жалкий фотошоп...сильно хорошо выглядит....для правды х)
|
|
| |
Kwant | Дата: Среда, 29 Декабря 2010, 13:44 | Сообщение # 79 | Тема: Делаем рабочую среду |
почетный гость
Сейчас нет на сайте
| Это типо что то шел`о-подобное для вин? О_о А не че, что оно хавает 50-70% процессорного времени? По моему, подобные вещи, надо точно не на ГМ делать )
|
|
| |
Kwant | Дата: Понедельник, 27 Декабря 2010, 20:32 | Сообщение # 80 | Тема: HCG 2D Engine |
почетный гость
Сейчас нет на сайте
| Build: Unicode Render: DX8 & 9 Input: DI8 Sound: Squall Web/Lan/Internet: Socket Language: C++ Тестировался на OS: Win XP/Vista/7 Среда разработки: MVS 2010 Есть класс по работе с ядром, таймером, вводом, рендером и менеджером ресурсов, сетью/интернетом, изображениями (спрайты, анимационные ленты), шрифтом, INI файлами, StringTable файлами и др. -Возможность аттачить свои классы с функциями Бегин/Енд - действия/события на ввод, степ, рендер -Есть возможность вынести рендер в отдельный поток -Довольно простой в изучение Как может выглядеть класс Объект: Code class Object : public IHCGEventRoot, IHCGEventGraphics { public: VOID BeginStep( DOUBLE Delta, const INPUT_EVENT_INFO& Info, const LPHCGROOT pRoot ) { x += dx * Delta; y += dy * Delta; xscale += dxscale * Delta; yscale += dyscale * Delta; rot += drot * Delta;
if(x > 800 || x < 0.0f) dx = -dx; if(y > 600 || y < 0.0f) dy = -dy; if(xscale > 2.0f || xscale < 0.5f) dxscale = -dxscale; if(yscale > 2.0f || yscale < 0.5f) dyscale = -dyscale; }
VOID EndStep( DOUBLE Delta, const INPUT_EVENT_INFO& Info, const LPHCGROOT pRoot ) { }
VOID BeginDraw( const LPHCGGRAPHICS pGraphics ) { if(pSprite) pSprite->DrawEx(x, y, rot, xscale, yscale); }
VOID EndDraw( const LPHCGGRAPHICS pGraphics ) { }
public: Object( VOID ) { if(g_pHelper) pSprite = g_pHelper->CreateSprite();
x = 0.0f, dx = 0.0f, y = 0.0f, dy = 0.0f; xscale = 1.0f, dxscale = 0.0f, yscale = 1.0f, dyscale = 0.0f; rot = 0.0f, drot = 0.0f; }
~Object( VOID ) { if(g_pHelper) g_pHelper->DestroySprite(pSprite); } public: FLOAT x, dx, y, dy; FLOAT xscale, dxscale, yscale, dyscale; FLOAT rot, drot;
LPHCGSPRITE pSprite; }; Как может выглядеть файл ресурсов: Code <HCG-Resource> <TEXTURE> <!-- Load Texture - Name | Path --> <load name="Name1" path="Graphics/s_hero.dds">0</load> <load name="Name2" path="Graphics/s_airstr.png">1</load> <load name="Name3" path="Graphics/b1id.png">2</load>
<!-- Create Texture - Name | Width | Height --> <create name="Name14" width="200" height="200">13</create> </TEXTURE>
<SURFACE> <!-- Create Surface - Name | Width | Height --> <create name="Surface0" width="333" height="333">0</create> <create name="Surface1" width="254" height="254">1</create> </SURFACE>
<FONT> <!-- Load Font - Name | Path --> <load name="Font0" path="FontID0.fnt">0</load> </FONT>
<SHADER> <!-- Load Font - Name | Path --> <load name="PSO0" type = "ps" class = "object" path="PS0.pso">0</load> <load name="PSH1" type = "ps" class = "asm" path="ps1.psh">1</load> <load name="PS1HLSL" type = "vs" class = "hlsl" function = "Ripple" target = "vs_2_0" path="vs_0.hlsl">3</load> </SHADER> </HCG-Resource>
Пока шаманю еще над многими вещами, но одному все же трудновато на все разорваться ) Линк для скачки: перейти...
Сообщение отредактировал Kwant - Понедельник, 27 Декабря 2010, 21:46 |
|
| |
|