In de box2d

flash en 3 - 3, de invoering van,,,,, box2d en 1,,,,,,, deel 2,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, box2d is een solide flash haven populaire fysieke motoren die worden gebruikt voor het creëren van goede spel fantastische machine.In deze handleiding, de eerste van de reeks, krijg je met box2d 2.1A flash en as3 basis vechten.,,,, stap 1: saai is, neem ik aan dat je al weet hoe het de oprichting van een fundamentele flash projecten met je redacteur en de keuze van de workflow, betekent dat dat het creëren van een FIA en het type document, in verschillende redactie van pure project, of zoiets.Ik FlashDevelop, maar je moet het gebruik van een waar je je op je gemak voelt, tot je de naam van het project, en de belangrijkste soorten,,.Geef het wat je code, zie ik er zo uit: een pakket (invoer, flash.display.sprite; de invoer van flash.events.event; [(factoryclass = "pre - in het kader van")] in de loop van de eerste uitbreiding van de openbare functie Sprite (Main ():void {als (fase) (); de Andere addEventListener (event.added_to_stage ervan)} privé functie ervan; e: gebeurtenissen = nul): ongeldig {removeEventListener (event.added_to_stage ervan); getstarted () () getstarted privé - functie;} {}}}: ongeldig, maak je geen zorgen, een kader - - - dit is het, Mark FlashDevelop creëert een geladen.Alles wat je moet weten is, getstarted (), loopt de SWF 's volledig geladen.Het creëren van een op de belangrijkste soorten belasting die dezelfde functie, en ik zal je in het kader van het project een afzonderlijke bank of toepassing van bibliotheken is erg lekker.Dit 2.1A gedownload van de website van box2dflash (ik gebruik de flash - 9 versie), en halen je vaak je met de ADI.De volgende stap, de toevoeging van een pad naar het,, van oorsprong en van ZIP - bestand.Of, je kan de inhoud van deze gids, folders en met een gids met een gids.Dat is makkelijk.Laten we beginnen met box2d.,, stap 2: een nieuwe b2world, "als je wil vanaf nul appeltaart, je moet in de eerste plaats het creëren van het universum, schreef:" Carl Sagan; als we willen doen wat fysieke objecten, we hoeven alleen maar het creëren van een wereld, in een wereld box2d, niet de planeet of ecologische. De naam van het systeem; maar, het beheer van de simulatie van de objecten.Het is ook de kracht van de zwaartekracht... Is niet alleen hoe snel vaart te zetten achter het doel van de richting ook vallen, creëren we een vector is geregeld bij het creëren van de wereld zelf: de zwaartekracht, de invoer van box2d.common.math.b2vec2; ///////...Privé functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10);}, een, b2vec2, A, b, van runderen, 2, 3 Euclidische VEC, tor (tweede, 2, 2, namens d, want er is een drie - dimensionale vector is mogelijk).Daniel sidhion schreef een goede les geeft de vector (ze is niet in een categorie 3), dus kijk als je niet zeker bent.Maar dat is een van de vector, als een pijl, die pijl:,, b2vec2 (4 en 9); het punt naar beneden, en dan naar rechts.Onze zwaartekracht -, dan zal het direct.Meer pijlen, hoe sterker de zwaartekracht, en later in de handleiding van de vector kan je proberen te veranderen, b2vec (0, 2), simulatie van een zwakke zwaartekracht, net als de maan, en nu maken we de wereld zelf:, de invoer van box2d.dynamics.b2world; ///////...De wereld van de variabelen: b2world; ///////...Privé functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar);}, het tweede argument ons door, b2world (), dat het, het kan voorkomen dat de simulatie betreft, het niet nodig is om meer, dit helpt de Simulatie maar helemaal niets met ons te maken heeft, op dit moment, exploitatie van SWF 's controleren of er geen fouten.Je kan niet alles zien, maar.De wereld is nu volledig leeg.Stap 3:,, het wiel opnieuw uitvindt, laten we tot een eenvoudige rond object; dit kan een steen, een basketbal, of een aardappel, maar ik wil het als een wiel, zou ik zeggen, dit is eenvoudig:, de VAR - ronde: b2circularobject = nieuwe b2circularobject (),,... Maar dit is Een grote leugen.Met betrekking tot de box2d is, dat schijnbaar eenvoudige dingen hebben een code op te lossen.Deze extra complexiteit is zeer nuttig en geavanceerde werk doen, maar het is een beetje in de manier waarop we de eenvoudige dingen, zoals wat we proberen te doen op het moment.Ik moet snel wat we moeten doen om deze ronde te controleren; we kunnen het in de toekomst meer details, de opleiding, de oprichting van een "voorwerpen" - dat wil zeggen, in de vorm van het voorwerp en de kwaliteit van de box2d kan simuleren, in de wereld... Moeten we het gebruik van de bouw van Vijf verschillende soorten:,,, het is net als de definitie van een model, het creëren van...,,,, met inbegrip van een kwaliteit en locatie, maar geen...,, vorm, kan net zo makkelijk als de cirkel, moet worden gekoppeld aan een orgaan van een andere, met klem, dit is een...... een definitie van,,..., dit is een ander model, als het lichaam. De definities van de,, helaas.Hier is wat als in de code invoer: invoer, box2d.dynamics.b2bodydef; box2d.dynamics.b2body; de invoer van box2d.collision.shapes.b2circleshape; de invoer van box2d.dynamics.b2fixture; de invoer van box2d.dynamics.b2fixturedef; ///////...Privé functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); de VAR - wheelbody:b2body = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef);}, ons debat door, b2circleshape (), en de aanwijzing van de straal van de cirkel.Alles moet op basis van de waarheid, zelfs als de redenering achter deze structuur niet van belang is, dat we niet schrijven, nieuwe b2body (), of de nieuwe b2fixture (); de wereld is, voor de definitie van het lichaam van het lichaam, en gebruikt voor de definitie van het lichaam is een profiel.Dit betekent dat de wereld weet waar alle lijken, in het lichaam, en dat alle lampen, het creëren van een werkelijke vorm, de fysieke objecten, we creëren een, wheelbody,; alles is alleen maar een partij die een object.Dus, om te kijken, en we zijn erin geslaagd, laten we eens kijken, wheelbody, bestaan, private functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); de VAR - wheelbody:b2body = de createbody (wheelbodydef.); var rond: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); - (wheelbody);}, resultaten: [] b2body object,,.,, stap 4: beweeg je lichaam. Weet je wat ik bedoel als ik over "spel" en "tik"?Als ik niet naar de korte artikelen over de cirkel, nu, want dit is heel belangrijk wat we aan het doen zijn box2d voorwerp is van een methode voor de wereld, STEP (), simulatie, rijden.Heb je een specifieke periode (voor een fractie van een seconde), en stap (), de analoge wereld elke beweging en de botsing; een functie die het lichaam alle objecten zijn en hun nieuwe locatie update, laten we zien dat deze actie.In plaats van te volgen, wheelbody, zelf, we volgen als het de locatie.En dan rennen we, b2world. Stap () en de wielen van de positie en de weg, en getstarted (), private functie:. {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); de var - wheelbody:b2body = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); (wheelbody sporen. Getposition (). X, wheelbody. Getposition (). Y); de rest van de wereld. Stap (0025 10 10), sporen, (wheelbody. Getposition (). X, wheelbody. Getposition (). Y);}, (, getposition (), de terugkeer van een lichaam, zodat we b2vec2,- de X - en Y - eigenschappen van personen en niet belt, sporen van (wheelbody. Getposition (),.), eerste parameter ('), is een simulatie, stap in de wereld na box2d seconden.De twee andere parameters is aangegeven wat de nauwkeurigheid van de box2d gebruik moeten maken van alle wiskundige berekening van de loop van de tijd.Maak je geen zorgen over deze nu alleen gegevens mogelijk te maken; dat de box2d meer tijd nodig hebben om de analoge wereld... Als je een te hoog, het kan zelfs meer dan 0025 seconden rennen, STEP (), dus verliezen we en de realiteit van de wereld.Test het, kijk naar je raam: de produktie van 0, 0 0 0, dit is zo frustrerend.Het wiel niet bewegen... En de wereld er is zwaartekracht, dus je denkt dat het een beetje.Wat is er gebeurd?Stap 5:,, een dynamische en bij verstek, box2d lichaam, statische, wat betekent dat ze niet bewegen.Wil een platform in het spel zijn entiteiten hun werkelijke platform, maar niet onder de invloed van de zwaartekracht, ook niet op de wielen rond. We moeten ons, dynamische, zodat het kan bewegen.Denk dat we de definitie van deze goederen, hoe het lichaam,,,???????De definitie van het lichaam, natuurlijk.Functie: ongeldig, particuliere getstarted () {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; var wheelbody:b2body = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5) wheelfixturedef:b2fixturedef; var = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); (wheelbody sporen. Getposition (). X, wheelbody. Getposition (). Y); de rest van de wereld. Stap (0025, 10, 10); (wheelbody sporen. Getposition () X - en. Y wheelbody. Getposition (.);}, SWF 's nu proberen, eens kijken wat je hebt: 0 0 0, was goed, erg goed.Hoe spannend!Stap in, 6: verder gaan, we kunnen niet zeggen dat dit een spel is, maar omdat het slechts één, we moeten het over en weer loopt.We kunnen gebruik maken van de timer en een geval van luisteraars, flash.utils.timer gebeurt: de invoer flash.events.timerevent; ///////...Privé functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; var wheelbody:b2body = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); werk wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); var steptimer: de timer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); (wheelbody sporen. Getposition (). X, wheelbody. Getposition (). Y); steptimer. Start ();} privé functie ontick (a_event:timerevent ongeldig (W):De rest van de wereld. Stap (0025, 10, 10); (wheelbody sporen. Getposition (). X, wheelbody. Getposition (). Y);}, dat geef ik de timer cyclus (0025 seconden voor een goede coördinatie met de rest van de wereld, om het in te houden van de stappen.Je hoeft dit niet te doen... In feite, als je twee verschillende perioden, krijg je een leuke tijd gerelateerde effecten, zoals slow motion.), maar, oh, de code werkt niet. Wat we nodig hebben, wheelbody, in functie ontick ().Hoewel we hier, kunnen we net zo goed door de timer kan ook overal de wereld van de variabelen:,: b2world; de variabelen wheelbody:b2body; de variabelen steptimer: de timer; ///////...Privé functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbody = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); (wheelbody sporen. Getposition (). X, wheelbody. Getposition (); steptimer start. Y). (de);}, 14 en 20% op de lijn, is veranderd, en nu stuur TimDe tweede is gedefinieerd, probeer het nu eens: 0, 0 0 0 0 0 0 0.018750000000000003 was goed duidelijk 0.037500000000000006 0.09375 0 0 0 0 0.13125 0.1750000000000000 0.2250000000000000 0.2812500000000000 0 0 0 0 0.5687500000000001 0.3437500000000000 0.4125000000000001 0.4875000000000001, lang leve het nooit laten vallen.Oké, dat is genoeg van de digitale; laten we wat visuele dingen.We hebben alle coördinaten, waarom kom je niet bij een beetje?Vervanging van de sporen, en de code van de oude naar de positie van de nieuwe ronde een lijn trekken: een privé - functie, ontick (a_event:timerevent): ongeldig {patroon. MoveTo (wheelbody. Getposition (). X, wheelbody. Getposition (). Y); de rest van de wereld. Stap (0025, 10, 10); lineto figuur. (wheelbody. Getposition (). X, wheelbody. Getposition (). Y);}, om te kijken naar de lijn, we moeten een lineaire functie:,,, - getstarted () {///////:void...Steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, nu loopt de SWF 's.Zie je een rode lijn aan de rand van de linkerkant.Ik voeg wat mij bedriegt de SWF 's, betekent het niets doen, totdat je op het volgende:,, zie je, de grote.Dus, stuur een vrije val, en vanwege de ernst van de steeds sneller, zoals het zou moeten zijn.We moeten het verticale snelheid, de zwaartekracht kan haar werk te doen, maar we kunnen de eerste horizontale snelheid handmatig te veranderen, zodat de lijn in de vorm van een beetje interessanter, getstarted (): private functie (///////ongeldig.Var startingvelocity:b2vec2 = nieuwe b2vec2 (50, 0); wheelbody. Setlinearvelocity (startingvelocity); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, weet je nog, b2vec2, ziet er uit als Een de pijl, dus, in dit geval, start de snelheid zal eruit zien als een pijl wijst direct naar rechts, alsof we net foto 's van de kanonnen op de klif.Onze wereld geen weerstand (omdat er geen lucht.Dus we absoluut niet vertragen, maar omdat de zwaartekracht, het versnellen van de verticale, klinkt verwarrend, maar als je het de werking van SWF 's is duidelijk, we zijn gewoon per ongeluk, om parabolen.Dus...Ik wil dit netjes?Stap negen:,,, de illusie, oké, oké, misschien ben je niet blij om te zien dat een bocht van de rode lijn.Als we de simulatie van een wereld, moeten we dat voorwerp lijkt, oké, voorwerp, hè?Dus in plaats van de positie van de lijnen, de wielen door de ruimte, we moeten om het te laten lijken dat het wiel is in feite door de ruimte bewegen, kunnen we door de herhaalde tekenen en het wissen van een cirkel, de positie van de centrale ronde: privé - functie, ontick (a_event:timerevent): zonder effect (grafiek. Duidelijk ('); de lineaire (3, grafiek. 0xFF0000); de rest van de wereld. Stap (0025, 10, 10); grafische. De cirkel (wheelbody. Getposition (). X, wheelbody. Getposition (). Y, 5);}, we moeten de aangewezen lijn stijl, ontick (), nu, want, grafische duidelijk ('), het resetten. Op het scherm, en de schrapping van alle beelden.Let op, ik heb de straal van de cirkel, 5, dit is, als we de straal van de cirkel, eerder gemaakt, probeer deze. SWF 's:,, ik denk dat het heel duidelijk is dat de volgende stap, stap, moeten... 10: huisarrest, die leegte niet oneindig veel spannende wereld zelf onder de omstandigheden.Natuurlijk, we kunnen het toevoegen van nieuwe wielen, maar geen grond of muren, ze nooit iets leuks doen, creëren we een vaste voorwerpen, wielen en van een groot vliegtuig begin van het blok.Voor dit, en we zullen met een rechthoekige, weet je nog dat we nodig hebben voor het scheppen van een fysiek object?De definitie van een,,,, het is als een model, het creëren van...,,,, met inbegrip van een kwaliteit en locatie, maar geen...,, vorm, kan net zo makkelijk als de cirkel moet worden aangesloten op een lichaam, een profiel, het gebruik van..., het is een spel, en het gebruik van... Dit is de definitie van een model, zoals de definitie van het lichaam, weet je. En hoe dit een cyclus; nu moeten we een rechthoekige, getstarted (): functie: particuliere nietigverklaring {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe wereld waar de zwaartekracht, b2world (=); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbody = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape var wielen (5);Fixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); var groundbodydef:b2bodydef = nieuwe b2bodydef (); de VAR - groundbody:b2body = van de rest van de wereld. Createbody (groundbodydef); var groundshape:b2polygonshape = nieuwe b2polygonshape (); groundshape. Setasbox (stage.stagewidth, 1); de nieuwe b2fixturedef (reactieve groundfixturedef:b2fixturedef =); groundfixturedef.shape = groundshape; var groundfixture: b2fixture = groundbody. Createfixture (groundfixturedef); var startingvelocity:b2vec2 = nieuwe b2vec2 (50, 0); wheelbody. Setlinearvelocity (startingvelocity); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick; g)Grafische. Type (3, 0xFF0000); steptimer. Start ();}, het is hetzelfde, behalve dit, op het creëren van een rond lichaam door de straal nodig, b2circleshape (), de constructeurs, we moeten door middel van een rechthoekige, b2polygonshape vereiste breedte en lengte. Setasbox (functie),.(het feit dat we de helft van de breedte van de vereiste, en de helft van de hoogte van de doos, dus dit zal twee keer zo hoog is als het podium en 2 pixels hoog, maar dit is goed herinner.) van alle instellingen is, statische, bij verstek, dus hoeven we ons geen zorgen over De grond vallen.Je moet box2d.collision.shapes.b2polygonshape, invoer, voor deze baan, bij verstek, een nieuwe vorm zal worden gecreëerd, (0, 0), dus moeten we de grond is aangewezen op de bodem van het podium.We kunnen met de hand verandert de positie van het lichaam als de grond worden gecreëerd, zoals we met de snelheid van de verandering van het wiel, maar als we het netjes als deel van het lichaam van de positie van de grond, de definitie van privé - functie: getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world (wereld = zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbody = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); var groundbodydef:b2bodydef = de nieuwe elektronische B2B -Odydef (); groundbodydef. Positie. (0 - fase. Stageheight); var groundbody:b2body = van de rest van de wereld. Createbody (groundbodydef); var groundshape:b2polygonshape = nieuwe b2polygonshape (); groundshape. Setasbox (stage.stagewidth, 1); var groundfixturedef:b2fixturedef = nieuwe b2fixturedef (); groundfixturedef.shape = groundshape; var groundfixture:b2fixture = groundbody createfixture (groundfixturedef.); var startingvelocity:b2vec2 = nieuwe b2vec2 (50, 0); wheelbody. Setlinearvelocity (startingvelocity); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, om ervoor te zorgen Dat de vaststelling van deze voor je. Door het lichaam, de definitie van de createbody (), of de rest van de wereld.De veranderingen die zullen worden genegeerd, nu de test van SWF 's:,, we kijken niet naar de grond, want wij hebben het niet gekregen, maar het is analoog, zien we dat de invloed van het wiel en rolde naar: zijdelingse botsing.,, 11 stap: vaststelling van het aantal grenzen, en we zullen in de volgende, meer wielen, maar laten we eerst dit een volledig afgesloten ruimte, en de vloeren, plafonds, wanden en twee. En ik hoop dat je kan in deze proberen te creëren; drie rechthoekige afmetingen en op de juiste plaats.Vanaf het begin van de juiste gemakkelijk, want het zou botsen met het.Voor het testen van andere mensen, met de aanvankelijke snelheid aan, je moet de wielen of bij het creëren van het aanvankelijke standpunt, maakt de linker muren en plafonds overlappen.Kan je dat doen, je wordt de positie van de rechthoekige objecten door, in positie. - (), de methode voor de vaststelling van het lichaam, ik wens je veel geluk.Als je vast zit, kijk ik de code als volgt: privé - functie, getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); var wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie (10).; wheelbody = wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); var groundbodydef:b2bodydef = nieuwe b2bodydef (); groundbodydef. Positie. (0 - fase. Stageheight) groundbody:b2body = wereld; var. Createbody (groundbodydef var groundshape:B);2polygonshape = nieuwe b2polygonshape (); groundshape. Setasbox (stage.stagewidth, 1); var groundfixturedef:b2fixturedef = nieuwe b2fixturedef (); groundfixturedef.shape = groundshape; var groundfixture:b2fixture = groundbody. Createfixture (groundfixturedef); var rightwallbodydef:b2bodydef = nieuwe b2bodydef (); rightwallbodydef. Positie. (stage.stagewidth, var rightwallbody:b2body = 0); de rest van de wereld. Createbody (rightwallbodydef); var rightwallshape:b2polygonshape = nieuwe b2polygonshape (); rightwallshape. Setasbox (fase 1. Stageheight); var rightwallfixturedef:b2fixturedef = nieuwe b2fixturedef (); rightwallfixturedef.shape = rightwallshape; var rightwallfixture:b2fixture = rightwallbody. Createfixture (rightwallfixturedef var leftwall);Bodydef:b2bodydef = nieuwe b2bodydef (); leftwallbodydef. Positie. (0, 0); var leftwallbody:b2body = van de rest van de wereld. Createbody (leftwallbodydef); var leftwallshape:b2polygonshape = nieuwe b2polygonshape (); leftwallshape. Setasbox (fase 1. Stageheight); var leftwallfixturedef:b2fixturedef = nieuwe b2fixturedef (); leftwallfixturedef.shape = leftwallshape; var leftwallfixture:b2fixture = leftwallbody. Createfixture (leftwallfixturedef); var ceilingbodydef:b2bodydef = nieuwe b2bodydef (); ceilingbodydef. Positie. (0, 0); var ceilingbody:b2body = van de rest van de wereld. Createbody (ceilingbodydef); var ceilingshape:b2polygonshape = nieuwe b2polygonshape (); ceilingshape. Setasbox (stage.stagewidth, 1); var ceilingfixturedef: b2fixturedef = nieuwe b2fixturedef (CE);Ilingfixturedef.shape = ceilingshape; var ceilingfixture:b2fixture = ceilingbody. Createfixture (ceilingfixturedef); var startingvelocity:b2vec2 = nieuwe b2vec2 (50, 0); wheelbody. Setlinearvelocity (startingvelocity); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, resultaten:,,,, heel goed werk. Stap twaalf: het creëren van een reeks, nu zijn we klaar voor nog meer lichamen, zet ze in elkaar, kijken wat er gebeurt, kunnen we alles invididually creëren, net als ik van de rechthoek, maar het zou een flexibel gebruik - voor ze, en een interne functie te creëren. Dus, ten eerste, laten we een aantal groepen, de aanwezigheid van een element van:Stuur de variabelen, de: b2world; ///////de variabelen wheelbody:b2body; < - het verwijderen van de lijn van de variabele wheelarray: generator; de variabelen steptimer: de timer; ///////...Privé functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); wheelarray = nieuwe installatie (); de VAR - wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie. (10); var wheelbody:b2body = de Rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); wheelarray. - (wheelbody); ///////...Var startingvelocity:b2vec2 = nieuwe b2vec2 (50, 0); wheelbody. Setlinearvelocity (startingvelocity); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();} privé functie ontick (a_event:timerevent): ongeldig {grafische. Duidelijk ('); grafische. Type (3, 0xFF0000); de rest van de wereld. Stap (0025, 10, 10); elke (var wheelbody:b2body in wheelarray) (grafiek. De cirkel (wheelbody. Getposition (). X, wheelbody. Getposition (). Y, 5);}}, Als deze je werkt, SWF' s gedrag als het volledig, voor stap 13:.,, de toevoeging van een wiel, voor het testen van de passende, we kunnen toevoegen, maar een extra wiel nu!- en het creëren van wielen en delen van wielen veranderen, niet dezelfde code, private functie getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); wheelarray = nieuwe installatie (); de VAR - wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie. (10); var wheelbody:b2body = wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef: b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); wheelarray duwen (. Wheelbody); var wheelbodydef:b2bodydef = nieuwe B2B -Odydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie over. Die); var wheelbody:b2body = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody createfixture (wheelfixturedef); wheelarray.. - (wheelbody); ///////...Het creëren van nieuwe grenzen var startingvelocity:b2vec2 = b2vec2 (50, 0); wheelbody. Setlinearvelocity (startingvelocity); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, krijg je een hoop over de Definitie van de variabelen van de herhaalde waarschuwingen, maar het is opgesteld, volgens uw omgeving:,, de eerste ronde van het recht niet onder vallen, een eerste horizontale snelheid.Dit is de perfecte gevoel als je kijkt naar de code; doen wij een beroep op de wheelbody setlinearvelocity (), op de verkeerde plek.Actie: privé - functie, getstarted ():void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); wheelarray = nieuwe installatie (); de VAR - wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie. (10); De wereld wheelbody:b2body = var. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); var startingvelocity:b2vec2 = nieuwe b2vec2 (50, 0); wheelbody setlinearvelocity (startingvelocity).; wheelarray. - (wheelbody); var wheelbodydef:b2bodydef = nDe elektronische oorlog b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie over. Die); var wheelbody:b2body = van de rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (5); var wheelfixturedef: b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody createfixture (wheelfixturedef) de nieuwe b2vec2 var.; startingvelocity:b2vec2 = 100, 0); wheelbody. Setlinearvelocity (startingvelocity); wheelarray. - (wheelbody); ///////...Het creëren van nieuwe grenzen steptimer = de timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, oké!Dit werk is goed.We kunnen alle wielen tot de code zijn opgenomen in een functie, nu, stap 14: ronde generator te creëren, de functie, kan je eigenlijk het kopiëren en plakken we hebben alle codes gebruikt.Dit is mijn privé - functie, createwheel (straal: aantal, het aantal, de oorspronkelijke standpunt: startx: het aantal, het aantal, de velocityy GAP - snelheid: aantal): ongeldig {VAR wheelbodydef:b2bodydef = nieuwe b2bodydef (); wheelbodydef.type = b2body.b2_dynamicbody; wheelbodydef. Positie. (startx, eerste positie); wheelbody:b2body = var. De rest van de wereld. Createbody (wheelbodydef); var ronde: b2circleshape = nieuwe b2circleshape (.); var wheelfixturedef:b2fixturedef = nieuwe b2fixturedef (); wheelfixturedef.shape = ronde; var wheelfixture:b2fixture = wheelbody. Createfixture (wheelfixturedef); var startingvelocity:b2vec2 = nieuwe b2vec2 (GAP - snelheid, velocityy); wheelbody. Setlinearvelocity (startingvelocity); wheelarray duwen (wheelbody).;}, heb ik nog een aantal parameters, weDe wielen van de eigenschappen voor gebruik kan worden aangewezen.Hoewel wij in dit, ik stel voor dat we alle grenzen van de code in een aparte functie gewoon inpakken, createboundaries (): private functie hier steek} {///////ongeldig je grenzen van de code, nu kunnen we het herschrijven van de gehele, getstarted (), als dit privé - functie, getstarted: (de):void {var de zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); de nieuwe b2world = (zwaartekracht, waar); wheelarray = nieuwe installatie (); createwheel (5, 10, 10, 50, 100); createwheel (5100200, 25 - 0); createboundaries (); steptimer = nieuwe de timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Type (3, 0xFF0000); steptimer. Start ();}, probeer het!Nogmaals, SWF 's moet met het vóór 15 stappen:.,, automatische wiel, we hebben nu een vereenvoudiging van de generatie van het wiel, we laten veel mensen zonder al te veel moeilijkheden of problemen:, getstarted (): private functie ongeldig {VAR zwaartekracht: b2vec2 = nieuwe b2vec2 (0, 10); De nieuwe wereld = de b2world (zwaartekracht, waar); wheelarray = nieuwe installatie (.); voor de (var i:int = 0; ik < 20; I + +) (createwheel (wiskunde, wiskunde. () × 10). (* * * * * * * (stage.stagewidth - 20) + 10, wiskunde. (*) (stage.stageheight - 20) + (10), wiskunde. (* * * * * * * - 50, 100) 0); createboundaries (}); steptimer = nieuwe timer (0025 × 1000); steptimer. AddEventListener (timerevent.timer, ontick); grafische. Lijn (3); steptimer start (0xFF0000);}, zal dat tot twintig wielen, elk met een straal van 10 0 en tussen de positie van een tussen een (10) en (stagewidth-10, stageheight -







Previous:
Next Page: