Häufig gestellte Fragen:
cocos2d für das I-Phone: Wie man den Cocos2d-I-Phone-Code in einem mit einer Cocos2d-Projektschablone geschaffenen Projekt aktualisiert? How to update the cocos2d-iphone code in a project created with a cocos2d Project Template?Suchen Sie meinen cocos2d für häufig gestellte I-Phone-Fragen & Tutorenkurse
Bemerken Sie bitte, dass die Blog-Suche an der oberen richtigen Ecke meine häufig gestellten Fragen und Tutorenkurse nicht sucht.- Bemerken Sie: Teilen Sie bitte direkte Download-Verbindungen zu PDF Dateien nicht, die Download-Verbindungen laufen nach einem Paar Minuten ab!
Die beste Lösung würde sein, Quellkontrolle zusammen mit meiner Xcode-Projektschablone zu verwenden. Ich verstehe, dass nicht jeder in dieser glücklichen Situation ist, und dass das Verwenden der Quellkontrollsoftware, um Änderungen zu verschmelzen, alles andere als für das uneingeweihte trivial ist. So wollte ich die Schritte entwerfen, die Sie tun müssen, um sicherzustellen, dass Sie noch zur letzten cocos2d Version befördern können, selbst wenn Sie von einer Cocos2d-Projektschablone anfingen. So i wanted to outline the steps you need to do to ensure you can still upgrade to the latest cocos2d version even if you started from a cocos2d Project Template.
Der Betrag der Anstrengung, die darin und der Betrag von Problemen eintritt, denen Sie gegenüberstehen werden, hängt ab, sowohl welche Versionen Sie von als auch bis sowie Ihr eigener Quellcode größtenteils befördern, wie verflochten Ihr Code mit dem cocos2d Motorcode ist.
Unterstützung, bevor Sie das Steigungsverfahren anfangen
Machen Sie eine Kopie Ihres Projektes, im Falle dass Sie anfangen müssen oder Sie sich in einer Situation des toten Punkts finden und entscheiden werden, dass Sie lieber nicht aktualisieren möchten.
Beachten Sie, dass, während es vernünftig scheinen kann, nur die Teile des cocos2d Motors zu befördern, dass Sie sich für in Wirklichkeit interessieren, das gerade Schwierigkeiten buchstabiert und meistenteils ebenso nicht arbeiten wird. Oder überhaupt nicht. So werden Sie alle cocos2d befördern. So you'll be upgrading all of cocos2d.
Außerdem, wenn Sie weit hinten langsam vergehen, zum Beispiel verwenden Sie noch cocos2d v0.8x oder unten und wollen zu v0.99 befördern die Unterschiede können so riesig sein, dass eine Steigung nahezu unmöglich ist. Stattdessen können Sie eine verschiedene Annäherung #2 in diesem Fall (sieh unten) versuchen wollen.
Nähern Sie sich #1:
Ersetzen Sie cocos2d DateienDiese Annäherung wird nur empfohlen, wenn Ihre cocos2d Version, die Sie zurzeit verwenden, weit hinter dem Strom cocos2d Version nicht isoliert, wollen Sie dazu befördern. Als Faustregel, wenn es weniger als 0.1 Versionsnummern sind, können Sie im Stande sein, mit dieser Annäherung erfolgreich zu sein, sonst die Annäherung #2 unten zu versuchen! Diese Annäherung ist nicht für das schwache vom Herzen und einen guten Betrag von Projekteinstellungskenntnissen und dem Verstehen, dass Bearbeiter-Fehler erwartet werden. This approach is not for the faint of heart and a good amount of project setup knowledge and understanding compiler errors is expected.
- laden Sie die letzte cocos2d Version herunter und gehen Sie nötigenfalls auf, ich nehme an, dass es jetzt in einer Mappe genannt Cocos2d-I-Phone ist
- vom Cocos2d-I-Phone Mappe kopieren diese Mappen:
/cocos2d
/CocosDenshion
/cocoslive
/external/Box2d
/external/Chipmunk
/external/FontLabel
/external/libpng
/external/TouchJSON
/external/Tremor
- löschen Sie die vorhandenen Mappen in Ihrem Projekt und dann kleben Sie diese Mappen in den Platz auf (aktualisieren Sie sie nicht nur, weil sonst Sie nicht umziehen werden, löschte irgendwelcher vielleicht Dateien von der neuen cocos2d Version). Bemerken Sie: Einige der Mappen werden in verschiedenen Positionen sein, so können Sie sie eins nach dem anderen kopieren und aufpassen müssen, dass Sie sie zum richtigen Platz kopieren!some of the folders will be in different locations so you may have to copy them one-by-one and take care that you copy them to the correct place!
- öffnen Sie Xcode und fügen Sie irgendwelche durch die neue cocos2d Version hinzugefügten Dateien hinzu, die zu Ihrem Projekt noch nicht hinzugefügt werden
- entfernen Sie irgendwelche cocos2d Dateien vom Projekt, die in rot gezeigt werden, müssen sie von der neuen cocos2d Version entfernt worden sein
Versuchen Sie jetzt zu bauen. Sie werden wahrscheinlich viele Fehler bekommen. Das soll erwartet werden. Befestigen Sie irgendwelche Fehler, die in Ihrem Code sind. Versuchen Sie nicht, Fehler in cocos2d zu befestigen - Sie wollen, dass Ihr Code mit der neuen cocos2d Version, nicht dem anderen Weg ringsherum arbeitet! This is to be expected. Fix any errors that are in your code. Don't try to fix errors in cocos2d - you want your code to work with the new cocos2d version, not the other way around!
Wenn Sie alle Probleme nicht auflösen können und sie scheinen, inner zu sein cocos2d, dann kontrollieren das alle Dateien zweimal, die durch die neue cocos2d Version hinzugefügt worden sein können, werden auch zu Ihrem Projekt hinzugefügt. Wenn das noch nicht hilft, können Sie mehr Glück haben, die zweite Annäherung versuchend.
Nähern Sie sich #2:
Fangen Sie ein neues Projekt von der Schablone an, dann fügen Sie Ihren eigenen Code & Vermögen wiederhinzuWenn die Versionsunterschiede der cocos2d Version Sie arbeiten zurzeit mit und derjenige, zu dem Sie befördern wollen, zu groß sind, könnten Sie eine verschiedene Annäherung versuchen wollen. Als Faustregel, wenn Sie langsam vergehen, können mehr als 0.1 Versionsnummern hinter dieser Annäherung mehr vernünftig sein. Es hat auch den grössten Teil des Sinns, wenn Ihr Projekt aus nicht zu viele Klassen und Dateien besteht. It also makes the most sense if your project consists of not too many classes and files.
Installieren Sie in diesem Fall die neue cocos2d Version und fangen Sie ein neues Projekt mit der neuen cocos2d Version an. Dann einfach fügen Sie Ihren eigenen Code und Mittel zu diesem Projekt wiederhinzu und befestigen Sie irgendwelcher kompiliert Fehler, die erscheinen könnten. Auf diese Weise können Sie sicher sein, dass irgendwelche Fehler wegen Ihres Codes sind, der nicht wird aktualisiert, um mit der letzten cocos2d Version im Vergleich mit dem nicht Wissen zu arbeiten, ob Sie wirklich ersetzt und alle cocos2d Dateien richtig hinzugefügt haben, wie mit der Annäherung #1 oben der Fall sein wird. In this way you can be certain that any errors are due to your code not being updated to work with the latest cocos2d version as opposed to not knowing whether you've really replaced and added all cocos2d files correctly, as will be the case with approach #1 above.
Aber veranstalten Sie Ihre Hoffnungen nicht: Sie werden noch wahrscheinlich eine Tonne von Fehlern erhalten. Besonders, wenn Ihr Code gegen eine cocos2d Version gebaut wird, die den CC namespace noch nicht verwendete (alle cocos2d Klassennamen werden jetzt mit dem CC vorbefestigt). Especially if your code is built against a cocos2d version which didn't use the CC namespace yet (all cocos2d class names are now prefixed with CC).









Das Erleuchten des Postens. Dank!
Und, natürlich, habe ich einige Frage
- alles ist relativ, aber für den allgemeinen Code ist besser, um NSString, NSArray zu verwenden (und die Kosten zu bezahlen, neue Gegenstände zu schaffen), oder die veränderlichen? Welcher kann die Rahmen sein, um zwischen jedem zu wählen?
- Ich frage mich, ob das neue I-Phone 4.0s größere Leistung ein Problem sein wird. Spiele die führen glatt im I-Phone 1. und 2. Generationsgeräte, werden wahrscheinlich zu schnell laufen?
Hallo Max,
ich bezweifle, dass die NSMutable* datasets Leistungsmörder sind. Ich habe keine Tests gemacht, aber ich bin ziemlich überzeugt, dass, wenn Sie sie überhaupt nicht ändern, sie wahrscheinlich ebenso gut leisten werden wie die nichtveränderlichen. Jetzt einmal Sie muss *do* die Reihe oder Schnuren ändern es ist gut, sie veränderlich zu haben, so dass auf Zeug für Sie hinter den Kulissen aufgepasst wird. Andererseits, wenn Sie wissen, dass Sie nur die Sachen einmal schaffen werden, aber nie wiederbestellt, entfernen oder hinzufügen, dass andere dann die nichtveränderlichen verwenden. Für mich ist es eine Sache des Gebrauch-Falls aber nicht der Leistung. Now, once you *do* need to change the arrays or strings it’s good to have them mutable so that stuff is taken care for you behind the scenes. On the other hand, if you know that you’ll only be creating the items once but never re-order, remove or add others then use the non-mutable ones. For me it’s a matter of use case rather than performance.
Spiele werden schneller auf neueren Geräten nicht laufen. cocos2d's CCDirector überzeugt sich davon. Sie erholen sich framerates natürlich, aber nicht schneller gameplay. Das hält für alle modernen Spielmotoren für wahr. You do get better framerates of course but not faster gameplay. That holds true for all modern game engines.