Häufig gestellte Fragen:
cocos2d für das I-Phone: Box2D: Kompilieren Sie Fehler nach dem Hinzufügen #import "box2d.h" Box2D: compile errors after adding #import "box2d.h"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!
Box2D wird in C ++ geschrieben. Alle Dateien, die Box2d über #import verwenden, werden als Ziel C ++ Code kompiliert werden müssen. Sonst werden Sie Fehler bekommen wie: Otherwise you will get errors such as:
- erwartet '=', ',', ';', 'asm' oder '__ schreiben __' vorher 'b2_version' zu
- nicht bekannt gemachter 'std' (verwenden zuerst in dieser Funktion)
- erwartet',' oder';' vorher ':' Jeton token
- erwarteter specifier-qualifier-list vorher 'b2Vec2'
- erwartet')' vorher '*' Jeton
- erwartet';' vor 'der Leere'
- erwarteter Bezeichner oder' (' vorher ':' Jeton
- Typ-Verzug zur 'internen Nummer' in der Behauptung von 'b2Vec2'
- Cassert: Keine solche Datei oder Verzeichnis
- cmath: Keine solche Datei oder Verzeichnis
- cfloat: Keine solche Datei oder Verzeichnis
- cstddef: Keine solche Datei oder Verzeichnis
- und noch viele "keine solche Datei oder Verzeichnis"
Wenn einige von diesen vertraut klingt, lesen Sie darauf!
Lösung #1:
Ändern Sie Dateityp aller.m Dateien dieser Gebrauch Box2dÜber das Recht oder Kontrollklick auf der Quelldatei (.) können Sie den Dateityp ändern. Ändern Sie es zu sourcecode.cpp.objcpp, wie gezeigt, oben.
Lösung #2:
Benennen Sie Datei zu.mm umDie Alternativlösung ist, einfach die.m Dateien umzubenennen, die Box2d zu.mm Dateien verwenden. So ist's recht!.









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.