Wat de nieuwe SpriteKit IOS - 8: 2 - 8,

, wat nieuwe SpriteKit, 2,,,,,,,,,, 22, 3 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, een deel van de prijs van een reeks genaamd IOS - 8: wat' nieuwe spritekit.ios 8: wat' nieuwe SpriteKit, deel 1, van de in het kader van deze handleiding SpriteKit invoering van 108 8 overzicht van de nieuwe mogelijkheden.De nieuwe functies die zijn ontworpen met het oog op het makkelijker maken voor geavanceerde resultaten van het spel, met inbegrip van de ar ES fragment shader gewoonte, ondersteuning van licht, schaduw, geavanceerde fysische effecten en animaties, en de integratie van SceneKit.In deze handleiding zal je leren hoe de tenuitvoerlegging van deze nieuwe functie.,,,,, in verschillende formaten, deze reeks is verdeeld in twee handleiding voor SpriteKit kader is de meest belangrijke nieuwe aspecten.In het eerste deel, zullen we zien of het licht en schaduw schaduw.In het tweede deel, zal ik het hebben over de integratie van de fysieke en   SceneKit.,, en dat een reeks van elk deel is onafhankelijk, en ik ben de volgende aanbeveling voor een stap in de juiste SpriteKit kader begrijpen de nieuwe kenmerken van de twee delen.   gelezen, je zal leiden tot een eenvoudige en Het gebruik van de SpriteKit in het kader van de nieuwe functie van geavanceerde spel.,, creëren we van github op artikel als je wil volgen de aanvragen project downloaden.,,, 1.De fysieke, op 8 SpriteKit IOS, de invoering van nieuwe fysieke kenmerken, zoals elke pixel van de fysieke beperkingen op het gebied van omgekeerde, en natuurkunde. Voor de berekening van de structuur van de kinematische banden, en - in het kader van de uiteindelijke standpunt, aangezien alle hoeken.In tegenstelling tot de omgekeerde (VK).De structuur van de bestemming wordt gegeven, met het oog op het bereiken van deze eindpunten, van wat er gedaan moet worden?De opheldering van deze concepten.,,,,, met SpriteKit, gebruik je elf vertegenwoordigers van gebruik van ouder - kind relatie. De oprichting van een gemeenschappelijk niveau van elke relatie.  , je in elke gezamenlijke controle van hun definitie en tussen de minimale en maximale hoek van de omgekeerde beperkt.Op elke gezamenlijke rotatie.,,, stap 1: de omgekeerde (VK),,, open, physicssceneeditor, toevoegen, croquette-o.png, SPRITE gouden rechthoek.De keuze van   Sprite en veranderingen, in naam  , inspecteur, sknode,  , wortel.   wordt gedefinieerd, fysica, geen lichaam,,,, nog een elf, wood.png en een wijziging van de naam van  ,  , tot  , firstnode,   veranderen, ouders,   gebied.   wortel. Mobiele, firstnode, het recht van de  , wortels, en de aanpassing van de omvang, het creëren van een rechthoek, zoals hieronder aangegeven.-  , natuurkunde, niet de definitie van lichaam,,,,, de resultaten moeten op de volgende scène.,,,,, dat als je de keuze van een Sprite knooppunten, een witte cirkel in het centrum.Deze cirkel vertegenwoordigt? - De verankeringspunten in elk een roterende.,,,,,, stap 2: nog meer geesten,,, in het bijzijn van maatregelen, in combinatie met de twee feeën.,,,,, de eerste elf, nog een   croquette-o.png, SPRITE,,, verandering van naam,   secondnode,,,.,, wijziging van de  , ouders, firstnode,,, de positie van rechts, firstnode,.,, de wijziging van de definitie van  , fysica van de fysieke aard, niet twee Sprite,,,,,,, nog een  , wood.png, SPRITE, wijziging van de  , De naam, het gebied,  , thirdnode,.,, wijziging van de  , ouders, secondnode,.,, de positie van rechts, secondnode,., de aanpassing van hun grootte, het creëren van een rechthoek, en de wijziging van de definitie van  , fysica, geen lichaam,,,,, moeten de resultaten van die vergelijkbaar zijn met die van de volgende scène..,,,,,,,Stap 3: bewerken en simulatie te testen, in verband met de interactie en dwang, je moet je niet de oprichting en de werking van de projecten.Aanvragen die op twee manieren, bewerken en simulatie   model,   testen en bewerken om real - time - milieu   patroon is te creëren en bewerk je scène.Tot nu toe hebben we op de redactie van mode.Let op, simulatie. Eventuele wijzigingen van de scène... Niet gered te worden. In de bodem, zie je die momenteel in het patroon.Als de scène... Op de bodem van de BAR is Wit, dan ben je in een redacteur.Dat je in een blauwe achtergrond van simulatie - model.Klik op de bodem van de etikettering van de schakel vormen tussen twee soorten BAR.,,,,,,,, verandering van model kiezen firstnode, secondnode, en thirdnode elfen.Je kan op commando, meer keuze, een geest, het volgende.,, de pers, de dienst controle - en mobiele elfen in de plaats van de misdaad.Het resultaat is, elf - animatie en draaien.Maar het is raar, draaien, moet worden gecorrigeerd,,,,, ik stap 4: beperkingen, bewerken, een beperking van de toevoeging van node Sprite.De keuze van elke wijziging van de elfen - eigendom is als volgt:.,, de selectie, de wortels, en, secondnode, SPRITE - en de vaststelling van de maximale hoek van dwang, ik,,,,   0, selectie, firstnode,, thirdnode, SPRITE node  , anker, X, 0,   en ik  , beperking van de maximale hoek, 90,,,, door wijziging van deze eigenschappen, en met de omvang van de positie van de elfen kunnen veranderen.Na toevoeging van de beperkingen, aan de hand van hun omvang en   positie en over te schakelen op analoge wijze voor het testen van nieuwe beperkingen, we meer, de kans om de juiste verdeling van de beperkingen.,,,,,,, stap 5: een magnetisch veld, knopen, maar ook de nieuwe SpriteKit.Laten we kijken hoe het door de verhoging van de fysieke omgeving een magnetisch veld.Open, physicsscene. M, en een voorbeeld van een variabele genoemd, magneticfieldnode, het type, de skfieldnode,,, dat physicsscene {* magneticfieldnode @ skfieldnode;}, in didmovetoview:,,, voor de toewijzing van de eerste scène, we creëren op het gebied van voorbeelden, skphysicsbody, en de toevoeging van een zwaartekracht.   betekent dit dat in de plaats van de misdaad. Geen knopen kunnen worden naar beneden getrokken, skphysicsbody *., physicsbody = [skphysicsbody bodywithedgeloopfromrect: ego. Frame]; [self.physicsworld SETGRAVITY:cgvectormake (0, 9)]; [...] zelf setphysicsbody:physicsbody;,,  , magneticfieldnode,   object, je moet ophouden en Het fysieke lichaam van de positie en de   kracht   aandacht. Elke, skfieldnode, hebben hun eigen kenmerken   de volgende.De code geeft aan hoe het magnetisch veld - configuratie.Als we het toevoegen van nieuwe knooppunten knooppunten, de scène. Magneticfieldnode = [skfieldnode magnetisch veld,]; [magneticfieldnode setphysicsbody:[80]:skphysicsbody bodywithcircleofradius]; [magneticfieldnode positie: cgpointmake (100)]; [magneticfieldnode setstrength:3]; []:magneticfieldnode addchild;,,, stap 6: interactie, en in actie te zien, in het magnetisch veld van de moeten we nog wat knopen, magnetisch veld kan interacties.In de volgende stukje code, creëren we 300 elf.Attentie, alle elf zijn fysieke lichaam en - instellingen, affectedbygravity eigendom is van de,,,,,, (int i = 0; ik < 300; I + +) (* * * * * * * skspritenode node4 = [skspritenode spritenodewithtexture:[sktexture texturewithimagenamed:@ "hout. Van Papoea - Nieuw - Guinea". Afmetingen: cgsizemake (25, 25)]; [node4 setphysicsbody:[skphysicsbody bodywithrectangleofsize:cgsizemake (25, 25)]]; [node4 positie: cgpointmake (arc4random () ()%% 640, arc4random 950)]; [is]; [node4.physicsbody setdynamic: node4.physicsbody: is setaffectedbygravity]; [node4.physicsbody setallowsrotation: echte]; [node4.physicsbody setmass:0.9] []:node4; addchild;},, de voltooiing van  , didmovetoview: methode moet als volgt luiden:,,, - (b) didmoveZie: (skview * * * * * * *) {* * * * * * * skphysicsbody om physicsbody = [skphysicsbody bodywithedgeloopfromrect: ego. Frame]; [self.physicsworld SETGRAVITY:cgvectormake (0, 9)]; [zelf setphysicsbody:physicsbody]; magneticfieldnode = [skfieldnode magnetisch veld]; [magneticfieldnode setphysicsbody:[80]:skphysicsbody bodywithcircleofradius]; [magneticfieldnode positie: cgpointmake (100)]; [magneticfieldnode setstrength:3 sinds]:magneticfieldnode]; [addchild; (int i = 0; ik < 300; I + +) (* * * * * * * skspritenode node4 = [skspritenode spritenodewithtexture:[sktexture texturewithimagenamed:@ "hout. Van Papoea - Nieuw - Guinea". Afmetingen: cgsizemake (25, 25)]; [node4 setphysicsbody:[skphysicsbody bodywithrectangleofsize:CGSIzemake (25, 25)]]; [node4 positie: cgpointmake (arc4random () ()%% 640, arc4random 950)]; [is]; [node4.physicsbody setdynamic: node4.physicsbody: is setaffectedbygravity]; [node4.physicsbody setallowsrotation: echte]; [node4.physicsbody setmass:0.9]; []:node4 addchild;}}, we creëren en de toepassing, voordat we het omgekeerde methode: touchesmoved:,, dus je kan op je vingers door mobiele magnetisch veld -.,, - (b) touchesmoved: (NSSet * * * * * * *) (* * * * * * * uievent aan gebeurtenissen: de gebeurtenissen (* * * * * * *) {uitouch aanraken) {[[magneticfieldnode positie:]: aan de locationinnode];}}, de oprichting en exploitatie van een magnetisch veld, de toepassing van de test.Op het gebied van de resultaten met betrekking tot het gebruik van SpriteKit kader.   simulatie van aanvullende informatie, stel ik voor het lezen van de appel in de documenten over dit onderwerp.,, 2.SceneKit integratie, SceneKit is een hoog niveau van toepassingen in de bouw en het kader van de 3D beelden C spel.Het steunt de invoer - activa, operationele en destructie.Weergave algoritme nodig de inhoud van de beschrijving van je scène, animatie, en maatregelen moeten worden uitgevoerd. Door de Scenekit,,, je mag nu het creëren en gebruiken SpriteKit die 3D - inhoud.Er is een boom van de structuur van de SceneKit kan op twee manieren:,,, onafhankelijk van de milieu - integratie in de SceneKit, SpriteKit, SceneKit, een boom in de hiërarchie van de onafhankelijkheid van het milieu.   SceneKit, de boom van de structuur van de klas is een  , scnnode,  . Zoals Hieronder vermeld.   een  , scnnode,   het object zelf geen zichtbare bevat het een scenario 's.Het is alleen de definitie van een positie in de ruimte van de vruchtwisseling en de omvang van dat standpunt, een knooppunt van de ouder - ten opzichte van het,,.,,, als je de integratie in een SceneKit SpriteKit op basis van app, je moet de definitie van een object, sk3dnode, als je de wortel scène object.Dit betekent dat de kern van SceneKit niveau van de verandering in de volgende punten:,,,,, dat niet ieder kind in de figuur is vereist.Maar je moet je de definitie en samenstelling geschikt is voor de knooppunten.Bijvoorbeeld, je kan er een  , scnlight knooppunt voor het licht op de plaats delict, zelfs als je het niet met  , scncamera, de plaats van de module.,,, stap 1: de preview.,,, SpriteKit, SceneKit de steun van een aantal documenten in de vorm van een model.Je kan niet in real - time in de aanvragen van deze modellen.Binnen, textuur, in uw project MAP (middelen > de textuur), heeft een naam, een groot schip.  , als je de keuze van dit dossier, u stelt een nieuwe interface zoals hieronder aangegeven, in de redacteur van de linker,,,,,, zie je twee een groep:,,,,   entiteiten van de groep: de informatie die vooraf gedefinieerde animatie van de positie van de camera, model van licht, en door in het dossier omschreven materiaal.We openen met betrekking tot de geometrie van het model bevat alleen de documenten en materialen.,,,   scène met het oorspronkelijke doel van deze groep: de maaswijdte van informatie.In dit geval, het creëren van een object, als een geheel, zie je alleen in een raster.,,, stap 2: de invoer van externe model, moet worden gecombineerd met het gebruik van,, SpriteKit SceneKit nodig SceneKit invoer van het kader van SceneKit bibliotheek.Open de  , scenekitscene. M, en   omvat zoals hieronder aangegeven, #., met inbegrip van < SceneKit /SceneKit. H >,, we gebruiken de opslag in  , model van het schip. De grote,   als de scène.Binnen, didmovetoview:,, het creëren van een  , scnscene, voorwerp van een dossier, scnscene * * * * * * * shipscene, scène. Scnscene scenenamed:@ "= [schip]; de grote", die ik al eerder heb gezegd, herinner je je de boom?De toevoeging van  , shipscene,   object, skscene, object, twee stappen:,, het creëren van, sk3dnode, het voorwerp, de definitie van een   SceneKit scène en, in dit geval de plaats delict is,  , shipscene, let op je.   ook in de definitie van gemeenschappelijke standpunten en de omvang van  .,, sk3dnode sk3dnodefist * * * * * * * = [] [sk3dnode toewijzing initwithviewportsize:cgsizemake (,)]; [sk3dnodefist positie: cgpointmake (200, 300)]; [sk3dnodefist setscnscene:shipscene]; en, tot sk3dnode,   object, als knooppunten van de    , skscene,   object zelf addChild:sk3dnodefist [].,,,,, zodat de definitieve resultaten meer aantrekkelijk de achtergrond van de plaats delict, die kleur is groen, zoals hieronder aangegeven, van [de]]. Dat is de achtergrond van TabHost [skcolor kleur: groen;,, dit is compleet  , didmovetoview:Zoals, methoden moeten worden.Gezien de resultaten van de toepassing van de oprichting en de werking van.,, - (") didmovetoview: (skview * * * * * * *) Zie {[] [is] skcolor sinds TabHost achtergrond kleur: groen; scnscene * * * * * * * shipscene = [scnscene scenenamed:@" schip "]; sk3dnode * * * * * * * sk3dnodefist = [] [sk3dnode toewijzing initwithviewportsize:cgsizemake (,)]; [sk3dnodefist positie: cgpointmake (200, 300)]; [sk3dnodefist setscnscene:shipscene]; []:sk3dnodefist addchild;},,, stap 3: het creëren van een gewoonte, laten we de scène, het creëren van Een meer complexe scenario, met inbegrip van scnnode, de tweede akte.  , moeten we tot een andere  , sk3dnode, voorwerp, sk3dnode * * * * * * * sk3dnode = [, en] [sk3dnode toewijzing initwithviewportsize:cgsizemake (400400)]; [sk3dnode cgpointmake (150,2 positie:00)];,, de volgende, we creëren, scnscene, voorwerp, een bevatten de knooppunten, scnscene scène in het voorwerp van de = [plaats] * * * * * * * scnscene;,,, de voorwerpen, er zijn drie knopen,,,,,,   camera 's: deze module wordt gebruikt door de een bepaalde positie te kijken naar de plaats delict.   deze knooppunten:,, het licht zien, laat je de 3D - objecten van de verschillende eigenschappen van de materialen.Je   definitie meestal licht en kleuren.,,,   3D: dit is de invoer of de in de code omschreven voorwerpen.Bij verstek, kan de definitie van de verschillende parameters SceneKit 3D - objecten, dat wil zeggen de torus, kit, piramide, de bal, cilinders, een pijp, capsules, de vloer, de 3D - tekst, of een aangepaste vorm.,, voor elke module, je altijd drie acties uitvoeren.Laten we de camera - als voorbeeld.,,, het creëren van een  , scncamera, voorwerpen en bepalen van de kenmerken van het creëren van een  .,,, scnnode, waarin de scncamera worden toegewezen, toegevoegd scnnode.,,, als een kind -  , scnscene, voorwerp,,, laten we nu te creëren ik de genoemde drie knopen.Dit is wat we moeten bereiken om de camera 's, camera' s, scncamera node. * * * * * * * = [camera scncamera; scnnode * * * * * * * cameranode = [] [cameranode scnnode knooppunten; setcamera: camera 's]; [cameranode positie: scnvector3make (0, 0 en 40)]; [sceneobject.rootnode addchildnode:cameranode]; en door de standaard camera' s. De positie en de scène op de oorsprong en de   (, 0, 0, 0).Je kan een aanpassing van de positie van de eigenschap, langs de drie camera 's, X, Y en z - as aan het veranderen van de positie van de licht -.,,, heeft nog een beetje werk nodig, maar de volgende code moet gemakkelijk te begrijpen, scnlight *., de schijnwerpers = [scnlight licht]; [schijnwerpers apparatuur: scnlighttypedirectional] de rode]; [skcolor schijnwerpers die kleur: []; scnnode * * * * * * * spotlightnode = [scnnode node]; [spotlightnode setlight: de schijnwerpers]; [spotlightnode positie: scnvector3make (0, 0, 5)]; [cameranode addchildnode:spotlightnode]; [sceneobject.rootnode addchildnode:spotlightnode];, zullen we ook het scheppen van een ring., zoals blijkt uit de volgende code fragment.,,, scntorus * Torus = [scntorus toruswithringradius:13 piperadius:1.5]; scnnode * * * * * * * torusnode = [SCNnode nodewithgeometry: de Torus]; [torusnode settransform:scnmatrix4makerotation (m_pi /3, 0, 0, 1, 0)]; [sceneobject.rootnode addchildnode:torusnode]; en ten slotte de,, zetten we de scène, we willen maken en de toevoeging van  , sk3dnode,   als sub - punt, skscene, bijvoorbeeld sk3dnode setscnscene:.,, [in de plaats delict het object zelf]:sk3dnode]; [addchild;,, dit is de laatste  , didmovetoview:  , methode moet zodanig zijn dat,,, - (b) didmovetoview: (skview * * * * * * *) Zie {[] [is] skcolor sinds TabHost achtergrond kleur: groen; scnscene * * * * * * * shipscene = [scnscene scenenamed:@ ". De grote"]; sk3dnode * * * * * * * sk3dnodefist = [] [sk3dnode toewijzing initwithviewportsize:cgsizemake (,)]; [sk3dnodefist positie: cgpointmake (200, 300)]; [sk3dnodefist setscnscene:shipscene];Sinds]:sk3dnodefist [addchild; sk3dnode * * * * * * * sk3dnode = [] [sk3dnode toewijzing initwithviewportsize:cgsizemake (400400)]; [sk3dnode positie: cgpointmake (150200)]; scnscene * = [plaats] voorwerpen in de plaats van de misdaad scnscene; scncamera * camera 's = [camera scncamera; scnnode * * * * * * * cameranode = [scnnode node]; [cameranode setcamera: de camera' s]; [cameranode positie: scnvector3make (0, 0 en 40)]; [sceneobject.rootnode addchildnode:cameranode]; scnlight * * * * * * * de schijnwerpers = [scnlight licht]; [met apparatuur: scnlighttypedirectional]; [] skcolor schijnwerpers rode kleur: []; scnnode * * * * * * * spotlightnode = [scnnode node]; [spotlightnode setlight: de schijnwerpers]; [spotlightnode scnvec positie:Tor3make (0, 0, 5)]; [cameranode addchildnode:spotlightnode]; [sceneobject.rootnode addchildnode:spotlightnode]; scntorus * Torus = [scntorus toruswithringradius:13 piperadius:1.5]; scnnode * * * * * * * torusnode = [scnnode nodewithgeometry: Torus]; [torusnode settransform:scnmatrix4makerotation (m_pi /3, 0, 0, 1, 0)]; [sceneobject.rootnode addchildnode:torusnode]; [sk3dnode setscnscene: voorwerpen in de plaats van de misdaad zelf]:sk3dnode]; [addchild;}, de oprichting en exploitatie van toepassing.Je zou moeten zien, zoals de volgende foto.,,,,,,, stap 4: de scènes,,, je kan het gebruik van   in de plaats delict, cabasicanimation, klasse.Je moet alleen een voorbeeld van een cabasicanimation,  , door een beroep te doen op de animationwithkeypath:,,.Wij in het volgende deel van de code te creëren tussen de recycling, met vijf seconden.De toevoeging van het volgende fragment van de methode, didmovetoview:,,, cabasicanimation * * * * * * * torusrotation = [cabasicanimation animationwithkeypath:@ "draaien"]; torusrotation.byvalue = [nsvalue valuewithscnvector4:scnvector4make (1, 1, 0, 4 * m_pi)]; [torusrotation settimingfunction:[camediatimingfunction functionwithname:kcamediatimingfunctionlinear]]; [torusrotation setrepeatcount: onbeperkt]; [5]; [torusrotation setDuration:torusnode addanimation:torusrotation deel: nul];,, de oprichting en exploitatie van de toepassing van de test animatie.,,, 3.Meer SpriteKit, als je meer wilt weten over SpriteKit, dan stel ik voor dat je de volgende les, en het opzetten van SpriteKit: Sprite doos   vliegtuigen spelen,   Sprite kit, een raket commando 108 SDK: het opzetten van een feitelijke spelen, als je wil meer lezen over SpriteKit kader dan ik beveel lezing appel SpriteKit Richtsnoeren voor de programmering   of naar het referentiekader.,, conclusies,,, een conclusie die de invoering van de nieuwe SpriteKit kader IOS - 8, de reeks van de tweede.   in dit deel, dat zal je leren om met behulp van model - en de integratie van SceneKit   als je. Geen vragen of opmerkingen In, alsjeblieft. De lineaire verlaging, in.

Inverse Kinematics

Anchor point
Resulting image
Simulate mode
Edit mode
Constraints in action
SceneKit hierarchy
SceneKit  SpriteKit hierarchy
Xcode live preview
Final result



Previous:
Next Page: