Roboten Counter-Strike (14 / 16 steg)

Steg 14: Raspberry Pi serverkod - funktionella kod

I föregående avsnitt gick vi över del av koden som sätter upp Raspberry Pi servern. I detta steg ska vi gå över den andra halvan av serverkoden.

För det första behöver vi ett sätt att tolka meddelanden som kommer in via TCP-socketen. Vi utvecklar våra egna protokoll för att tolka meddelanden: giltiga kommandon måste börja med en bokstav som betecknar typ av kommando, en parametrar som anger värdet (om tillämpligt), och slutar med en |. Som du ser i kommentarerna, den ' |' hjälper oss att undvika situationer där kommandon bli klungade tillsammans och vi krascha servern.

# Används för att tolka data.
# Vår inkommande dataprotokoll kommer först med en enda bokstav beteckna typ av kommando
# Det sedan kommer med värdet, vars slut markeras av en ' |'
# Den ' |' är nödvändiga för att förhindra högar tillsammans nätverkspaket

# Till exempel: "Y1320|" berättar Pi detta som ett "Y" kommando (torn), ange ett värde för 1320, och den ' |' anger slutet av kommandot
# Vi behöver den ' |' att avgränsa i slutet av ett kommando för att förhindra högar tillsammans för data
# Till exempel, vi kan av misstag ha kommandon som "Y1230X343" utan röret, och pi inte skulle veta vad till gör med kommandot

def parse_data(raw_data):
pipe_pos = raw_data.find('|')
command_key = raw_data [0]
command_value = raw_data [1:pipe_pos]
återkomst [command_key, command_value]

Avslutningsvis går vi över faktiska åtgärder koden. Eftersom vi definierade mycket kod som hjälpare metoder i tidigare delar av filen, ser i det här avsnittet faktiskt relativt rena. Detta är i huvudsak en if/else uttalande som växlar genom kommandon, och om det spärrarna på en rätt kommando, kör rätt rörelse koden. Och sedan i slutet av filen, när klienten avslutar, vi ska avsluta anslutningen.

samtidigt sant:

# Läs i data
raw_data = connection.recv(1024).rstrip() # rstrip tar bort avslutande blanksteg

skriva ut "Mottagna rådata för" + str(raw_data)

data = parse_data(raw_data)

# Y kommandon torn vinkeln
om data [0] == "Y":
skriva ut "fick Y riktning för:" + str(data[1])
turretX(int(data[1]))

# X kommandon snurrandet av fordonet (vänster eller höger)
Elif data [0] == "X":
om (float(data[1]) < 0):
# negativa, spin vänster
skriva ut "fick vänster X riktning för:" + str(data[1])
spinLeft(abs(float(data[1])))

Elif (float(data[1]) > 0):
# positiva, snurra höger
skriva ut "fått rätt X riktning för:" + str(data[1])
spinRight(abs(float(data[1])))

annat:
# Full stop
skriva ut "fick 0 X - fullt stopp!"
# fullStop()

# F kommandon bränning
Elif data [0] == "F":
skriva ut "Fick avfyra kommandot"
fireGun()

# W kommandon fram
Elif data [0] == "W":
skriva ut "Framåt"
moveForward()

# S kommandon omvänd
Elif data [0] == "S":
skriva ut "Omvänd"
moveReverse()

# P kommandon full-stop
Elif data [0] == "P":
skriva ut "FULLSTOP"
fullStop()

annat:
skriva ut "inget mappade kommando: (nyckel/värde) =" + str(data[0]) + "/" + str(data[1])

skriva ut 'Closed'
Connection.Close()

Och det är det för serverkoden! I nästa avsnitt, ska vi gå över klientkoden.

Se Steg
Relaterade Ämnen

Counter Strike spel spelare Assault Hoodie

Japp, görs denna xmas gåva för den samma ungen med TARDIS bokhylla och Halo M5AB gevär prop. Verkar hans senaste intresse är datorspelet Counter Strike och alltid ber om att få några ånga saker att göra i app inköp. Hur som helst, inspirerade från de...

Att nå en högre rang i Counter Strike: globala offensiv

Counter Strike: Globala offensiv är en av de mest populära tävlingsmatcher. På övre nivå av lek, kan professionell spelare vinna hundratusentals dollar i turneringar. Om du har hittat denna guide, du är troligen en ny eller kämpande spelare och du ha...

Hur till få & installerar CS:S(Counter Strike Source) texturer på Garry's Mod

Med en enkel server updater kan vi installera Counter Strike Source texturer på Garry's Mod.Steg 1: Steg 1: Skaffa Steam CMDLadda ner härFN-Zip filen steamcmd_win32.zip till en helt ny mappSteg 2: Steg 2: kör SteamCMD och uppdateringDubbelklicka på S...

HLDS Counter Strike 1.6 [Linux]

så att du har spelat Counter Strike ett tag och funderar på att ställa in din egen server. Så är det handledningen du.Välkommen till min andra tutorial om hur du konfigurerar en Half Life dedikerad Server, HLDS för spel. Denna handledning kommer att...

Counter-Strike Source Console kommandon.

i nästan varje spel med console kommandon aktiverat de spelar en stor roll, från modding storleken på din hårkorset till fina tweaking din server console kommandon finns överallt.I detta instructable jag kommer att visa dig hur du använder dessa komm...

Counter Strike C4 Prop

Genom att följa detta instructable kan du göra din alldeles egna CS:GO C4 prop.För detta projekt behöver du:KortBruna papperspåsarSilvertejpMassor av varmt limEn gammal LCD-modulEn gammal knappsatsEtt 9 volts batteriWireMenyfliksområdet trådEn röd LE...

Counter-Strike Source karta till 3D-modellen.

Något jag har velat göra för en lång tid eftersom jag hittade ut i Source SDK att göra kartor för Half-life Source spel kunde exportera till. DXF. Detta var inte en enkel process. Exportera till. DXF gjorde allt som enskilda delar som modeller. Expor...

Heta till göra en enkel men effektiv katapult i GMOD 10

detta instructable visar dig hur man gör en enkel, men långt skjuter katapult i garry's mod 10. Det är en gemensam grej som är perfekt för nybörjare. de flesta Garry's Mod spelare vet hur man gör något sådant.Njut!Krav:Garry's Mod 10 - http://store.s...

Hur du lägger till en Nuclear Option risken (brädspel Mod)

Risken är ett klassiskt brädspel som ofta har husets regler. Några av dessa mods är även officiella mods, som Starcraft, Sagan om ringen, Halo, Doctor Who, Walking Dead och 2210. Eftersom risken är ursprungligen om posten andra världskriget kalla kri...

CS:go Shadow dolkar

I denna tutorial jag ska visa dig hur man gör dolkar från counter strike: globala offensiv.Steg 1: mall Skriva ut mallen och dra den eller limma fast den i trä.Steg 2: Skär trä Steg 3: slipning Steg 4: färg Steg 5: gjort Hoppas ni gillar den. :-D...

Cosplay Karambit kniv

Ursprungligen från Indonesien är karambit en handhållen kniv vars design sägs vara insired av kattens klo. Karambit funktioner i populära datorspelet Counter Strike. Jag gjorde denna cosplay karambit kniv för #1Son. Klingan är tillverkad av svart akr...

Hur att delta i ett LAN-party

LAN parterna kan vara en fantastisk upplevelse med dina vänner! Eller en frustrerande övning i datorn fel eller programvara installationsproblem. Idag skulle prata om hur man få den bästa upplevelsen och vara den mest beredd att ha kul med vänner och...

Billiga (men utmärkt) musmatta

jag är för billigt att spendera $25 på en kvalitet musmatta, så jag bestämde mig att göra min egen. Allt ska vara under $5. Jag använder den med en Logitech G5 lasermus och har testat det med en Razer Copperhead lasermus och billiga Microsoft ball mu...

Gör en tid förflutit av din datorskärm

du kan göra en tidsfördröjning på skärmen med hjälp av enkla program.Den som jag rekommenderar är CamStudioAnledningarna till varförGratisLätt att användaÖppen källkodVista eller XPFungerar med nästan alla video-codecFör lappteknik videor tillsammans...

TRÅDLÖSA 555 timer mus ändring

först av allt, min blogg/the original.Andra av allt, vill jag nämna hur lätt Instructables är att använda. Det är bara så mycket lättare att ge instruktioner när du kan märka dina bilder och svara på kommentarer.Kan komma till business...Ett par år s...

Gamla tangentbord Transormed in Custom Gaming Keyboard

Hej alla, detta är en instructable om hur man gör och gamla, nu värdelösa, tangentbord i en aktuell gaming klaviatur. Detta kommer att vara mest effektiva om gjort för ett visst spel (dvs Counter-Strike ) på grund av nyckel-borttagning. Dessutom reko...

Hur man gör texturer för något spel som använder Source-motorn

denna handledning visar hur man gör en grundläggande struktur för alla source spel, såsom; Half Life 2, Half Life 2: episode 1, Half Life 2: episode 2, Counter-Strike: Source och många andra.När jag började göra egna texturer, fann jag att det var vä...

Fixa validering fel med Steam-spel (Windows)

i detta instructable jag wil lära dig hur man gör en vbscript i anteckningar som kommer att åtgärda valideringsfel med steam spel som portal 2 och sedan ge dig möjligheten th lansera dem.Det kommer också ge dig en uppfattning om hur du skriver din eg...

PC Rapid Fire

Redigera: fast det slutliga programmet så kommer du inte att byta namn på dess förlängningSkjuta semi-auto pistoler med automatisk hastighet! Detta är en risk-fri programvara mod, så det finns inget sätt du kan permanent skruva upp din mus/joystick.X...