Referencia de la Clase zak::Input

Lista de todos los miembros.

Métodos públicos

int InitializeDirectInput (HINSTANCE hInstance, HWND hWnd)
void EndDirectInput (void)
void Acquire (void)
void CleanBuffer (void)
void Reacquire (void)
void Unacquire (void)
void GetKeyEvent (void)
void SetPosition (long x, long y, long z)
void EventClean (void)
bool ToggleMouseExclusive (bool mouseExclusive)
bool IsMouseExclusive ()

Atributos públicos

BYTE _KeyBuffer [256]
BYTE _KeyPrevBuffer [256]
BYTE _KeyEvent [256]
InputMouseData _MouseData
DIMOUSESTATE MouseTaken
DIJOYSTATE JoyTaken [ZAK_MAX_INPUT_DEVICE]
InputJoystickData _joyData [ZAK_MAX_INPUT_DEVICE]

Atributos públicos estáticos

static int _deviceCount
static GUID _guid [ZAK_MAX_INPUT_DEVICE]

Descripción detallada

Clase de manejo de dispositivos de entrada (GamePad, Mouse, Teclado, etc). Ejemplo de uso:
 bool TestGame::OnInit() {

        _clearScreen = true;

        _shape.SetDim(100,100);
        _shape.SetPos(0,0);
        _shape.SetColor(0xFF00FF00);
        _shape.SetShape(ZAK_SHAPE_QUAD);

        _speedX = 0.0f;
        _speedY = 0.0f;

        g_renderer.SetViewPosition((float)(g_renderer.GetViewPortWidth()/2),(float)(g_renderer.GetViewPortHeight()/2));

        g_renderer.SetFont(FT_ARIAL);
        g_renderer.SetFontColor(0xFFFF0000);

        return true;
}

void TestGame::OnFrame() {
        
        _posX = _shape.GetPosX();
        _posY = _shape.GetPosY();
        
        _speedX = 0.0f;
        _speedY = 0.0f;

        if (KeyDown(DIK_ESCAPE))
                PostQuitMessage(0);

        // Si mantengo presionada la tecla cursor izquierda
        if (KeyPressed(DIK_LEFT)){ 
                _speedX = -SPEED;
                
        // Si mantengo presionada la tecla cursor derecha
        } else if (KeyPressed(DIK_RIGHT)) { 
                _speedX = SPEED;
        } 

        // Si mantengo presionada la tecla  cursor arriba
        if (KeyPressed(DIK_UP)) { 
                _speedY = SPEED;
        
        // Si mantengo presionada la tecla cursor abajo
        } else if (KeyPressed(DIK_DOWN)) { 
                _speedY = -SPEED;

        } 

        // Si muevo el mouse
        if (MouseRelPosf(ZAK_INPUT_MOUSE_POS_X) != 0.0f) { 
                _posX += MouseRelPosf(ZAK_INPUT_MOUSE_POS_X);
        } 
        if (MouseRelPosf(ZAK_INPUT_MOUSE_POS_Y) != 0.0f) { 
                _posY += MouseRelPosf(ZAK_INPUT_MOUSE_POS_Y);
        }

        // Si hay algún joystick conectado 
        if (JoystickCount() > 0) { 

                // Verifico si la posición del joystick es diferente del centro
                if (JoystickPosf(0, ZAK_INPUT_POS_X) != 0.0f) { 

                        // Muevo el pad respecto de la posición del joystick
                        _speedX = JoystickPosf(0, ZAK_INPUT_POS_X)/1024*SPEED;
                }
                // Verifico si la posición del joystick es diferente del centro
                if (JoystickPosf(0, ZAK_INPUT_POS_Y) != 0.0f) { 

                        // Muevo el pad respecto de la posición del joystick
                        _speedY = -JoystickPosf(0, ZAK_INPUT_POS_Y)/1024*SPEED;
                }
        }

        // Actualizamos la posición
        _posX += _speedX*(float)_fpsMeter.GetDT();
        _posY += _speedY*(float)_fpsMeter.GetDT();

        _shape.SetPos(_posX, _posY);
        _shape.Update((float)_fpsMeter.GetDT());
}

void TestGame::OnDraw() {

        _shape.Draw();

        wstringstream ss;

        ss << ZAK_ENGINE_NAME << endl << "FPS: " << _fpsMeter.GetFps() << endl;
        // Si hay algún joystick conectado 
        if (JoystickCount() > 0) { 
                ss << "JoyX: " << JoystickPosf(0, ZAK_INPUT_POS_X) << " - JoyY: " << JoystickPosf(0, ZAK_INPUT_POS_Y) << endl;
        }
        ss << "MouseAbsPosX: " << MouseAbsPosf(ZAK_INPUT_MOUSE_POS_X)  << " - MouseAbsPosY: " << MouseAbsPosf(ZAK_INPUT_MOUSE_POS_Y)  << endl;
        ss << "MouseWorldPosX: " << MouseWorldPosf(ZAK_INPUT_MOUSE_POS_X)  << " - MouseWorldPosY: " << MouseWorldPosf(ZAK_INPUT_MOUSE_POS_Y)  << endl;


        g_renderer.DrawString(ss.str(),10,10,800-20,600-20,ZAK_TEXT_LEFT);
}
Autor:
Juan Pablo "McKrackeN" Bettini


La documentación para esta clase fué generada a partir de los siguientes archivos:
Generado el Tue May 29 14:46:15 2007 para Zak Engine v1.1.0 por  doxygen 1.5.1-p1