wo zu beginnen, für die Spiele-Entwicklung? UIKit vs Core Animation vs QuartzCore vs OpenGL vs cocos2D
Wenn ich war daran interessiert, über Spieleentwicklung auf dem iPhone/iPAD Anregungen, auf welche Technik(en) zu Beginn der Suche in? In der Tat, nur eine einfache Kugel auf jeder dieser Technologien, die markieren, wie es passt in typischen Spiele-Entwicklung würde groß sein, da der Grund für diese Frage war für mich nicht zu verstehen, wie diese zusammen passen. Also in diesem Fall ist es, wo diese ungefähr passen:
- UIKit
- Core Animation
- QuartzCore
- OpenGL
- cocos2D
War ich immer den Eindruck, dass cocos2D wäre der Weg zu gehen, und es scheint ein einfacher wrapper für OpenGL? Nicht sicher, wo die Blätter UIKit vs Core Animation vs QuartzCore dann?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok gut, ich werde versuchen zu machen, eine ziemlich lange Antwort kurz zu machen: es hängt davon ab.
Nun für ein paar mehr Gedanken und Erklärungen - das ist lang. Wenn Sie nicht Lesen es bis zum Ende, stellen Sie sicher, Lesen Sie die letzten paar Sätze.
Zuerst muss ich klarstellen, dass die "Technologien" oder API ' s, die du aufgezählt hast sind meist ausschließlich um die Grafik
(außer UIKit, die auch Griffe Eingang) und das ist in Ordnung, solange Sie verstehen
die Grafik ist nur ein Teil (und meiner Erfahrung, die ich hinzufügen könnte "minor") des
ein ganzes Spiel.
Neben der Grafik, wird es schon ein bisschen mehr zu behandeln, wenn dabei ein echtes Spiel.
Um nicht einen Weg von der Frage, zu viel lassen Sie mich nur werfen Sie in ein paar Schlagworte:
Spiel-Logik, AI, Ressourcen-management, Physik, Interaktion, Vernetzung (eventuell), sound, etc.
Meine Empfehlung ist, um ein gutes Buch zu dem Thema und Tauchen Sie in [1,2].
Nun, dass ich Magermilch, die, zurück zu deiner Frage:
Grundsätzlich, OpenGL und QuarzCore sind die Kern-Technologien, um "sich etwas auf dem Bildschirm gezeichnet werden". Alle anderen Technologien sind gebaut auf der Oberseite, dass. So in der Theorie, wenn Sie gehen wollen, dass
Art und Weise, die Sie implementieren können, alles rund um die Grafikausgabe mit OpenGL oder QuarzCore allein (in der Erwägung, dass müssen Sie berücksichtigen die Tatsache, dass QuarzCore ist der 2D-Zeichnung nur, in der Erwägung, dass die OpenGL-Unterstützung für 3D-und auch 2D ist wirklich nur ein spezieller Fall von 3D). Ich glaube wirklich, daß der Quarz ist auch das auf Basis von OpenGL, aber ich bin mir nicht sicher über diese.
UIKit ist gebaut auf der Oberseite von denen, und mit tut es im Grunde zwei Dinge: a) vermeiden das Rad neu erfinden möchte und b) machen die Erstellung von user interfaces einfacher, schneller und robuster. Natürlich könnte man ziehen jeden button selbst durch die Angabe der Koordinaten von einem quad, und senden diese an OpenGL für die Verarbeitung. Dann würden Sie haben zu prüfen, alle Benutzereingaben, wenn es trifft-Taste und Aufruf einer zugehörigen handler. Allerdings erstelle gerade einen UIButton Instanz (vielleicht sogar in IB) und die Angabe von ein-Klick-handler zu entfernen, ganz schön viel Arbeit.
Bottom line: UIKit ist perfekt geeignet für die Erstellung von user interfaces. Plus es kann verwendet werden, zusammen mit OpenGL und QuarzCore. Ich benutze es für die Benutzeroberfläche auf iOS auch in spielen.
Bezug auf Cocos2D: Das ist ein "game-engine" basiert auf OpenGL. Als solche enthält es eine ganze Menge von dem Zeug müsste man selbst behandeln, wenn Ihre eigenen Rollen engine auf Basis von OpenGL, d.h. Szene-management, sprites, Texturen, meshes, Ressourcen, etc. Ich glaube, es hat auch verbindungen zur Physik und Kollisionserkennung Bibliotheken. Um zu verstehen, was dort passiert ist, jedoch, erfordert zu lernen, wie computer-Grafik-und Spiele, Arbeit, [1,2,3].
Bottom line: Sie verwenden würde Cocos2D für (2D -) Spiel Grafiken und UIKit zu tun, die Benutzeroberfläche.
CoreAnimation ist dann zum animieren von CoreGraphics Zeug. Es bietet eine einfache Schnittstelle, z.B. für sanft gleitenden oder rotierenden Zeug herum, welche alle erforderlichen Berechnungen (Interpolation, festigen etc.). Funktioniert nicht mit OpenGL - aber ich denke, Cocos2D wird auch ein wrapper für das.
Bottom line: Verwenden Sie für ausgefallene user-interface-Animationen.
Nachdem alles gesagt, dass, und einfach nur skimming die Spitze wollte ich nicht, um zu erschrecken Sie in den ersten Platz.
Für Ihre spezielle Spiel (und jedes Spiel ist etwas besonderes) Sie könnten auch Weg mit nur UIKit und CoreAnimiation für die Grafik und könnte es sich gut machen, ist ein blockbuster-Spiel. Sie erlauben es, eine Menge von Zeichnung statt mit einer einfach zu bedienenden interface plus-Sie benötigen nicht zu tief Hintergrundwissen und ausreichend performant für kleine Projekte.
Haben Sie eine tolle Spiel-Idee, die einfachste möglich-Grafik-Lösung, die Sie zufriedenstellt und Ihre Spieler und merkt es sich. Sobald du es hast, können Sie immer noch verbessern, wenn nötig.
[1]http://www.mcshaffry.com/GameCode/
[2]http://www.gameenginebook.com/
[3]http://www.opengl.org/documentation/red_book/