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?


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

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