Problem mit if und else if



  • Ich hab noch ein Problem auf meinem Weg, in OpenGL ein Spiel zu programmieren.
    Da es aber wieder nur um c++ geht, werde ich es wieder hier posten.

    Wie schon der Titel sagt, habe ich ein Problem mit if und else if.

    mein Code:

    while (fertig == false)								
    	{
    		if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))	
    		{
    			if (msg.message==WM_QUIT)				
    			{
    			fertig = true;						
    			}
    			else									
    			{
    				TranslateMessage(&msg);				
    				DispatchMessage(&msg);				
    			}
    		}
    		else										
    		{
    
    			if (active == true)			
    			{
    				if (taste[VK_ESCAPE])				
    				{
    					fertig = true;
    				}
    				else								
    				{
    					DrawGLScene();
    				      SwapBuffers(hDC);				
    				}
    			}
                if (taste[VK_PRIOR])
                {
                    taste[VK_PRIOR] = false;
                    if (Zoomend = false)
                    {
                        Zoomend = true;
                        Zoom = PosZ;
                    }
                    Zoom -= 0.05f;
                }
                else if (taste[VK_NEXT])
                {
                    taste[VK_NEXT] = false;
                    if (Zoomend = false)
                    {
                        Zoomend = true;
                        Zoom = PosZ;
                    }
                    Zoom += 0.05f;
                }
                else if (taste[VK_LEFT])
                {
                    taste[VK_LEFT] = false;
                    RotY -= 1.0f;
                }
                else if (taste[VK_RIGHT])
                {
                    taste[VK_RIGHT] = false;
                    RotY += 1.0f;
                }
                else if (taste[VK_DOWN])
                {
                    taste[VK_DOWN] = false;
                    PosZ -= 0.2f;
                    PosY = (sin(PosZ))*0.05;
                }
                else if (taste[VK_UP])
                {
                    taste[VK_UP] = false;
                    PosZ += 0.2f;
                    PosY = (sin(PosZ))*0.05;
                }
                else if (taste['Z'])
                {
                     Zoomend = false;
                }
            }
        }				
    }
    

    in dem Feld taste[...] steht, ob in diesem Schleifendurchlauf eine Taste betätigt wurde.

    Nun ist es aber aus mir unveratändlichen gründen so, dass Zoomend nie true ist.

    Warum ist das so ?

    Alle anderen Tasten ausser VK_PRIOR (Page Up) und VK_NEXT (Page Down) funktionieren, die ensprechenden Blocks werden ausgeführt.

    Ich habe wirklich alles ausprobiert, Zoomend bleibt false

    Ich wäre wirklich froh, wenn ihr mir helfen könntet.

    Tim[code]


  • Administrator

    if(Zoomend = false)
    

    Und sowas hast du nicht nur einmal hingeschrieben. Der Vergleich geht über operator == . Was du machst ist eine Zuweisung.
    Aber sag mal, wenn du noch bei solchen Dingen scheiterst, ist es da nicht ein wenig übereilt, bereits mit OpenGL zu programmieren?

    Grüssli



  • danke!

    Ne, ich denke nich...
    bin nur ein bisschen überarbeitet / müde

    mfg


Anmelden zum Antworten