Поповоду второго:
#include "..\Engine\squad.h"
typedef void (*KeyAction)();
static KeyAction keyBind[240]; // всего OIS потдерживает 237 клавиш,округлил.
void ExitAction(){
Squad::EnginePtr()->exit();
}
class Game : public Squad::EngineListener{
public:
bool keyPressed(const OIS::KeyEvent& _arg){
if( keyBind[_arg.key] != 0 )
keyBind[_arg.key]();
return Squad::EngineListener::keyPressed(_arg);
}
};
void main(){
memset(keyBind,0,sizeof(keyBind));
keyBind[OIS::KC_ESCAPE] = ExitAction;
Squad::Engine* engine = Squad::Engine::getInstancePtr();
engine->init(new Game,"");
engine->main();
engine->shutdown();
}