forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   HGE вопрос (http://forum.boolean.name/showthread.php?t=11464)

Aceton 13.12.2009 13:33

HGE вопрос
 
есть класс, в классе есть метод
PHP код:

void  CGameManager::defineResources()
{    
    
// config
    
hge->System_SetState(HGE_FRAMEFUNC, &CGameManager::FrameLogicCallBack);
....


так вот вылетает с ошибкой error C2664: 'void HGE::System_SetState(hgeBoolState,bool)' : cannot convert parameter 1 from 'hgeFuncState' to 'hgeBoolState'

в пример колбек это просто функция, у меня это метод класса.... может и туплю но вроди все правильно)

jimon 13.12.2009 13:57

Ответ: HGE вопрос
 
Aceton
для вызова функции нужно знать только её указатель, для вызова метода нужно знать указатель и значение указателя this, потому метод это не функция, если совсем сильно поджимает - сделай статический метод и используй синглтон

Aceton 13.12.2009 14:02

да статик помог

хотя со статиком много мусора нада через this делать

чето hge->System_SetState(HGE_FRAMEFUNC, this->FrameLogicCallBack()); не работает

jimon 13.12.2009 14:41

Ответ: HGE вопрос
 
Aceton
и не сработает

Aceton 13.12.2009 15:22

Ответ: HGE вопрос
 
так как всетаки передать ссылку на метод без статика?

jimon 13.12.2009 15:28

Ответ: HGE вопрос
 
Aceton
я тебе уже обьяснил что никак, для того чтобы ссылку на метод вызвать на другой стороне тебе туда нужно еще отдельно this передать, метод от функции отличается только тем что у него есть скрытый аргумент this и получается что физически указатели на одинаковые методы разных объектов одного класса одинаковы, а отличаются они только тем какой this им передается, ну и какой по-твоему this передаст HGE если ты собственно этот this ему не передаешь, если вызвать как this = 0 то вылетит ошибка

так что забей, у тебя два пути : или статик или функция

Aceton 13.12.2009 15:32

Ответ: HGE вопрос
 
а про делегаты слышал? все возможно - щас сижу копаю...

jimon 13.12.2009 15:36

Ответ: HGE вопрос
 
Aceton
ну и получишь тот же статик только через задний проход, используй статик + синглтон

Aceton 13.12.2009 15:39

Ответ: HGE вопрос
 
убедил! )

Morganolla 08.09.2010 16:55

Ответ: HGE вопрос
 
Столкнулся со странным багом:
в одном месте оператор hge->Gfx_RenderQuad(&q); (отрисовка четырехугольника)
при релиз-построении нормально рендерится , а при дебаг подвешивает программу. Причем если релиз запускать автономно ( вне студии) то тоже вешает. В чем дело??????????
В других местах такие операторы работают нормально.

чем отличается построение в релизе и дебаге?

единственно могу сказать, что в этом месте четырехугольник принадлежит динамически созданному объекту (через new), а в других ... статическим глобальным...

HolyDel 08.09.2010 16:59

Ответ: HGE вопрос
 
Цитата:

Столкнулся со странным багом:
в одном месте оператор hge->Gfx_RenderQuad(&q); (отрисовка четырехугольника)
при релиз-построении нормально рендерится , а при дебаг подвешивает программу. Причем если релиз запускать автономно ( вне студии) то тоже вешает. В чем дело??????????
это не ошибка хге скорее всего. возможно ты не инициализируешь какие нибудь члены какого нибудь класса. а студия сама их зануляет, если запускать прямо из под нее. у меня была очень похожая эррора.

Morganolla 08.09.2010 17:31

Ответ: HGE вопрос
 
HolyDel, гениально!!!!!
Забыл обнулить на нем текстуру q.tex=0; а там оставался какой-то мусор, который сводил ХГЕ с ума! :)
А у глобальных она сама обнулялась при старте!!!

Morganolla 05.11.2010 21:37

Ответ: HGE вопрос
 
вопросик - как прогать на ХГЕ геймпад? Надо подключить какую-то библу?

Mhyhr 06.11.2010 15:02

Ответ: HGE вопрос
 
Да, стандартной поддержки геймпада там нет. Поищи у них на форуме, вроде в какой то модификации было запилено.

Reizel 14.12.2010 10:53

Ответ: HGE вопрос
 
Вложений: 1
Фак. Скачал HGE, создал проект , положил все HGE-шные файлы в корень проекта, подключил либу из папки gcc (ибо Code::Blocks), Search Dir поставил как include.
Потом добавил index.cpp в проект, скопипастил туда код из стд примера (в папке tutorials), попытался запустить...
Fail... Очень много ошибок. Файл hge.h находит, но ругается на каждую строчку. Чо за херь? Ранее собирал проект так же, и все работало. May be it's virus?

Mhyhr 14.12.2010 18:04

Ответ: HGE вопрос
 
В настройках проекта выбран точно gcc?

Morganolla 14.12.2010 23:13

Ответ: HGE вопрос
 
HGE вроде расчитан на VS 6?

Reizel 15.12.2010 12:56

Ответ: HGE вопрос
 
Нет, компилятор 100% gcc, проверял, ранее прогал на C::B, и все было ок. Сейчас какие то лаги. Чтож, на выходных буду сносить систему :(

а то что то у меня вирусы совсем озверели - просто один svchost при загрузке вешает комп, почти полностью. Я научился находить его в дисптчере, но после отключения вылетает такая квадратная форточка (не знаю как называется, убивается shutdown -a) , на этот случай есть батник на раб.столе :-D а после этого просто проблемы с нетом, и частая мессага Сервер RPC недоступен. и консоль почти не пашет :(

Morganolla 16.12.2010 19:36

Ответ: HGE вопрос
 
Советую не мучать морально устаревший HGE , а сразу переходить на SFML!
Это будет гораздо перспективнее!

Reizel 16.12.2010 22:45

Ответ: HGE вопрос
 
Снес HGE с C::B, поставил Dev C++ и Xors

Morganolla 17.12.2010 01:01

Ответ: HGE вопрос
 
Зря Хорс.
Во-первых исходники закрыты - не сможешь разобраться и изучать.
Во-вторых платный - триал 30 мин. вроде.


Часовой пояс GMT +4, время: 06:01.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot