Пятница, 25.05.2012, 04:49

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 2 из 2«12
Модератор форума: Akyltist 
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » HGE & Visual C++
HGE & Visual C++
AikidosДата: Суббота, 14.01.2012, 15:24 | Сообщение # 21
постоянный участник
Сообщений: 261
Сейчас нет на сайте
Если я не ошибаюсь, HGE перестал развиваться с 2008 года?

Нет рабства безнадежнее, чем рабство тех рабов, себя кто полагает свободным от оков.
 
nonameДата: Суббота, 14.01.2012, 16:18 | Сообщение # 22
участник
Сообщений: 228
Сейчас нет на сайте
Quote (Aikidos)
Если я не ошибаюсь, HGE перестал развиваться с 2008 года?

не знаю, но похоже на то.

там, на предыдущей странице я вопрос задал. очень нужна помощь.

дневник разработчика
 
GECKДата: Суббота, 14.01.2012, 17:20 | Сообщение # 23
заслуженный участник
Сообщений: 658
Сейчас нет на сайте
Посмотрел твой проект. Подключил к проекту файлы maz_gen.h и maz_gen.cpp, потом студия сама подсказала записать #include "stdafx.h" в maz_gen.cpp. Все скомпилилось smile

На будущее - выкладывай только исходники, в архиве мусора много.

Всё гениальное просто. И хреново работает.
 
nonameДата: Четверг, 19.01.2012, 15:02 | Сообщение # 24
участник
Сообщений: 228
Сейчас нет на сайте
Quote (GECK)
Подключил к проекту файлы maz_gen.h и maz_gen.cpp

как?

Quote
1>kosmobiaky.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl WorldFill(void)" (?WorldFill@@YAXXZ) в функции _WinMain@16

1>D:\my_projects\03-raise-HGE\01-Kolobok\0008\Debug\kosmobiaky.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

Добавлено (14.01.2012, 17:46)
---------------------------------------------
так, вроде бы как-то это сделал. хотя сам толком не понял, что я делал.'

GECK, СПАСИБО большое))

Добавлено (16.01.2012, 16:23)
---------------------------------------------
---------------------------------------------

блукаю щазз в модулях своей многомодульной проги.

хочу понять, как делается одна штука на MS Visual C++.
а именно:

1. в функции main() объявляется двумерный массив, а затем он передаётся в качестве параметра функции, реализованной в другом модуле.

2. размеры этого массива задаются только в одном месте программы(константой, дефайнами, да чем угодно- лишь бы работало), И эти размеры доступны из любого модуля программы.

не мог ли бы кто-нить показать, как это делается, на примере с двумя модулями(основной- тот, в котором ф-ция main() И другой- в котором ф-ция, обрабатывающая массив).

Добавлено (16.01.2012, 16:24)
---------------------------------------------

Quote (noname)
в функции main() объявляется двумерный массив

а лучше- глобальное объявление, до объявления функций, в основном модуле(где main())

Добавлено (16.01.2012, 19:08)
---------------------------------------------
---------------------------------------------
вышеописанная проблема РЕШЕНА cool

Добавлено (19.01.2012, 14:56)
---------------------------------------------
---------------------------------------------
---------------------------------------------

я сделал генерёжку простого лабиринта. в отличие от старой версии "колобка", на этот раз лабиринт составляется из комнат.
размеры комнат и другие константы задаются в файле stdafx.h
сейчас там установлен режим 1050x1680xFULL_SCREEN, но это легко изменить:
http://dl.dropbox.com/u/52494730/Kolobok/2012_01_19/0012.zip
для более удобного экспериментирования с программой режим экрана лучше сменить на оконный, значения которого указаны там в комментах.

прога очень сырая. управление- стрелками, выход по ESC.

есть причина, по которой я предлагаю вашему вниманию именно полноэкранный вариант. дело в том, что меня абсолютно не устраивает скорость перерисовки экрана: при движении видны заметные искажения.

если кто что может подсказать по этому поводу- буду благодарен.

Добавлено (19.01.2012, 15:02)
---------------------------------------------
я имею ввиду небольшие искажения в тот момент, когда перерисовывается весь экран.


дневник разработчика
 
GECKДата: Четверг, 19.01.2012, 15:31 | Сообщение # 25
заслуженный участник
Сообщений: 658
Сейчас нет на сайте
Quote (noname)
при движении видны заметные искажения

Используй вертикальную синхронизацию:
Code
hge->System_SetState(HGE_FPS, HGEFPS_VSYNC);


Всё гениальное просто. И хреново работает.
 
nonameДата: Четверг, 19.01.2012, 16:06 | Сообщение # 26
участник
Сообщений: 228
Сейчас нет на сайте
Quote (GECK)

Используй вертикальную синхронизацию:

СПАСИБО. наиболее неприятный эффект при горизонтальном смещении экрана убрался.

и, в-принципе работает нормально. с учётом того, что я юзаю режим 1050x1680x32bit. тот же BlackThorne гораздо поскромнее в этом плане И к тому же без скроллинга))

Добавлено (19.01.2012, 16:06)
---------------------------------------------
и тут же СЛЕДУЮЩИЙ ВОПРОС:

вот есть у меня ф-ции:
- FrameFunc (опрос ввода и модификация состояния игры)
- RenderFunc (перерисовка экрана)

я так понимаю, что они выполняются так часто, как могут.

RenderFunc меня в этом плане абсолютно устраивает, а вот что касается FrameFunc, то хотелось бы задать частоту её вызова. напр- 100 или 10 раз в секунду. тогда и отрисовка получится более качественной, т к она будет происходить чаще, чем изменения в том, что надо отобразить.


дневник разработчика
 
GECKДата: Четверг, 19.01.2012, 17:02 | Сообщение # 27
заслуженный участник
Сообщений: 658
Сейчас нет на сайте
noname, судя по коду, проблема в другом.
Каждый кадр все объекты нужно смещать не на фиксированную величину, а на скорость_объекта * dt, где dt - промежуток времени между кадрами. В случае hge это hge->TimerGetDelta().
Если сейчас в игре уменьшить фпс вдвое, то и сама игра замедлится вдвое, что не есть хорошо. Ну или я не понял проблему smile

Quote (noname)
отрисовка получится более качественной, т к она будет происходить чаще, чем изменения в том, что надо отобразить.

Ну, на самом деле нет. Если не изменять игровой мир, то в чем смысл несколько кадров рисовать одно и то же?

Всё гениальное просто. И хреново работает.
 
nonameДата: Суббота, 21.01.2012, 23:24 | Сообщение # 28
участник
Сообщений: 228
Сейчас нет на сайте
Quote (GECK)
Если сейчас в игре уменьшить фпс вдвое, то и сама игра замедлится вдвое, что не есть хорошо

именно так. а я и хочу как-то управлять частотой вызова этих функций.

Quote (GECK)
Если не изменять игровой мир, то в чем смысл несколько кадров рисовать одно и то же?

хм.. дельное замечание!

если всё просчитывается, а затем- всё выводится И при этом движение объектов на экране происходит с постоянной для каждого объекта скоростью, то лагов не должно быть.

ну чтож. буду надеяться, что отрисовка в HGE (RenderFunc) происходит только после того, как мир полностью обсчитан (FrameFunc). тогда остаётся только покумекать над переделкой моей функции отображения игрового мира (WordShow).

Quote (GECK)
hge->TimerGetDelta()
СПАСИБО, почитаю.

Добавлено (20.01.2012, 15:15)
---------------------------------------------
---------------------------------------------
личкой пришло:
HGE (Meragon) Вчера
Quote
FrameFunc исполняется каждый кадр, т.е. если у тебя вертикальная синхронизация сейчас в игре есть, то это значит фпс = частота монитора (в моем случае - 75 - кадров в секунду).
Ограничить можно через произвольную установку fps: hge->System_SetState( HGE_FPS, 60 );
Если тебе надо ограничить передвижение, то используй вместо Input_GetKeyState, InputGetKeyDown.


Добавлено (20.01.2012, 15:45)
---------------------------------------------
но это- не выход. от таких ограничений у меня только ещё больше лагает.

попробую последовать совету GECK. чё-та разленился, никак не начну))

Добавлено (21.01.2012, 13:05)
---------------------------------------------
упс, нашёл ошибку- оказывается я видимую область каждый раз перерисовывал дважды.

Добавлено (21.01.2012, 13:19)
---------------------------------------------
Quote (noname)
упс, нашёл ошибку- оказывается я видимую область каждый раз перерисовывал дважды.

в функции WorldShow перед оператором switch есть совершенно лишний условный оператор, который выводит либо стены либо обои, которые ниже перерисовываются в свиче.

щазз я занят более радикальной переделкой проги.

Добавлено (21.01.2012, 20:38)
---------------------------------------------
---------------------------------------------

игру упростил и перешёл на отрисовку с использованием dx=hge->TimerGetDelta();
http://dl.dropbox.com/u/52494730/Kolobok/2012_01_21/0016.zip
временно оставляю Колобка в покое И перехожу к шахматам.

в папке Debug лежит экзешник со всеми нужными для запуска файлами. остальное- для тех, кто хочет поковыряться в исходниках.

Добавлено (21.01.2012, 23:24)
---------------------------------------------
cry
проблема: экзешник запускается только на моём компе(возможно, ещё у тех, у кого стоит MS Visual C++ и HGE).

здесь два отзыва от форумчан:
http://forum.sources.ru/index.p....064302

проверил на компе своего отца- пишет "программа не запускается".

я так понимаю, что надо доложить в архив ещё файлов. НО каких?


дневник разработчика

Сообщение отредактировал noname - Суббота, 21.01.2012, 20:39
 
DemeronДата: Суббота, 21.01.2012, 23:29 | Сообщение # 29
User created in C++
Сообщений: 468
Сейчас нет на сайте
noname, режим Release стоит? hge.dll и bass.dll вкинул к .exe? Под какую систему компилировалось?

 
nonameДата: Четверг, 26.01.2012, 16:39 | Сообщение # 30
участник
Сообщений: 228
Сейчас нет на сайте
Quote (Demeron)
режим Release

да, дело было именно в этом. тока щазз узнал об этом режиме. спасибо.
(режим с Debug на Release переключается на стандартном тулбаре Visual C++).

Добавлено (22.01.2012, 00:06)
---------------------------------------------
итак, проблема решена smile

и, раз исходники я уже выложил выше, то кладу только то, что необходимо для запуска игры:
http://dl.dropbox.com/u/52494730/Kolobok/2012_01_22/Release.zip

движение всё равно далеко до идеального, а так же колобок входит в стены.

мне нравится, как реализовано движение вот этой игре:
http://gcup.ru/forum/28-15605-254259-16-1308849878
(нажимайте F1 и F2, чтобы настроить режим отображения)
--

на этом временно бросаю Колобка и перехожу к шахматам.

Добавлено (22.01.2012, 12:05)
---------------------------------------------
рассматривал ещё раз 7-й туториал к HGE- там плавно двигается большое кол-во спрайтов одновременно cool

надо только разобраться, как это делается. и применить к шахматным фигурам.

Добавлено (25.01.2012, 18:56)
---------------------------------------------
---------------------------------------------
куча уроков по HGE есть здесь:
http://hge-blog.ru/17_urok....io-2008
в самом низу жмите левую ссылку, чтобы перейти к следующему уроку.

Добавлено (26.01.2012, 12:29)
---------------------------------------------
---------------------------------------------
---------------------------------------------
cry
хочу хранить спрайты всех шахматных фигур и кое-чего ещё в анимации(в хелпе в разделе hints&tips есть указание на то, что библиотеки спрайтов удобно хранить именно так).

в связи с этим вопрос: как загрузить анимацию из *.png- файла? в уроках что-то такое есть, но там загружается из какого-то менеджера ресурсов, а это мне вообще не понятно, да и не нужно. мне бы- просто из файла..

Добавлено (26.01.2012, 15:40)
---------------------------------------------
---------------------------------------------
т е есть в файле *.png куча спрайтов одинаковых размеров. ВОПРОС:
- как загрузить эти спрайты, чтобы они стали кадрами анимации?

Добавлено (26.01.2012, 16:39)
---------------------------------------------
решение найдено cool

Code
    HGE* hge = hgeCreate(HGE_VERSION);
       
     HTEXTURE tex = hge->Texture_Load(filename/*имя файла с текстурой*/);
       
     float w = hge->TexureWidth(tex);
     float h = hge->TexureHeight(tex);
       
     hgeAnimation anim = new hgeAnimation(tex/*текстура*/, numFrames/*количество кадров на текстуре*/, FPS/*частота обновления, если кадры менять не надо - ставишь 0*/,
                     0/*верхний левый угол Х*/, 0/*верхний левый угол У*/, w/*ширина текстуры*/, h/*высота текстуры*/);


дневник разработчика
 
DemeronДата: Четверг, 26.01.2012, 22:09 | Сообщение # 31
User created in C++
Сообщений: 468
Сейчас нет на сайте
noname, ну не совсем.... Нужно так:
Code
    HGE* hge = hgeCreate(HGE_VERSION);   
           
       HTEXTURE tex = hge->Texture_Load(filename/*имя файла с текстурой*/);   
           
       float w = 64.0f;//ширина одного кадра
       float h = 64.0f;//высота одного кадра
       int numFrames = 10;//количество кадров в анимации
       float FPS = 10;//количество кадров в секунду (скорость воспроизведения)
           
       hgeAnimation anim = new hgeAnimation(tex,numFrames,FPS,   
0/*верхний левый угол первого спрайта анимации по Х*/,
0/*верхний левый угол первого спрайта анимации по У*/,
w,h);




Сообщение отредактировал Demeron - Четверг, 26.01.2012, 22:13
 
nonameДата: Суббота, 04.02.2012, 10:10 | Сообщение # 32
участник
Сообщений: 228
Сейчас нет на сайте
в туториалах к HGE есть пример, где перемещается много покемонов Zazaka.

я только что дотумкал и реализовал другой способ перемещения, который больше подходит к шахматной программе, которую я пишу: http://forum.sources.ru/index.p....3069006

Добавлено (04.02.2012, 10:10)
---------------------------------------------
как создать русский шрифт для HGE?

я бы предпочёл не сам рисовать шрифт, а перевести какой-нить из виндузовских.


дневник разработчика
 
GECKДата: Суббота, 04.02.2012, 10:18 | Сообщение # 33
заслуженный участник
Сообщений: 658
Сейчас нет на сайте
В комплекте с HGE идет генератор шрифтов же.
В окошке Characters range выбираешь нужные символы, и все.

Всё гениальное просто. И хреново работает.
 
nonameДата: Пятница, 16.03.2012, 23:09 | Сообщение # 34
участник
Сообщений: 228
Сейчас нет на сайте
да, появились другие дела, так что шахматы мои пока что заброшены. и давно.

скачать то, что получилось, можно здесь:
http://dl.dropbox.com/u/52494730/CHESS/2012_02_05/0020.zip

если кто подскажет, какого поцелуя мои шахматы вылетают, когда я ставлю шах компу, буду признателен. по-моему я как-то не правильно юзаю движок.

Добавлено (16.03.2012, 23:09)
---------------------------------------------
кста, в моих шахматах переворачивать доску можно даже во время перемещения фигуры))


дневник разработчика
 
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » HGE & Visual C++
Страница 2 из 2«12
Поиск:

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