Counter-Strike Robot (15 / 16 stap)

Stap 15: Client GUI

Zoals eerder gezegd, worden we Shoes.rb, een GUI-wrapper voor Robijnrode code gebruiken. Het project schoenen is vrij netjes - zeker check out hun site. Ik kon heb gekozen voor het gebruik van Java, maar besloten het zou netter uitproberen met een ander kader.

De clientcode is gekoppeld. Zoals u zien kunt, is het een relatief normale .rb ruby-bestand.

Veel van deze code is zichzelf, dus ik zal alleen gaan over de onderdelen die zou verwarrend kunnen zijn.

 # MOTION CAPTURE BEGIN = nil, nil motion do |_x, _y| if and and ( != _x or != _y) and _x < 500 and _y < 500 and _x > 0 and _y > 0 and < 500 and < 500 append do line _x, _y end "X is now #{ "Y is now #{ end = _x, _y end 

Hier, gebruiken we de schoen 'motion' blok te vangen van de muisbeweging. We besparen de nieuwe x, y van de muis als _x en _y. Dat eerste als verklaring, controleren we of x en y beide bestaan, en geef dat wij alleen de zorg over x / y-die waarden zijn gewijzigd als het oorspronkelijke/product zijn beide binnen 0 en 500 pixels (een vierkant van 500 x 500 pixels).

Als die voldoet aan onze voorwaarde, werken we met de nieuwe posities.

Vervolgens, hebben we onze blok dat verantwoordelijk is voor het daadwerkelijk het verzenden van berichten naar onze server. De reacties leggen nogal.:

 def x_scaler(raw_x) (raw_x.to_f / 250.to_f).round(1) * 2 end def y_scaler(raw_y) # smallest value should be 800 (all the way up): -700 # largest value should be 2200 (all the way down): +800 # zero should be 1500 (center) # so: # 0 -> 800 # 250 -> 1500 # 500 -> 2200 return (((raw_y * 2.8) + 800) / 10).to_i * 10 end # Initial value = 1500 # Animate(2) runs it twice a second. Animate(8) (the fastest) would run this code 8 times a second. animate(2) do # For y variable if and > 0 and < 500 and != and > 0 and < 500 = y_scaler( "Sending Y: #{ (raw: #{ 0) else end # For x variable if and and > 0 and < 500 and != = x_scaler( - #x_scaler( "Sending X: #{ (raw: #{ 0) else "Nothing changed." = 0 end # Save these values for next time = = end 

We definiëren x_scaler en y_scaler als de formateurs voor de ruwe X en Y input, hieraan een waarde die is vriendelijk naar de set die we hebben op de Pi-server.

Het animate(2) blok betekent dat wij deze opdracht tweemaal elke seconde wordt uitgevoerd. Shoes.rb kunt dingen te lopen zo spoedig 8 keer een tweede, maar voor onze doeleinden, tweemaal een tweede volstaat. Hiermee wordt in wezen bepaald onze bemonsteringssnelheid van en (hoe vaak we zijn in de stemlokalen die variabelen)

Binnen dat blok, wij behandelen en anders. In ons geval betekent het torentje, dat wordt beheerd door een PWM servo motor puls. Dit betekent dat we alleen hoeft te geven dat één waarde voor het naar, en dus we direct naar y_scaler voeden kunnen

Sindsdien betekent daarentegen yaw hoek van de pi, die wordt beheerd door onze motoren draaien op een lengte van de variabele tijd, dit moet eigenlijk naar een nummer dat de verandering in waarde sinds de laatste verkiezingen betekent. Een beetje ingewikkelder, maar geen rocket-science wiskunde.

Aan het eind van dit blok, we besparen en voor toekomstige vergelijking voor volgende polling-cyclus.

De rest van de client GUI code is relatief duidelijk, dus ik zal niet het punt probeert afrossen te gaan over het hier.

Gerelateerde Artikelen

How to verkrijgen & installeren CS:S(Counter Strike Source) texturen op Garry's Mod

How to verkrijgen & installeren CS:S(Counter Strike Source) texturen op Garry's Mod

Met behulp van een eenvoudige server updater kunnen we installeren Counter Strike Source texturen op Garry van Mod.Stap 1: Stap 1: verkrijgen van stoom CMDDownload hierUn-Zip het steamcmd_win32.zip bestand in een nieuwe mapStap 2: Stap 2: uitvoeren v
Het bereiken van een hogere rang in Counter-Strike: Global offensief

Het bereiken van een hogere rang in Counter-Strike: Global offensief

Counter-Strike: Global offensief is één van de meest populaire concurrerende spelen. Op het bovenste niveau van spelen, kunnen professionele spelers winnen honderden duizenden dollars in toernooien. Als u deze handleiding hebt gevonden, u waarschijnl
Counter Strike Game speler Assault Hoodie

Counter Strike Game speler Assault Hoodie

Yup, is dit xmas gift gemaakt voor de dezelfde jongen met de TARDIS boekenkast en de Halo M5AB geweer prop. Lijkt zijn laatste belang is het computerspel Counter Strike en is altijd bedelen om sommige stoom punten naar voren brengen in app aankopen.
HLDS Counter Strike 1.6 [Linux]

HLDS Counter Strike 1.6 [Linux]

zodat u Counter Strike voor een tijdje spelen en zijn denken over het opzetten van uw eigen server. Dan dit de tutorial voor u is.Welkom bij mijn tweede tutorial over het opzetten van een Half leven Dedicated Server, HLDS voor gaming. Deze tutorial z
Counter Strike C4 Prop

Counter Strike C4 Prop

Door het volgen van dit instructable tot kunt u uw zeer eigen CS:GO C4-prop.Voor dit project zal u het volgende nodig:KaartBruin papier/tassenPlakbandVeel van hete lijmEen oude LCD-ModuleEen oude toetsenbordEen 9 volt batterijDraadLint draadEen rode
Counter-Strike Source kaart aan 3D-model.

Counter-Strike Source kaart aan 3D-model.

Iets ik willen doen voor een lange tijd sinds ik heb de Source SDK ontdekt voor het maken van kaarten voor de Half-life bron spellen naar exporteren konden. DXF. Dit was niet een eenvoudig proces. Exporteren naar. DXF maakte alles als losse onderdele
Counter-Strike Source Console Commands.

Counter-Strike Source Console Commands.

In bijna elk spel met opdrachten van de console ingeschakeld ze spelen een grote rol, van modding de grootte van uw kruiscursor tot fijne tweaken uw server console commando's zijn overal.In dit instructable ik zal je laten zien hoe u kunt deze opdrac
Het toevoegen van een nucleaire optie aan risico (bordspel Mod)

Het toevoegen van een nucleaire optie aan risico (bordspel Mod)

Risico is een klassieke bordspel dat vaak huisregels heeft. Sommige van deze mods zijn zelfs officiële mods, zoals Starcraft, Lord van de ringen, Halo, Doctor Who, Wandelen Dead, en 2210. Omdat risico oorspronkelijk over de post-Koude Oorlog van de T
StatTrak Fedora (nieuwe fabriek)

StatTrak Fedora (nieuwe fabriek)

Maak je eigen StatTrak Fedora.Deze hoed zal zitten kundig voor bijhouden hoe vaak u het uiteinde. Hoewel het niet wordt gedetecteerd door de actie, dus je moet druk op een knop everytime wilt u de teller op het scherm om omhoog te gaan. (Voor wie nie
Cosplay Karambit mes

Cosplay Karambit mes

Oorspronkelijk uit Indonesië is de karambit een handheld mes waarvan het ontwerp zou worden insired door de cat's claw. De functies van de karambit in het populaire computerspel Counter Strike. Ik maakte deze cosplay karambit mes voor #1Son. Het lemm
Warm bij het maken van een eenvoudige maar effectieve katapult in GMOD 10

Warm bij het maken van een eenvoudige maar effectieve katapult in GMOD 10

dit instructable zal u tonen hoe maak je een eenvoudige, but ver vuren katapult in garry's mod 10. het is een gemeenschappelijk contraption die ideaal is voor beginners. de meeste Garry Mod spelers weten hoe maak je zoiets als dit.Geniet van!Vereiste
Oude toetsenbord Transormed in aangepaste Gaming toetsenbord

Oude toetsenbord Transormed in aangepaste Gaming toetsenbord

Hallo iedereen, dit is een instructable over hoe te maken en oude, nu waardeloos, toetsenbord in een up-to-date gokkentoetsenbord. Dit zal worden meest effectief zijn als gedaan voor een specifieke game (D.W.Z. Counter-Strike ) wegens sleutel verwijd
PC Rapid Fire

PC Rapid Fire

bewerken: het definitieve programma vast zodat u niet hoeft te wijzigen van de extensieSemi-automatische pistolen met automatische snelheid schieten! Dit is een risico-vrije software mod, dus er is geen manier die u kan permanent verpesten uw muis/jo
DRAADLOZE muis wijziging van het 555 timer

DRAADLOZE muis wijziging van het 555 timer

eerste, mijn blog/het origineel.Tweede van allen, ik zou willen vermelden hoe gemakkelijk Instructables is te gebruiken. Het is gewoon zo veel makkelijker om instructies te geven wanneer u kunt uw foto's een label en opmerkingen te beantwoorden.Laat