Pong på XGS bild (6 / 36 steg)

Steg 6: Spelet konstruktioner - spelet logik - kollision upptäckt



Detta är den mest svårt begrepp att överväga när du skriver Pong. Kollisionsidentifiering är inneboende geometriska och därför matematiska, i naturen.

Bollen har nu ett sätt att flytta på ett förutsägbart sätt, men hur bollen övergången mellan de olika staterna? Ganska logiskt, vissa spel händelser kommer att diktera övergångarna, men nästa steg är att definiera när förändringarna hända och till exakt vilken stat. Med denna design av Pong, vad som ska hända när bollen träffar toppen, och, analogt, botten av skärmen av lek? Bryta detta ned ytterligare, att slå upp på skärmen, bollen måste vara på väg uppåt. För att simulera en studsande effekt, måste bollen flyttas till den nedåtgående riktningen. När de olika boll-staterna var ovan, bollen har två nedåtriktade stater: antingen vänster eller höger.

Analysen måste nu fortsätta i ett enskilt fall. Därför antar bollen är på väg uppåt och vänster strax före kollisionen. Flytta nedåt är nästa logiska steg, men ska det fortsätta röra vänster eller växla till flytta rätt? Om bollen skulle övergången till en höger-flytta stat, skulle bollen återföra dess riktning längs diagonalen som det kom ifrån, aldrig flytta till andra sidan av skärmen. Det enda sättet för att nå andra sidan av skärmen av lek är att fortsätta i en vänstervridning riktning. En liknande situation rymmer när bollen rör sig uppåt och höger: Fortsätt att flytta till höger och byta till en nedåtgående riktning. De nedåtgående fall hanteras symmetriskt.

Exakt när ändringarna övergången hända? Detta kommer att innebära att definitionen av en kollision: två objekt vid vissa tillstånd av korsningen sägs kolliderar. I detta spel fallet kommer att med objekten faktiskt skär med varandra leda till grafiska avvikelser; Därför blir den exakta delstaten korsningen när objekten är tangent till en annan, eller helt enkelt röra men inte överlappande.

En diskussion av samordna planet är nu i ordning. I många språk, plottning pixlar fungerar på ett liknande sätt. Varje enhet i ett ordnat par är en pixel med x-koordinaten av pixlar från den vänstra bunden av skärmen och y-koordinaten mäta avståndet från toppen av skärmen. Låt den aktuella resolutionen vara X x Y, där X, Y > = 0. X beskriver den maximala bredden på skärmen medan Y betecknar höjden på skärmen. Det övre vänstra hörnet av skärmen är (0, 0), medan nedre högra hörnet är (X, Y). Om du vill rita en punkt 40 pixlar kvar och 20 pixlar ner, Använd de ordnat par (40, 20). Därför, den översta raden av skärmen kan beskrivas som (x, 0), medan rad av skärmen kan vara betecknas (x, Y), där 0 < = x < = X (se figur 1).

Det visar sig att (x, 0) och (x, Y) är kollision punkter inom skärmen av lek. För förra, den översta delen av bollen kommer att tangenten till den övre kanten av skärmen, och bollen behov till ändra till rätt staten innan faktiskt skär med överkanten. Eftersom alla våra spel objekt beskrivs med övre vänstra hörn, representeras varje spel objekt i data med någon sorts koordinatparet. Då fungerar nedre kanten fallet på samma sätt men med ett litet problem. Om bollens läge är någonsin lika med (x, Y), måste sedan det redan skär den nedre kanten av skärmen av lek. Eftersom bollen är ett torg med en konstant längd s, kan exakt samma tangent punkt nu enkelt beräknas. Genom att subtrahera s från Y, ger höjden på skärmen den punkt där bollens nedre kant är tangent till den nedre kanten av skärmen av lek. Representerar detta i koordinatparet form, varje möjlig kollision punkt kan representeras av (x, Y - s).

En liknande uppsättning kollisioner uppstår från fallet när bollen och paddel inte kollidera; i huvudsak scoring skick. Med hjälp av definitionen av samordna planet, (0, y) och (X, y) måste vara vänster- och gränserna för skärmen på lek, där 0 < = y < = Y. Eftersom övre vänstra hörnen på objekt används för att definiera deras läge, definitionen av vänstra kant, (0, y), kan användas för att hitta de Tangerande punkterna. Precis som när att hitta kollision poäng för de övre och nedre kanterna, utnyttjas ett fall definition av en kant men en offset som behövs för att hitta den exakta Tangerande punkten. Om bollens läge skulle lika (X, y), bollen skulle har redan genomskuren med högra kant. Sedan bollen har en bredd på s, ger (X - s, y) alla Tangerande punkter med den högra kanten av skärmen av lek.

Alla skärm kanten kollisioner har nu uttryckligen hanterats. De två sista fallen är något svårare, eftersom det är då bollen kolliderar med paddlar på vänster och höger sida av skärmen. Beräkningen är lik när du arbetar med vägg-liknande övre och nedre kanterna på skärmen av lek, men väggen begränsas nu, eller har en mycket specifik längd. Där kan bollen faktiskt kolliderar med en paddel?

För det första anser vänster paddeln. Låt h anger höjden på paddeln och w beskriver bredden i bildpunkter. Antar att det (px, py) är platsen för paddel och (bx, by) beskriva platsen där bollen. (Kom ihåg, dessa övre vänstra hörn.) För att hitta den kollision punkten, bör den högra kanten av paddeln användas. Eftersom bredden på paddeln är en konstant, (px + w, py) kommer att ge det övre högra hörnet av paddeln. Detta är nu den övre gränsen av punkterna som möjligt kollision med paddeln. Att hitta det nedre högra hörnet kommer att ge den undre gränsen, och därmed skapa alla möjliga punkter där bollen kan krocka med paddeln. Eftersom höjden på paddeln är en konstant, kan det nedre högra hörnet hittas genom att kombinera högerkant beräkning och h, ger (px + b, py + h). För att faktiskt kontrollera för kollisionen, jämför läge (bx, by) med (px + b, py + h). Så när bx = px + w och py < = by < = py + h, en kollision inträffar (se figur 2).

Högra paddeln har en symmetrisk fråga med beräkningar. Eftersom det övre vänstra hörnet används för att representerar platser, den vänstra kanten ges praktiskt, så alla punkter mellan (px, py) och (px, py + h) är de möjligt Tangerande punkterna. Men nu behövs den högra kanten av bollen att hitta kollisionen. Eftersom s är längden på en sidan av bollen, ger bx+ s det övre högra hörnet av bollen. Resonemanget ovan kan nu arbeta, så kollisionen inträffar exakt när bx + s = px och py < = by < = py + h.

En sista sak kvar för att diskutera: vad ska hända när bollen kolliderar med paddlar? Om bollen kolliderar med paddeln, då det övergripande statligt behov växla, annars bollen skulle gå igenom paddeln. Nästa uppenbara fråga innebär vertikal delstaten bollen. Antar att bollen kommer upp; sedan om bollen skulle vända sitt vertikala läge, eller gå ner, skulle sedan bollen tillbaka längs samma diagonal vägen eftersom bollen vänder dess övergripande statligt. Den vertikala staten bör därför samma.

En intressant trend märks nu mellan relationer med kollisioner och bollen staterna. Om bollen kolliderar med den övre eller nedre kanten, vänd vertikala staten. Om bollen kolliderar med en av paddlarna, en vänster eller höger kant så att säga, vänd det övergripande statligt.

Se Steg
Relaterade Ämnen

Solo Cup - öl Pong kostym

denna solo cup kostym är super lätt att göra och är en stor interaktiv grupp kostym. Samla 2, 4 eller 12 vänner att göra ett fullt lag! Ta några ping pong bollar och du har en öl pong spel att gå. Kostym inkluderar även en inbyggd i öl hylla.Steg 1:...

Beer Pong alarmklocka

så im ska bara börja med att berätta för alla varför jag gjorde detta projekt. ha en väckarklocka bredvid min säng bara var inte skära det, jag skulle slå på snooze-knappen så ofta att jag var sen till nästan allt. och detta är precis vad jag gjorde...

Ping Pong katapult

jag byggde detta ping pong katapult för barnen men de är en stor stress reliver på kontoret kan du ha några verkliga roligt med dessaJag tittade på några bra mönster över internet och alla jag såg hade en tendens att använda standard lolly pinnar, ja...

Hur man bygger en öl Pong bord topp

Syfte:· Lära de grundläggande reglerna för öl pong· Hur framgångsrikt ett kollegialt öl pong bordSteg 1: Vad är ölpong?Beer Pong:· Beer Pong används oftast som ett kollegium dricka spel· Den består av 2 lag 2. Varje lag som börjar med 10 koppar fylld...

Animera spelet Pong

välkomna alla till vår animation och vi kommer eb visar er hur man skapar spelet pong via post det noterar och andra material som används i hela våra stegSteg 1: Se våra skisser innan produktionen Detta är vad vi planerat innan du gör något, först tä...

Flyta en ping pong boll på kommer!

Hej!Jag har alltid varit fascinerad av saker som styrs trådlöst med hand rörelser vilket förmodligen är varför jag äger en Wii nu när jag tänker på det. Men jag har inte riktigt kommit till göra någon rörelsekontroll av min egen design innan så det k...

Pong klocka

Mars 2014 uppdatera! Version 5.1 av koden är ute med buggfixar och ett trevligt gemener teckensnitt. Få det medan det är varmt! Länken är på den sista sidan i detta instructable!Denna klocka använder det klassiska spelet Pong för att tala om tid. 2 s...

Handheld Pong & inkräktare på billigt (Arduino kompatibel)

Ett retro handhållna spelsystem billigt nog för en barnens projekt. Möjliga? Absolut! Bara ta på Arduino och billiga kinesiska komponenter!Projektet var utformat som ett lödning projekt för en grupp av ett halvdussin 9 och 10 år gamla barn men det är...

Littlebits Pong

Detta projekt visar Pong spelet från denLite bitar webbplats på http://littlebits.cc/projects/analog-pong. Kontrollera att du har Arduino IDE installerat(se SOS-projektet för instruktioner).Steg 1: PongBörja med en effektmodul.Steg 2: PongLägga till...

Couch Pong

den grundläggande tanken med detta projekt var att arbeta med en redan existerande futon/liten soffa som min farfar hade gett mig och förvandla det till mer än bara en soffa. Bor i ett studentrum är naturligtvis ganska trångt så när utforma detta pro...

Vakuum kanon kör ping pong boll i överljudshastighet

Jag ska här beskriva en kanon som kan köra ping pong bollar tillräckligt snabbt för att gå igenom plywood och aluminium burkar. Denna "vakuum kanon" har visats i college fysik klasser, eftersom det innebär många grundläggande fysik begrepp som N...

Baserade Arduino Bi-color LED Matrix Pong spel

Vi har skapat två game-projekt instructables hittills använda jolliFactory Bi-color LED Matrix Driver modul DIY kit vi har utformat. Denna ledde matrisen modul är utformad för att kunna kedja-så du kan seriekoppla moduler tillsammans med antalet modu...

Flytande öl Pong tabell

för många här, det är sommartid nu. För många av dessa människor: sommartid parterna (nämligen sådana utomhus). För många av dessa människor inkluderar detta en pool vid något tillfälle. Och sedan ett parti ofta innehåller öl pong för många (unga) mä...

Någonstans Beer Pong på hjul

vi älskar att spela beer pong så skapade jag min egen version om du vill ta med överallt. Det kan tas isär och lagrade och det är på hjul. Projektet kräver sömnad och tog mig ca 2 timmar. Camping i sommar kommer att bli skitkul när jag rullar ut den...

LED Pong

Snabb överblick:Jag kallar detta "LED Pong". Jag byggde det från grunden och jag baserat designen på en 1 meter individuellt adresserbara lysdioder och en Arduino Uno. Pong var en av de första video arcade-spel som någonsin gjorts. Det släpptes...

Motorized Ping Pong Ball Guns

Detta Instructable kommer att lära dig hur man gör en motoriserad pingpong klumpa ihop sig vapnet. Dessa ping pong boll kanoner finns en hel del kul att bygga, men roligare att skjuta. Jag gjorde detta som en julklapp för min son.UV LED-lampor monter...

Kids Cup Pong spel

jul kväll, min fästman ', 2 sons, och jag gick till en goda vänner hem för spel och drycker (som varje semester). Samtidigt vara god deras son tog fram en gåva från Santa, ett spel som heter Cup Ponk (tm). Ett spel som är populära detta förflutna sem...

Pong spel med fpga kit

Hej var och en. här delade jag projektet "pong spelet med fpga kit". FPGA är field programmable gate array. Det är en teknik att vi kan utforma någon digital enhet genom programmering. Det betyder i fpga kit fungerar som alla digitala enheter so...

Interaktiva LED öl Pong tabell

Skapa din egen interaktiv LED öl Pong tabell!Detta instructable kommer att guida dig igenom alla stegen för att skapa en en-av-en-slag öl pong tabell komplett med cup upptäcka RGB pods, automatisk boll brickor, en 32 x 12 ping pong boll LED rutnät, s...