Vra

Ek het 'n OpenGL ES spel wat ek saam is inbraak. Een deel van dit behels die soeke na 'n groot "kaart-agtige" area en dan dubbel-tapping op een deel na "zoom in" dit. Hoe sou jy OpenGL ES gebruik om hierdie effek (gegee dat dit mag nodig wees om in te zoem op verskillende dele van die kaart) verskaf.

Ek het gehoor van glScale en glOrtho, maar ek is onduidelik oor hoe hulle eintlik werk sedert die hele openGL wêreld is baie nuut vir my.

Was dit nuttig?

Oplossing

Die 2-D inzoomen jy beskryf kan beter word bereik met behulp van Core Animation. NSView (en sy NDA'd iPhone eweknie) bied implisiete animasie wanneer jy hul raam verander. Al wat jy wil hoef te doen in hierdie geval sou wees om origin.x die raam en origin.y en size.width en size.height stel om sodanige waardes van die oog groter as die skerm te maak. As jy dit gedoen het en rol dit in die toepaslike oproepe om te begin en pleeg 'n animasie, wil jy 'n soom animasie gratis kry. Core Animation gebruik OpenGL agter die skerms vir sy animasies.

As jy egter voel dat jy hoef te doen in OpenGL, kan ek raai 'n bietjie writeup Ek het by http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es ? Ek is die skrywer van Molekules , 'n gratis 3-D molekulêre Visualizer vir die iPhone, en ek het geweet niks oor OpenGL ES voordat ek begin die projek. 3 weke later, was dit in die App Store as dit van stapel gestuur.

OpenGL oproepe is redelik eenvoudig, dit is die wiskunde rondom die wat vir julle hoofpyn kan gee. Inzoomen op voorwerpe is eintlik redelik eenvoudig, en kan óf gedoen word deur die beweging van die kamera of deur eintlik fisies skalering voorwerpe. Vir Molekules, het ek die roete van skalering die voorwerp met behulp van die glScalef (x, y, z) funksie, waar x, y, en z is die skaal faktore wat jy wil aansoek doen om jou model voorwerp. Ek doen my skaal geleidelik. Dit wil sê, ek het nie die transformasie matriks te herstel aan die begin van elke gelewer raam (met behulp van glLoadIdentity ()), maar net die skaal dit 'n bietjie gebaseer op die gebruiker se toevoer. As die gebruiker hul vingers uitmekaar beweeg deur 5%, verhoog ek die skaal met 5%.

Weereens, ek raai Core Animation vir die 2-D inzoomen jy beskryf, maar dit is nie te moeilik om dieselfde resultate in OpenGL ES bereik.

Ander wenke

Respek, die antwoord is om 'n paar dae neem om die basiese beginsels van OpenGL leer, en daar is baie beter plekke vir wat op die netto as hier.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top