Stap 10: De bouw: knoppen toevoegen, weergaven beheren
Eerste neem een blik bij het toevoegen van knoppen in onze app met behulp van de bodem. In de functie van mijn loadButtons(), heb ik geladen de PNG's voor alle afbeeldingen die ik zal gebruiken, en noemde het vervolgens voor de hoofdlus.
(1) ik heb verklaard unieke GLuint variabelen (minusX, plusX..) voor elke afzonderlijke knop in de scene.
(2) geven het pad naar uw texturen
Ten tweede, wilt weergeven deze texturen, ik hen gebonden aan GL_QUADS en toonde hen gezicht voorzijde. Dit biedt de flexibiliteit om te animeren hen.
Ik deed het in de DrawSceneD()-methode, want zoals u weet, het was de grote viewport links van de app.
(1) ten eerste gebruiken we glPushMatrix() en de respectieve glPopMatrix() functies voor elke afzonderlijke GL_QUAD gezicht.
gebruik vervolgens glTranslate (x, y, z) om deze te verplaatsen naar de gewenste positie in onze viewport.
(2) gebruiken we de variabele die we gebruikt om te definiëren van elke knop textuur in de scene.
(3) klik vervolgens maken we de werkelijke QUAD gezicht. We gebruiken glTexCoord2d() om op te geven van de UV-coördinaten voor elke vertex van het gezicht. Kortom, vertellen openGL hoe toe te passen onze textuur op het gezicht van de GL_QUAD , of willen de textuur streached, herhaald, enz.
Ik had het proces herhalen voor elke knop, zoals je uit de opmerkingen zien kunt, ik de code heb verdeeld in de knoppen elk segment is verantwoordelijk voor het gemak van debugging.
Neem nu een kijkje op de andere drie DrawScene() methoden die we eerder hebt gedefinieerd:
(1) DrawSceneC() en DrawSceneA() methoden zijn verantwoordelijk voor de voorkant en het zijaanzicht van de scène.
glTranslatef (0, 0, -10.0f) hier verplaatst het object een beetje ver weg van de viewport voor gemakkelijk incpection.
drawCubes() is een speciale functie die ik in de volgende stap bespreken zal.