Spelen met spelen

elastische botsing, elastische botsing,,,,,,,,,, delen, deel 2,,,,,,, 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 noem je wiskunde doen. Voor het genereren van kunst in de flash hypeeuclidean vervoerder, in deze handleiding creëren we een spel, is gericht op het voorkomen van andere objecten botsen met de cursor.We gebruiken de ingebouwde flash niet, hittestobject (), methoden; en we zullen onze eigen routine van de botsing.,,,, overgenomen, training, elke paar weken hebben we opnieuw een aantal van onze lezers favoriete uit de geschiedenis van het hele gebied.Deze handleiding is gepubliceerd in februari 2011. De definitieve resultaten van de,, bekijken, laten we eens kijken naar de resultaten van de laatste, en wij zijn vastbesloten, stap 1: te beginnen:,, het creëren van een nieuwe Flash (behandelingen, de vaststelling van de arena, 3) omvang van de KP 's 500x500px en 32.,, stap 2: de bal. Deze klasse omvat alle relevante gegevens naar een bal.Een bal, _mass,,,,, _radius, _xspeed, en, _yspeed,.Dus we zullen voor elk.In de fabrikant, we hebben de hoek en snelheid van de kwaliteit, de bal.Omdat deze klasse moeten worden gekoppeld aan een weergave van objecten, kunnen we door de breedte van de voorwerpen, gedeeld door 2 te halen we de straal van de bal.,, _xspeed, _yspeed kan worden berekend, door gebruik te maken van eenvoudige en cosinus functie, de invoer van flash.display.stage flash.display.sprite pakket (invoer flash.events.event de bal uit _radius: het aantal particuliere Sprite {VAR = 0 particuliere var _mass: het aantal particuliere var = 0 _xspeed: het aantal particuliere var = 0 _yspeed: een openbare functie van het aantal = 0. (kwaliteit: de hoeveelheid = 10, hoek: = aantal math.pi, snelheid: de hoeveelheid = 10): de kwaliteit van _radius ongeldig {this.mass = = = snelheid. This.width/2 this.xspeed * wiskunde. Misdaad (Kok) this.yspeed = snelheid * wiskunde. Omdat de (-)}}}, die meer informatie in trigonometrie. Sin () en wiskunde. Want () functies, de snelle waarschuwing.,, stap 3: een ambitieusEn de leider van de bal, in onze klas bieden we onze goederen gesloten en een openbare functie, straal (): de hoeveelheid {terug. _radius} van de kwaliteit van de openbare functies (massa): {is leeg. _mass = kwaliteit openbare functie (}): de massa _mass} {terug het aantal openbare functies. Zet de (de: nummer): {} deze leegte. _xspeed = de openbare functie xspeed (): de hoeveelheid {} terug. _xspeed openbare functies yspeed (yspeed: aantal): {is leeg. _yspeed = yspeed} openbare functie yspeed (): de hoeveelheid {terug. _yspeed}, stap 4. De functie van deze functie: bijwerking, vernieuwing van de X - en Y - eigenschap, volgens onze bal, _xspeed _yspeed,,,.We zullen de verwezenlijking van onze bal, deze functie, de openbare taken van:void Update () {X + Y + = = = = = = = _xspeed, _yspeed}, en stap 5: na de voltooiing van de soort, zullen wij onze doelstellingen, in dit stadium, klasse, de invoer van flash.display.stage flash.display.sprite pakket (invoer flash.events.event openbare de bal _radius: uitbreiding van particuliere Sprite {var het aantal particuliere var = 0 _mass: het aantal particuliere var = 0 _xspeed: het aantal particuliere var = 0 _yspeed: het aantal openbare functie = 0 bal (kwaliteit: de hoeveelheid = 10, hoek: = aantal math.pi, snelheid: de hoeveelheid = 10): de kwaliteit van _radius ongeldig {this.mass = = = = = = = this.width/2. This.xspeed = snelheid * wiskunde. Misdaad (Kok) this.yspeed = snelheid * wiskunde. Omdat de openbare functie (Kok)}Door de straal (): het aantal _radius} {terug. De kwaliteit van de openbare functies (kwaliteit): {is leeg. _mass = kwaliteit openbare functie (}): het aantal massa {terug. _mass openbare functies van het (de): aantal): {is leeg. _xspeed = de openbare functie xspeed} (): aantal {terug. _xspeed} openbare functies yspeed (yspeed: aantal): {is leeg. _yspeed = yspeed} openbare functie yspeed (): de hoeveelheid {terug. _yspeed} openbare functie Update (): ongeldig {X + Y + = = = = = = = _xspeed, _yspeed}}}, stap 6 onze ballen: weergave van objecten, in de bron van zijn dossier bevat een begon ik angstDie moet je alle bibliotheken.Natuurlijk, als je wilt, kan je jezelf eruit trekken.Om ervoor te zorgen dat de volgende je FIA weergave van objecten:,,,,, en uiteindelijk xspeedball: V1 = 1, 2 V2 = uiteindelijk xspeedball, M1 = grote bal 1 m2 = 2, de kwaliteit van de bal, bal U1 = 1, snelheid, snelheid, 2 = 2, niet de bal, y-speeds veranderingen is een botsing. Deze formule voor de berekening van zijn, kunnen we de,,,, yspeed, elke bal en nu als er een nieuwe coördinaten X - en y-speeds in.De laatste stap is om alles te veranderen in een normale coördinaten.We gebruiken, math.pi/2, omdat de hoek tussen de,,,, yspeed moet 90 graden (π /2 rad), private functie docollision (ball1 bal, bal, bal spel:): de volgende nummers nietigverklaring {x = ball1 X var. Een aantal ydist.: = ball1. Y - Y is. De variabele aantal collisionangle: = wiskunde (ydist. Maar, xdist) var magball1: = aantal wiskundige. Sqrt (ball1. De * * * * * * * ball1. De + ball1. Yspeed * * * * * * * ball1. Yspeed) var magball2: = aantal wiskundige. Sqrt (tel. De berekening van De * * * * * * * * * * * * * * yspeed. + is een yspeed.. angleball1) var: de hoeveelheid = wiskunde (ball1.yspeed. Maar, ball1. De) var angleball2: = aantal wiskundige. Maar (ball2.yspeed, rekenen. De) var xspeedball1: magball1 * = aantal wiskundige. Omdat (angleball1 collisionangle) var yspeedball1: hoeveelheid = magball1 * misdaad (angleball1 botsing van wiskunde.Onangle) var xspeedball2: magball2 * = aantal wiskundige. Omdat (angleball2 collisionangle) var yspeedball2: magball2 * = aantal wiskundige. Misdaad (angleball2 collisionangle) var finalxspeedball1: hoeveelheid = ((ball1. Mass-ball2. Kwaliteit) * (xspeedball1 + + is de kwaliteit van de kwaliteit van xspeedball2. Tel. * * * * * * *)) /(ball1 de kwaliteit van de kwaliteit) +. Tel. Var finalxspeedball2: hoeveelheid = ((ball1. De kwaliteit van de kwaliteit van xspeedball1 + ball1. * * * * * * *) + (tel. Mass-ball1. Kwaliteit) * * * xspeedball2) /(ball1. Kwaliteit en telt. Kwaliteit) var finalyspeedball1: hoeveelheid = yspeedball1 var finalyspeedball2: ball1.xspeed = = aantal yspeedball2 omdat wiskunde. (collisionangle) * * * finalxspeedball1 + wiskunde. Omdat (collisionangle + wiskunde. π /2) * * * finalyspeedball1 ball1.yspeed = wiskunde. Misdaad (collisionangle) * * * finalxspeedball1 + wiskunde. Misdaad (collisionangle + wiskunde. π /2) * * * finalyspeedball1 ball2.xspeed =...H.cos (collisionangle) * * * finalxspeedball2 + wiskunde. Omdat (collisionangle + wiskunde. π /2) * * * finalyspeedball2 ball2.yspeed = wiskunde. Misdaad (collisionangle) * * * finalxspeedball2 + wiskunde. Misdaad (collisionangle + wiskunde. π /2) * * * finalyspeedball2}, meer informatie vinden over de elastische botsing zien, hoomanr. COM. Stap 18:endofgame (), dit is de werking van het spel is voorbij, private functie endofgame () ():void {OMO. Stop de muis. Show (). RemoveEventListener (mouseevent.mouse_move, updateplayerball). RemoveEventListener (event.enter_frame, gameloop) en (eballs.length > 0) {TweenMax, (eballs [0] 0,5 {scaleX:0, genaamd: 0, aan te nemen. Easeout}) eballs. Aansluiting (0,1) (} TweenMax, honkbal, 0,5, {scaleX:0, genaamd: 0, aan te nemen. Easeout})Ten eerste, we stopt de timer.We opnieuw blijk gegeven van een muis.We gaan mouse_move en enter_frame luisteraars.Tot slot, we hebben de bal op het podium zien stappen. 19:checkbounds (,,), deze foto 's om de bal in het spel te blijven.Dus, als de bal naar boven of beneden, we ondersteboven, yspeed,.Als de bal naar links of rechts op het scherm draaien we de,,.Het gebruik van dezelfde logica om te testen op een botsing met de functie van de marge om te oordelen over de bal op het scherm van de rand, private functie checkbounds (bal: bal): ongeldig {als (bal. X + straal) > fase. Stagewidth) {bal. X = stage.stagewidth - ball.radius ball.xspeed * = 1} als ((bal. X - straal) < 0) {bal. X = 0 + 1) als ball.radius ball.xspeed * = ((bal. Y + straal) > fase. Stageheight) {y = stage.stageheight - bal. Ball.radius ball.yspeed * = 1} als ((bal y - bal. Straal) < 0) {bal. Y = 0 + ball.radius ball.yspeed * = 1}}, stap, 20: volledige toepassing van klasse, we hebben de toepassing van klasse.We hebben nu een spel!!!!!!!!!!!!!!!De invoer van flash.display.sprite. {; de invoer van flash.display.graphics; de invoer van flash.events.event; de invoer van flash.events.timerevent; de invoer van flash.events.mouseevent; de invoer van flash.geom.matrix; de invoer van flash.utils.timer; de invoer van flash.ui.mouse; de invoer van com.greensock.tweenmax; de invoer van maïs. GreenSock. Los van de uitbreiding van de toepassing. * * * * * * *, SPRITE {particuliere spelers: bal var; particuliere var eballs: generator; particuliere var OMO: de timer. Privé - beoordeling van de risico 's van toepassing: score; openbare functies () {});:void (particuliere): functie (= nieuwe playerball ongeldig {spelers (); eballs = nieuwe installatie (); de TMR = nieuwe timer (10); de score = nieuwe score (); stage.align = "ti"; - fase.ScaleMode = "noscale"; aan de muis. (); setbackground (); de score. X = stage.stagewidth /2; scoren. Y = stage.stageheight /2; fase. Addchild (score); - fase. AddEventListener (mouseevent.mouse_move, updateplayerball); fase. Addchild (spelers); de OMO. AddEventListener (timerevent.timer, addEventListener (bijwerking); - fase. Mouseevent.click, startgame);} privé functie setbackground ():void {var: string = "de"; var. Kleur: - = [0xffffff, 0xcccccc]; var Alpha: - = - 1,1; geen macht: - = [0255]; de VAR - matrix: De matrix = nieuwe matrix (); de matrix. Creategradientbox (stage.stagewidth, stage.stageheight, math.pi /2, 0, 0); ///////spreadmethod zalMijn definitie van de gradiënt van is hoe de verspreiding.Let op!!!!!!!!!!!!!!!- het gebruik van een reeks variabelen constant te zijn sprmethod: string = "..."; ///////gradietn en we beginnen door de variabele, de VAR - Sprite? = nieuwe Sprite (); ///////redden door de verbetering van de prestaties van de typen +, de variabele object lokale Referentie: g = sprite.graphics grafische vorm, kleur, g.begingradientfill (; 阿尔法比 matrix, sprmethod); g.drawrect (0,0, fase. Stagewidth, fase. Stageheight); - fase. Addchild (Sprite);} privé functie updateplayerball (E:MouseEvent): ongeldig {spelers. X = mouseX; speler. Y = muis;} particuliere bijwerking (E:timerevent): {score.txtscore.text ongeldig = ((((OMO. Rekeningen * * * * * * * OMO. Vertraging) /1000) vastgesteld (2)).Als ((OMO. Rekening * OMO. Vertraging)% 5000 = = 0) {addball ();}} privé functie startgame (E:MouseEvent): ongeldig {fase. RemoveEventListener (mouseevent.click, startgame); addball (); addball () (); addball; OMO. Start (); addEventListener (fase. Event.enter_frame, gameloop);} privé functie addball ():void {var de bal: bal = nieuwe bal (10), wiskunde math.pi * * * * * * * * * * * * * *. (2,5); de bal. X = wiskunde. (*) stage.stagewidth; de bal. Y = wiskunde. (*) stage.stageheight; ball.alpha = 0; de fase van addchild (bal.); TweenMax (bal, 0,5, 1} {-); TweenMax (bal, 0 (vertraging: 1, volledige: functie () {eballs:void. Duw (bal)}}} van);De functie van eten gameloop (E: gebeurtenissen): ongeldig {(VAR I: eenheid = 0; ik < eballs.length; I + + (VAR) {voor J: eenheid = I + 1; J < eballs.length; j) {als (botsing (eballs [M], [eballs])) {docollision (eballs [M], eballs [J]);}} als (botsing (eballs [M], baseball)) {endofgame (); de pauze;} eballs [I]. Update (); checkbounds (eballs [M]);}} privé functie botsing (ball1: De bal, wedstrijd: de bal): booleaanse {wordt de volgende nummer = ball1. X. X; var ydist: hoeveelheid = ball1. γ ballenspel. Y; var uitkeringen: de hoeveelheid = wiskunde. Sqrt (xdist * * * * * * * * * * * * * * xdist + ydist ydist); als (stofwolken < = ball1.radius + tellen.Straal) {als (ball1. X < Tel. (x) ball1. X = 2; Tel. X = 2;} {ball1 anders. X = 2; Tel. X = 2;} als (ball1. De Y < Tel. Y) {ball1. Y = 2;. Y + = 2;} {ball1 anders. Y + = 2; Tel. Y = 2;}} terug afstand < = ball1.radius + ball2.radius;} privé functie docollision (ball1 bal, bal, bal spel:): de volgende nummers nietigverklaring {x = ball1. - X; var. Ydist: hoeveelheid = ball1. Gamma - bal spelen. Y; var collisionangle: hoeveelheid = wiskunde (ydist. Maar, xdist); var magball1: = aantal wiskundige. Sqrt (ball1.xspeed * * * * * * * ball1.xspeed + ball1* * * * * * * ball1. Yspeed. Yspeed); var magball2: = aantal wiskundige. Sqrt (* * * * * * * * * * * * * * ball2.xspeed ball2.xspeed + ball2.yspeed. Yspeed); var angleball1: = aantal wiskundige. Maar (ball1. Yspeed, ball1 var. De); angleball2: = aantal wiskundige. Maar de bal spelen. Yspeed, te berekenen. De) xspeedball1; var: de hoeveelheid = magball1 * wiskunde. Omdat (angleball1 - collisionangle); var yspeedball1: magball1 * = aantal wiskundige. Misdaad (angleball1 - collisionangle); var xspeedball2: magball2 * = aantal wiskundige. Omdat (angleball2 - collisionangle); var yspeedball2: hoeveelheid = magball2 * * * * * * * (angleball2 - collisionangle misdaad wiskunde.); var finalxspeedball1: hoeveelheid = ((ball1. Mass-ball2. Kwaliteit) * (xspeedball1 + + is de kwaliteit van de kwaliteit van xspeedball2. Tel. * * * * * * *)) /(ball1. Kwaliteit en telt. Kwaliteit); var finalxspeedball2: vrouwen(= ((ball1. De kwaliteit van de kwaliteit van xspeedball1 + ball1. * * * * * * *) + (tel. Mass-ball1. Kwaliteit) * * * xspeedball2) /(ball1. Kwaliteit en telt. Kwaliteit); var finalyspeedball1: hoeveelheid = yspeedball1; var finalyspeedball2: hoeveelheid = yspeedball2; ball1.xspeed = wiskunde. Omdat (collisionangle) * * * finalxspeedball1 + voor wiskunde. (collisionangle + math.pi /2) * * * finalyspeedball1; ball1.yspeed = wiskunde. Misdaad (collisionangle) * * * finalxspeedball1 + wiskunde. Misdaad (collisionangle + math.pi /2) * * * finalyspeedball1; ball2.xspeed = wiskunde. Omdat (collisionangle) * * * finalxspeedball2 + wiskunde. Omdat (collisionangle + math.pi /2) * * * finalyspeedball2; ball2.yspeed misdaad (= wiskunde. Collisionangle) * * * finalxspeedball2 + wiskunde. Misdaad (collisionangle + math.pi /2) * * * finalyspeedball2;} privé functie endofgame:V ()Het is {OMO. Stop (); de muis. Show (); - fase. RemoveEventListener (mouseevent.mouse_move, updateplayerball); - fase. RemoveEventListener (event.enter_frame, gameloop); en (eballs.length > 0) {TweenMax, (eballs [0] 0,5 (scaleX:0, genaamd: 0, aan te nemen. Easeout}); eballs. Aansluiting (0,1);} TweenMax (baseball, 0,5, {scaleX:0, genaamd: 0, aan te nemen. Easeout});} privé functie checkbounds (bal, bal): ongeldig {als (bal. X + straal) > fase. Stagewidth) {de bal. X = stage.stagewidth - ball.radius; ball.xspeed * = 1;} als ((bal. X - straal) < 0) (+ ball.radius bal. X = 0; ball.xspeed * = 1;} als ((bal. Y + straal) > fase. Stageheight) {y = stage.stageheight - bal. Ball.radius; ball.yspeed * = 1;} als ((bal. Y - straal) < 0) (+ ball.radius bal. Y = 0; ball.yspeed * = - 1;}}}}, de conclusie, dat de training.Natuurlijk, je kan een verhoging van de mogelijkheid van hervatting van het spel, maar het zou niet zo moeilijk moeten zijn.Deze fundamentele voorbeeld is de elastische botsing, kunnen worden gebruikt voor meer spelen, zoals biljarten of soortgelijke, ik hoop dat je de handleiding lezen, dank je.,

Flash collision game tutorial
Flash collision game tutorial
Flash collision game tutorial



Previous:
Next Page: