DirectX message-loop



  • hallo ihr lieben :),

    ich habe ein kleines problem mit meinem message-loop. ich übergebe meinen WPARAM an den teil des programms , den ich gerade steuern moechte , dazu benutze ich diese enum :

    enum EGamemode
    {
    	PLAYMODE,
    	CONSOLEMODE,
    	PAUSEMODE
    };
    

    und dann sage ich im main loop :

    LRESULT TestApp::MsgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    	switch (msg)
    	{
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		return 0;
    
    	case WM_KEYDOWN:
    		switch (GameState)
    		{
    		case CONSOLEMODE:
    			SystemCls->HandleKeyInput(wParam, GameState);
    			break;
    
    		case PLAYMODE:
    			HandleKeyInput(wParam);
    			break;
    		}
    		return 0;
    	}
    	return DefWindowProc(hwnd, msg, wParam, lParam);
    };
    

    allerdings scheint das programm egal welcher GameState gerade ist die funktion HandleKeyInput aufzurufen.
    worn liegt das?

    schomal danke und liebe grüße,
    whiletruedo



  • switch (GameState)
            {
            case CONSOLEMODE:
                SystemCls->HandleKeyInput(wParam, GameState);
                break;
    
            case PLAYMODE:
                HandleKeyInput(wParam);
                break;
            }
            return 0;
    

    Müsstest du GameState nicht aus dem wParam nehmen? Sieht so aus, als ob du das aus einer globalen Variable nimmst? Was sagt denn der Debugger?



  • du hattest recht. vielen dank jetzt läuft es 🙂


Anmelden zum Antworten