Pong op de PIC XGS (7 / 36 stap)

Stap 7: Spel constructies - spel Logic - botsing detectie uitvoering

Wanneer u werkt in 2-dimensionale ruimte, is de uitvoering eigenlijk een beetje eenvoudiger. In plaats van een lus controleren elke mogelijke tangent punt voor zowel de objecten of de randen hebben controleren hooguit twee punten zal in elk geval volstaan.

Gericht op de bovenste en onderste randen, (x, 0) en (x, Y - s) zijn de enige mogelijke raakpunten, waarbij 0 < = x < = X. onthouden dat elk object logisch wordt vertegenwoordigd door een geordend paar thats de linker-bovenhoek. Als de bal de locatie (bx, b,y) en als by= 0, dan is de bal raakt aan de bovenrand van het scherm. Dit vereist slechts één vergelijking om erachter te komen wanneer overstappen op de neerwaartse staat. Ook, als by = Y - s, dan moet de bal ook wijzigen in de toestand omhoog verplaatsen.

De linker- en rechterrand zijn even eenvoudig. Herinneren dat (0, y) en (X - s, y) zijn de mogelijke raakpunten, waarbij 0 < = y < = Y. De volgende stap is het vergelijken van bx op 0 en X - s. Als bx gelijk aan een van beide waarden is, dan is de scoren voorwaarde is opgetreden. Waarschijnlijk is, zal de bal worden teruggesteld te kunnen blijven spelen.

De laatste reeks gevallen, wanneer de bal met de peddel botst, ligt iets moeilijker. Laat (px, py) worden de huidige locatie van de peddel. Nadruk op de linker peddel, is het eerste ding om te controleren de juiste x-coördinaten. Voor de linker peddel, liggen alle mogelijke verticale tangent punten op (px + w, y), waarbij 0 < = y < = Y. logisch, als px + w = bx, dan een botsing kan worden voorkomen. Er zijn een paar andere punten te controleren.

De volgende stap is het vergelijken van de y-coördinaten. Grafisch, plaatsvindt een botsing precies wanneer elke pixel van de bal tussen de randen van het boven- en onderkant van de peddel. In de voorgaande sectie op botsingdetectie, kan al het mogelijke raakpunten worden omschreven als alle punten tussen (px + w, py) en (px + w, py + h) als h de hoogte van de peddel is. Op dit punt, is het mogelijk om het algoritme te vereenvoudigen door het vergelijken van slechts twee punten. Als de linker bovenhoek of de linkerbenedenhoek raaklijn aan de peddel, dan moet er ten minste één punt van de bal die visueel lijkt is het botsen met de peddel. Door het controleren van deze twee punten, controleert het algoritme alle punten aan de linkerkant van de bal impliciet. De juiste peddel werkt op een gelijkaardige manier, met uitzondering van de punten te controleren zijn de hoeken van de boven - en rechtsonder van de bal, gevonden door (bx + s, b,y) en (bx s, b,y + s).

Bij de uitvoering van de botsingdetectie, de volgorde van zaken van de vergelijkingen. Berekeningen, en dus tijd, kunnen worden opgeslagen door het controleren van de belangrijkste punten in een bepaalde volgorde. Neem bijvoorbeeld de linker peddel. Stel dat de y-coördinaten in het algoritme eerst werden gecontroleerd. Door de natuur is dit een ingewikkelde uitdrukking in veel programmeertalen. Nadat deze expressie wordt gecontroleerd, zou de volgende stap zijn om te vergelijken van de x-coördinaten. Tijdens runtime zou het waarschijnlijk dat de speler de bal langs het verticale vlak, nauw volgt dus de eerste vergelijking ten minste een paar keer tijdens het afspelen, gelden zal zelfs wanneer de bal aan de andere kant van het scherm. De x-coördinaat expressie, echter zal gelden slechts éénmaal voor een flink aantal frames. Als de vergelijkingen werden omgedraaid, de dure berekening van de y-coördinaat kan worden opgeslagen om te worden gebruikt alleen precies wanneer nodig, aangezien het zou kunnen gebeuren om waar te zijn een paar keer wanneer het niet nodig is.

Dus, de botsingdetectie voor de schoepen zal als volgt uitzien:

1. Schakel als bx = px
2. Schakel als b-y < = py en by < = py + h, of indien by + s < = py en by + s < = py + h
3. Verander de bal staat

Elke volgende stap moet zijn voldaan om door te gaan op naar de volgende. De botsingen van de rand scherm werken precies zoals beschreven, aangezien er slechts één aanspreekpunt te controleren.

Gerelateerde Artikelen

Interactieve LED Beer Pong tafel

Interactieve LED Beer Pong tafel

Maak uw eigen interactieve LED Beer Pong tafel!Dit instructable zal u door alle stappen te begeleiden om het maken van een one-of-a-kind bier pong tafel compleet met kopje opsporen van RGB peulen, automatische bal sluitringen, een 32 x 12 ping pong b
Handheld Pong & Invaders op de goedkope (Arduino compatibel)

Handheld Pong & Invaders op de goedkope (Arduino compatibel)

Een retro hand-held gaming systeem goedkoop genoeg voor een kids' project. Mogelijk? Absoluut! Breng enkel op de kracht van Arduino en goedkope Chinese onderdelen!Dit project werd ontworpen als een soldeer project voor een groep van half-een-dozijn 9
Hoe maak je een ping pong ball gun

Hoe maak je een ping pong ball gun

ben je moe van office/klas/achtertuin oorlogen zonder stijlvolle of efficiënte wapens?Moe van het krijgen schot met een goedkoop plastic bb gun dat doet pijn als hel en pauzes na 5 schoten?Wilt u uw collega's / vrienden zonder zorgen over het gevaar
Pong Watch

Pong Watch

tijd voor een ander retro project, ditmaal een draagbaar - altijd op - Pong Watch. Geïnspireerd door de klassieke video game, Pong.Hier is de video van het in actie.https://Youtu.be/E3OZoS39RkkStap 1: Onderdelenlijst Horloge behuizing - goedkope 99p
De vier spelers koffietafel Pong Video Game.

De vier spelers koffietafel Pong Video Game.

UPDATE 12 APRIL 2011Belangrijk! Ik heb in kennis gesteld van een probleem met de printplaat ontwerp met betrekking tot de twee drukknoppen. Om de knoppen goed te laten werken moet u hen verbinden met de haven uitbreiding in plaats van de aansluitinge
Pimp mijn Pong

Pimp mijn Pong

maandag 9 maart:Ik krijg wind van dit Think Geek hacks contest, een week laat, franticly, ik raakte thinkgeek.com op zoek naar een gemakkelijk doden, budget en ideeën die zowel lege opdagen.Hoe zit het met die pong kit ~ 2 jaar geleden kocht ik van h
Ping-Pong Blinky

Ping-Pong Blinky

Ok, ik kocht de TI MSP-EXP430G2 Dev-bestuur een tijdje geleden, en het was over de keer dat ik het uit, zoals altijd, met LED's en Ping-Pong balletjes probeerde.Het verdwijnt tussen de kleuren.U moet:Een 2xAA batery houder, met 2 AA-batterijenEen 9v
Gemakkelijke opklapbare Ping-pong tafel

Gemakkelijke opklapbare Ping-pong tafel

Laten we een opklapbare ping pong tafel als mijn eerste DIY-project gepubliceerd in instrucables.com. De werkelijke afmetingen van een een ping pong tafel zijn 274 x 152 cm, als gevolg van de moeilijkheid van vervoer, onze tafel zal hebben de volgend
Ping Pong Ball Full colour Binary Clock

Ping Pong Ball Full colour Binary Clock

Kleur veranderende binaire klok 24 uur met behulp van ping pong ballen en full-colour LED's en een Funduino 8 * 8 matrix bord.Ik heb al een kleine 12Hr binaire klok gebouwd en het voorzien in een computer, dit werkte heel goed, maar was slechts echt
Een ping pong bal bij zal drijven!

Een ping pong bal bij zal drijven!

Hallo!Ik heb altijd gefascineerd door dingen die draadloos worden gecontroleerd door bewegingen van de hand die waarschijnlijk waarom ik een Wii eigen nu dat ik ben te denken over het. Maar ik heb niet echt gekregen om controle van de beweging van mi
PIC 12F675 programmeur/OscCal herstellen/Tester

PIC 12F675 programmeur/OscCal herstellen/Tester

Een van mijn circuits dat ik heel vaak (20-40 tegelijk), gebruik een PIC 12F675 bouwen. Ik had de volgende problemen:De planken die ik maak, heeft geen in-circuit programming mogelijkheden. Dit is om voor de lay-out van een klein PC-bestuur. Foto's m
Laat een PIC microprocessor program

Laat een PIC microprocessor program

OK hoe hard kan een PIC microprocessor programmering worden?Nou het hangt ervan af, sommige zijn harder dan anderen voor verschillende redenen, de programmeertaal, het type microprocessor, het gebruiksgemak van de software voor het bewerken en vooral
Low-Cost IC Test Clip voor PIC ICSP

Low-Cost IC Test Clip voor PIC ICSP

Ik maakte de Low Cost IC Test Clip voor ICSP voor PIC Microcontrollers.http://Neo-Sahara.com/wp/ic_test_clipStap 1: Koperen band en doek peg gebruiken.Stap 2: De koperen tape zetten op de doek peg en snijd de tapes als 2,54 mm pitch.Stap 3: Soldeer k
Ping Pong Ball Sparkler

Ping Pong Ball Sparkler

Ik vonk beetje.Stap 1: verzamelen Verzamelen een ping pong bal en een doos of twee van de Sprite bommenStap 2: Maak een gat Maakt een klein gaatje in de balStap 3: Plaats ballen In Plaats van de kleine bommen binnenStap 4: gooien Kunt u over 5-6 grot