Воскресенье, 24 Ноября 2024, 05:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Результаты поиска
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 | Тема: Есть кто из Жуковского?
почетный гость
Сейчас нет на сайте
Собственно сабж, нужна помощь небольшая smile
Денюжкой поблагодарю )
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)
---------------------------------------------
Ну, что же...друзья...мой двиг переехал на новое место smile

[www.sg13.ru]

Теперь его апдейты и вообще всякая фигня моя, будет лежать там ^^
Милости прошу, буду рад видеть.

Добавлено (18.01.2012, 17:28)
---------------------------------------------
Что то давно я ничего не писал smile
В общем, над собраться силами и выложить новый билд >_<

Основные изменения:
- Билд будет только в 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. (блин, это есесные вещи и че я Вам объясняю - на схеме се видно, да? smile )

Как то так оно в общем...да, и я подза...долбался с этими архивами х)
Но поддержка ресурсов в архивах будет...пароли-не пароли там...

Добавлено (31.08.2011, 04:14)
---------------------------------------------
А, и в ближайшее время верну рендер DX9 )

Добавлено (11.09.2011, 17:39)
---------------------------------------------
Ну, я залил то, что пока есть, не все успел впихнуть, т.к. времени вообще катастрофично не хватает, даже на личную жизнь...начинает казаться, что она у меня где то в области иррационального сейчас %-)

Скачать можно с помощью APE или по ссылке ниже:
Перейти...

Там, в архиве, тествовый код есть и 2 файла на которые стоит обратить внимание: HCG[Control].h и Game.h smile


Сообщение отредактировал 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

Над модулем сети поработать бы еще - добавить пару чтук, ну и пробую звуковую часть поковырять, пару мыслей есть, но....мысли, они и в Африке мысли )
В целом, по тихоньку дело идет smile
Может я че упустил, забыл...эээ....но пока вот..., что есть - изменения идут: упрощаю, добавляю....кручу верчу запутать хочу =D
В общем, числа 2-4, след мес, выложу нарн, т.к. косяки с интернетом у меня...
KwantДата: Вторник, 19 Июля 2011, 21:56 | Сообщение # 76 | Тема: HCG 2D Engine
почетный гость
Сейчас нет на сайте
Thx biggrin
Но, я как бы стараюсь его постоянно упростить и сохранить гибкость )
Quote
Единственно, что мне пока что не понравилось, так это 6 dll файлов движка, общим весом меньше метра...

А что я сделаю то )
Ну модульный двиг, суть его в модулях ^_^, поэтому и куча dll`ов
Могу в Core.lib запихать код, который позволит загружать dll ки из ресурсов exe`шника )

Code
HHCGMODULE LoadDLLFromResource( HINSTANCE hInstance, PTCHAR pName, PTCHAR pType = NULL );


мм, как то так )

Я еще переписал автопатчер, работает получше, нормально качает/докачивает, висит в трее и больше ни где старается не палиться happy . Выложу новую версию, как подготовлю новый 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
К следующей сборке дам линк на тулзу (в архив, к движку, пока что класть не буду), если лень искать smile

Добавлено (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
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг