Cocos2d-Buch, Kapitel 6: Spritesheets & Zwoptex

Am 30. Juli 2010, in Ansagen, Buch, cocos2d, durch Steffen Itterheim by Steffen Itterheim

Kapitel 6 - Spritesheets und Zwoptex

In diesem Kapitel wird der Fokus auf Spritesheets sein (Textur-Atlas), was sie sind, und wenn, wo und warum man sie verwendet. Natürlich würde ein Kapitel über Spritesheets nicht abgeschlossen sein, ohne das Zwoptex Werkzeug einzuführen. Die in diesem Kapitel hinzugefügte Grafik wird dann für das im folgenden Kapitel geschaffene Spiel verwendet. The graphics added in this chapter will then be used for the game created in the following chapter.

Das Kapitel wird am Freitag, dem 6. August vorgelegt.

Irgendetwas über Spritesheets wollten Sie immer wissen?

Teilen Sie mir gerade mit. Ich werde forschen, welche Problem-Leute waren und bezüglich Spritesheets haben. Ich will sicherstellen, dass sie alle im Buch bedeckt werden. I want to make sure that they are all covered in the book.

Verlassen Sie bitte eine Anmerkung oder schreiben Sie mir eine E-Mail.

Zusammenfassung des Arbeitens auf dem Kapitel 5 - Spielbausteine

Ich fand schließlich einen besseren Titel für das Kapitel. Ein großer Teil ist über das Arbeiten mit Szenen und Schichten. Eine LoadingScene Klasse wird durchgeführt, um das Speicherübergreifen zu vermeiden, zwischen zwei Szenen wechselnd. Schichten werden verwendet, um die Spielgegenstände seperately vom statischen UI zu modifizieren. Ich erkläre, wie man ins Visier genommene Berührungsdressierer verwendet, um Berührungseingang für jede individuelle Schicht, entweder schluckende Berührungen zu behandeln, oder nicht. A LoadingScene class is implemented to avoid the memory overlap when transitioning between two scenes. Layers are used to modify the game objects seperately from the static UI. I explain how to use targeted touch handlers to handle touch input for each individual layer, either swallowing touches or not.

Das Problem dessen, ob zur Unterklasse CCSprite oder nicht besprochen wird und ein Beispiel, wird gegeben, wie man Spielgegenstände schafft, Zusammensetzung verwendend und ohne von CCNode zu subklassifizieren, und wie das Berührungseingang und Terminplanung ändert.

Am Ende spezialisierte das Bleiben CCNode Klassen wie CCProgressTimer, CCParallaxNode und die CCRibbon Klasse mit dem CCMotionStreak werden eine Behandlung gegeben.

Wie Sie aus den Bildern sehen können, mache ich auch gute Fortschritte beim Werden ein großer Pixel-Künstler. Nur ich habe einen looooooong Weg vor mir noch. Aber ich gebe zu, wenig weiß ich über die Kunst, und wie viel weniger ich sie geübt habe, freue ich mich ziemlich über die Ergebnisse und den habenden Spaß damit. Der kühle Aspekt davon ist, dass das aufschlussreiche Kunst sein sollte. Es muss nicht gut sein. So gehe ich gerade voran und tue es und neige dazu, durch die Ergebnisse positiv überrascht zu sein. Ich werde wahrscheinlich dieses Thema im folgenden Kapitel über Spritesheets berühren: das Tun Ihrer eigenen Kunst. Es ist besser als nichts, es ist noch schöpferische Arbeit, selbst wenn es zu anderen hässlich sein kann, und es viel mehr befriedigt, alles selbst zu tun, selbst wenn es ein bisschen länger nimmt und als gut nicht schaut. Mindestens ist es alles Ihrig, Sie haben Spaß, und erfahren etwas entlang dem Weg. Und Sie können immer einen Künstler einmal später finden, der gerade über Ihre vorhandenen Images ziehen wird, oder wer Ihre Furz-Geräuscheffekte durch etwas Passenderes ersetzt. But I admit, the little I know about art and how much less I’ve practiced it, I’m pretty happy about the results and having fun with it. The cool aspect of it is that this should be instructive art. It doesn’t have to be good. So I just go ahead and do it and tend to be positively surprised by the results. I’ll probably touch this subject in the next chapter about Spritesheets: doing your own art. It’s better than nothing, it’s still creative work even if it may be ugly to others, and it’s a lot more satisfying to do everything yourself, even if it takes a bit longer and doesn’t look as good. At least it’s all yours, you’re having fun, and learn something along the way. And you can always find an artist sometime later who will just draw over your existing images or who replaces your fart sound effects with something more appropriate.

Btw, wenn Sie nach einem anständigen und freien Bildredigieren-Programm für den Mac suchen, habe ich Seeküste seit ungefähr einem Jahr jetzt verwendet, und ich bin damit ziemlich glücklich.

[Gelöster] unheimlicher Szene-Ändern-Programmfehler …

Am 27. Juli 2010, in cocos2d, durch Steffen Itterheim by Steffen Itterheim

Ich muss helfen. Ich bin in fremde Probleme mit einem sehr einfachen cocos2d v0.99.4 von der Cocos2d-Projektschablone geschaffenes Projekt geraten. Es sind zwei Szenen mit einer Schicht jeder viel wie die regelmäßige HelloWorldScene Schicht. Jede Szene soll einfach sich mit der anderen Szene auf der Berührung ersetzen. Was geschieht, ist, dass die erste mit runWithScene angefangene Szene nie deallocated nach der ersten Szene-Änderung ist. So bleibt es im Gedächtnis und setzt fort, die Berührungen zu erhalten, was bedeutet, dass sich eine Berührung immer als ob benimmt, von Anfang an auf die zweite Szene umschaltend. It’s two scenes with a layer each, much like the regular HelloWorldScene layer. Each scene is simply supposed to replace itself with the other scene, on touch. What happens is that the first scene started with runWithScene is never deallocated after the first scene change. So it stays in memory and keeps receiving the touches, which means a touch is always behaving as if switching from the first to the second scene.

Was mehr ist, wenn ich den onEnter und die onEnterTransitionDidFinish Methoden zur ersten Szene hinzufüge, ohne irgendeinen Code zu ihnen hinzuzufügen, erhält die erste Szene/Schicht keine Berührungsereignisse überhaupt. Die zweite Szene zeigt dieses Verhalten und Arbeiten nicht, die mit diesen durchgeführten Methoden fein sind.

Vielleicht überblicke ich gerade das sehr offensichtliche, wenn Sie ansehen und mir mitteilen konnten, wenn es irgendetwas gibt, was ich falsch mit diesem Code tue, teilen Sie mir bitte mit! Danke.

Laden Sie den Code hier herunter: ScenesAndLayers02

Cocos2d-Buch, Kapitel 4: Zuerst Einfaches Spiel

Am 17. Juli 2010, in Ansagen, Buch, cocos2d, durch Steffen Itterheim by Steffen Itterheim

Kapitel 4 - Zuerst Einfaches Spiel

Nachdem Kapitel 3 die Grundlagen des cocos2d Spielmotors bedeckte, wird dieses Kapitel stellen, um zu verwenden, was Sie erfahren haben. Das einfache Spiel ist alles über fallende Feinde, die Sie über Beschleunigungsmesser-Steuerungen vermeiden müssen. Sorte ähnlich ein umgekehrter Kritzelei-Sprung. Aber es ist nicht nur über den gameplay selbst, ich will, dass das Spiel mit einem Hauptmenü, Szene-Übergängen, Spiel zu Ende und natürlich Audio-vernünftig abgeschlossen ist. Sort of like an inverse Doodle Jump. But it’s not just about the gameplay itself, I want the game to be reasonably complete with a main menu, scene transitions, game over and of course audio.

Das Kapitel wird am Freitag, dem 23. Juli vorgelegt.

Haben Sie irgendwelche Vorschläge für das Spiel?

Was tut, denken Sie, sollte in einem ersten cocos2d Spiel sein? Teilen Sie mir mit!

Zusammenfassung des Arbeitens auf dem Kapitel 3 - Hauptsache

Als ich das Kapitel anfing, war ich über seinen Fokus nicht wirklich überzeugt, und Fortschritt war ein wenig langsam. Schließlich klickte es, und ich fand endend, schriftlich mehr Seiten habend als erforderlich und noch eine große Zahl von unsäglichen Dingen übrighabend. Der Schlüssel schaute auf die cocos2d API-Bezugsdokumentation und erinnerte sich daran, wem es ähnlich war, als ich ein Anfänger war. Sicher, jede Klasse, Methode und Eigentum sind dort, aber seit einem Anfang cocos2d Entwickler die API-Verweisung ist gerade eine riesige Liste von Namen. Mit anderen Worten, wenn Ihre Erfahrung war oder irgendetwas wie meinige ist, war, es ist enttäuschend, mit der API-Verweisung zu arbeiten. The key was looking at the cocos2d API reference documentation and remembering what it was like when I was a beginner. Sure, every class, method and property is there but for a beginning cocos2d developer the API reference is just a huge list of names. In other words, if your experience was or is anything like mine was, it’s frustrating to work with the API reference.

Ich endete damit, über das cocos2d Motordesign und seinen Szene-Graphen zuerst zu schreiben, die restlichen 80 % des Kapitels erklären im Detail mit vielen Codeproben, wie man verwendet, stopfen diejenigen CCNode Klassen. Alle wichtigen werden bedeckt: CCNode, CCScene, CCLayer, CCSprite, CCLabel, CCMenu, CCMenuItem* sowie der Direktor, die Übergänge und die Handlungen. Außer den Codeproben, und wie - zu ich zahlreiche Verwahrungen, häufige Fehler, beste Methoden und andere Knoten hinzugefügt habe, die soviel erforderlich sind, um jede Dokumentation abgeschlossen zu machen. CCNode, CCScene, CCLayer, CCSprite, CCLabel, CCMenu, CCMenuItem* as well as the Director, Transitions and Actions. Besides the code samples and how-to I’ve added numerous caveats, common mistakes, best practices and other nodes which are so very much needed to make any documentation complete.

Zum Beispiel, wie Schichten am besten verwendet werden, um andere Knoten zusammen und natürlich zu gruppieren, wie man Berührung und eingegebenen Beschleunigungsmesser ermöglicht, indem man die erforderlichen Funktionen hinzufügt, die in der API-Verweisung nicht erwähnt werden, da sie ein Teil des I-Phones SDK API sind. Es gibt auch eine unheimliche Empfehlung, die ringsherum schwimmt, um zu viele Schichten nicht zu verwenden, weil sie langsam sind. Ich kann nicht die Quelle finden, aber was ich wirklich fand, war, dass das nur wahr ist, wenn die Schichten Berührung oder Beschleunigungsmesser-Eingang ermöglichen, weil es ist, welch viel Leistung kostet. So, was Sie nicht haben wollen, ist mehrerer akzeptierender Schicht-Eingang, verwenden Sie sonst soviel Schichten, wie Sie brauchen - der viele irgendwie nicht sein sollte. Und wenn Sie wirklich vielfachen akzeptierenden Schicht-Eingang brauchen, warum nicht nur eine Master-Schicht verwenden (vielleicht einen Ins Visier genommenen Berührungsdressierer verwendend), welch vorwärts die Eingangsereignisse passend zu den anderen Schichten? I can’t find the source but what I did find was that this is only true if the Layers enable touch or accelerometer input, because that’s what costs a lot of performance. So what you don’t want to have is several layers accepting input, otherwise use as many Layers as you need – which shouldn’t be many anyway. And if you do need multiple Layers accepting input, why not just use one master Layer (possibly using a Targeted Touch handler) which forwards the input events appropriately to the other Layers?

Cocos2d-Buch, Kapitel 2: Angefangen zu werden

Am 2. Juli 2010, in Ansagen, Buch, cocos2d, durch Steffen Itterheim by Steffen Itterheim

Kapitel 2 - Angefangen zu werden

Dieses Kapitel fängt mit den üblichen Vorbedingungen an. Laden Sie herunter und installieren Sie I-Phone SDK und cocos2d. Installation cocos2d Schablonen. Das Schaffen des ersten Projektes von einem cocos2d plant Schablone. Installing cocos2d Templates. Creating the first project from a cocos2d project template.

Nach dem, was ich bereits schrieb, dass ich einschätze, dass das ungefähr ein Drittel des Kapitels sein wird. Ich denke, was in diesem Kapitel am interessantesten sein würde, soll über die allgemeine Codestruktur von Cocos2d-Projekten sprechen. Die Grundelemente wie Szenen, Schichten und Knoten. Wie man von einem Schirm bis einen anderen wechselt, um zu sehen, dass wir wirklich etwas Kühles mit wenig Anstrengung tun. Dafür denke ich, dass die vorgesehenen Auswählenden auch in Zeitübergänge vorgestellt werden sollten, und ein Schirm eine Schicht sein könnte, die auf den Berührungseingang wartet, um zum folgenden Schirm vorwärts zu gehen. The basic elements like Scenes, Layers and Nodes. How to transition from one screen to another, to see that we’re actually doing something cool with little effort. For that I think the scheduled selectors should also be introduced to time transitions, and one screen might be a Layer which is waiting for touch input to advance to the next screen.

Es könnte auch ein guter Platz sein, cocos2d Speichermanagement zu besprechen, wie statische Autoausgabe-Initialisierungsprogramme, und sich überzeugend wird dealloc genannt, wenn Sie Szenen schalten - sonst haben Sie offensichtlich eine Speicherleckstelle.

Die Absicht ist, den Leser in eine Position zu bekommen, wo er sich bequem fühlt, eine Schirm-Struktur in cocos2d legend. Er weiß, wie man Gegenstände initialisiert, und wie man hinzufügt und sie von der Szene entfernt. Das Fundament des Arbeitens mit cocos2d, wenn Sie so werden. The foundation of working with cocos2d if you so will.

Was tut, denken Sie, sollte im Kapitel 2 sein?

Teilen Sie mir mit, wenn Sie denken, dass ich irgendetwas Wichtiges verpasse. Wenn Sie keine Vorschläge haben, dann gerade denken daran, was Sie aus dem Kapitel erwarten würden, indem Sie diese Beschreibung lesen, die Ihnen einige Gedanken geben könnte.

Auch ich würde irgendwelche Tipps und die allgemeinen Fallen begrüßen, in die erst-malige cocos2d Entwickler sich fangen könnten. Erfahrene Tipps sind auch, jene kleinen scheußlichen Dinge oder Gewohnheiten willkommen, die Sie später beißen konnten, wenn Sie sie vom Anfang nicht denken.

Ich freue mich auf Ihr Feed-Back! Früher besser. Kapitel 2 wird als nächstes Freitag, der 9. Juli vorgelegt. Chapter 2 will be submitted next Friday, July 9th.

Was für das Kapitel nach diesem geplant wird

Um gerade Kapitel 2 im Zusammenhang für das Kapitel 3 zu stellen, plane ich, über wesentliche cocos2d Klassen und Prozesse zu sprechen. Elfen, Etiketten, Menüs, Handlungen, usw. Es wird Ihnen zeigen, wie man mit ihnen arbeitet, kleine Codeschnipsel verwendend. Das Kapitel wird wahrscheinlich einen "Bezugs"-Charakter mit verschiedenen Codeproben haben, so dass sich erfahrene Benutzer bequem fühlen, vorn hüpfend, während Anfänger es noch leicht und ermutigend finden, um die Details aufzunehmen. It’ll show you how to work with them using small code snippets. The chapter will probably have a “reference” character with various code samples, so that experienced users feel comfortable skipping ahead while beginners still find it easy and encouraging to pick up the details.