Objekt plazieren



  • Hey also ich habe ein Problem. Ich erstelle ein Objekt und möchte auf dem andere plazieren. Dazu nehme ich mir die Daten des untersten Objektes und beziehe somit die Maße. Mit der Höhe und Breite klappt das 1a.

    Die objekte die ich zeichnen möchte, sollen erstmal die gleichen X und Y Werte benutzen. Wenn ich jedoch den anderen Objekten die X und Y Werte übergebe, fängt er die Objekte immer genau im Zentrum des anderen zu zeichnen und nicht an den Koordinaten.

    #include "Keyboard.h"
    
    CKeyboard::CKeyboard()
    {
    	TasX = -0.2;
    	TasY = 0.2;
    	TasW = 0.5;
    	TasH = 0.5;
    
    	Key.push_back(new CKey('a'));
    	Key.push_back(new CKey('b'));
    	Key.push_back(new CKey('c'));
    	Key.push_back(new CKey('d'));
    	Key.push_back(new CKey('e'));
    	Key.push_back(new CKey('f'));
    	Key.push_back(new CKey('g'));
    	Key.push_back(new CKey('h'));
    	Key.push_back(new CKey('i'));
    	Key.push_back(new CKey('j'));
    	Key.push_back(new CKey('k'));
    
    	Key.push_back(new CKey('a'));
    	Key.push_back(new CKey('b'));
    	Key.push_back(new CKey('c'));
    	Key.push_back(new CKey('d'));
    	Key.push_back(new CKey('e'));
    	Key.push_back(new CKey('f'));
    	Key.push_back(new CKey('g'));
    	Key.push_back(new CKey('h'));
    	Key.push_back(new CKey('i'));
    	Key.push_back(new CKey('j'));
    	Key.push_back(new CKey('k'));
    
    }
    
    CKeyboard::~CKeyboard(void)
    {
    	// Dekonstruktor
    }
    
    void CKeyboard::drawKeys()
    {
    	KeyX = TasX;            
    	KeyY = TasY;            
    	KeyW = TasW/12;
    	KeyH = TasH/6;
    
    	for(unsigned int x = 0; x < Key.size(); x++)
    	{
    		glPushMatrix();
    		glLoadIdentity();
    		glTranslatef(KeyX,KeyY,0.0f);
    		glColor3f(0.0f,0.0f,0.0f);
    		glBegin(GL_QUADS);
    			glVertex2f(-KeyW/2,-KeyH/2);
    			glVertex2f(-KeyW/2,KeyH/2);
    			glVertex2f(KeyW/2,KeyH/2);
    			glVertex2f(KeyW/2,-KeyH/2);
    		glEnd();
    		glPopMatrix();
    		KeyX += KeyW + 0.005;
    	}
    }
    
    void CKeyboard::drawKeyboard()
    {
    	glPushMatrix();
    	glLoadIdentity();
    	glTranslatef(TasX,TasY,0.0f);
    	glColor3f(0.0f,0.0f,1.0f);
    	glBegin(GL_QUADS);
    		glVertex2f(-TasW,-TasH);
    		glVertex2f(-TasW,TasH);
    		glVertex2f(TasW,TasH);
    		glVertex2f(TasW,-TasH);
    	glEnd();
    	glPopMatrix();
    	drawKeys();
    }
    

    mache ich etwas falsch?
    Den Code habe ich nur mal eben schnell geschrieben um zu testen ob ich die richtig positionieren kann. Die Klasse CKey macht gar nichts außer die Tasten mit dem Standartkonstruktor zu erstellen und im Mainprogramm wird einfach die Funktion drawKeyboard() zu zeichnen.



  • Hat keine einer Ahnung wo mein Fehler liegt?


Anmelden zum Antworten