Att skapa en Pixel skärm i Batch (6 / 9 steg)

Steg 6: Förstå koden: programmera mekanik och Spotcheck



När LawLoop är klar, alla pixlar på skärmen innehåller symboler och fylls i ScreenLoop, där det ekar pixlar på skärmen och väntar på inmatning:

: ScreenLoop
CLS
kalla screen.bat
Ställ in skjuta = y
rem start move.vbs
Set/p shove =

om % shove % == () w
uppsättning shove =-% bredd %
gå till flytta
)
om % shove % == () s
Ställ in skjuta = % bredd
gå till flytta
)
om % shove % == () d
Ställ in skjuta = + 1
gå till flytta
)
om % shove % == en (
uppsättning shove =-1
gå till flytta
)
gå till ScreenLoop

: Flytta
Set/a spotcheck = % plats % % skjuta %
Ställ in checker = %% v % spotcheck %%%
ECHO ställa spotcheck = % checker % > spotcheck.bat
kalla spotcheck.bat
om spotcheck % == % barriär % goto ScreenLoop
Ställ in v % plats % = % bakom %
Set/a plats = % plats % % skjuta %
Ställ in v % plats % = % markör %
rem om % bakom % == % % symboluppsättning bakom = % symbolen %
ställa in bakom = % spotcheck %
gå till ScreenLoop

Återigen, det finns två sektioner, den viktigaste ScreenLoop avsnitt och flytta.

ScreenLoop är ganska enkelt. Varje gång den körs, det rensar skärmen och uppdaterar bilden skapad av pixlar, Visar ändringar i variabler. Loopen designerar sedan en ny variabel, skjuta %, för indata. tangenterna 'w', 's', 'a', och hade "används som piltangenterna, och avgöra vilken del av koden i programmet går till.

Fyra bitar av kod som ScreenLoop länkar till används för att ange variabler som används för att bestämma vilken variabel att kontrollera innehållet i, att ändra % utrymme % markören platsen och ändra symbolen i både den pixel som flyttas till och pixel lämnas. Miljövariabeln % skjuta % återställs för att innehålla kod för att ändra variabeln % plats % i avsnittet flytta i koden. Det blir +/-1 om markören flyttas vänster eller höger, och +/-% bredd % (+/-40 för våra 40 x 20 skärm) om markören flyttas uppåt eller nedåt.

Avsnittet flytta är lite kod som gör att programmet att reagera på innehållet i variablerna, och det är där % lag % antalet pixlar spelar in med symboler, samt del av koden som använder sig av den tredje filen, spotcheck.bat.

Flytten har också två delar. Först är det skript som kontrollerar värdet för pixeln som markören försöker gå in på.

: Flytta
Set/a spotcheck = % plats % % skjuta %
Ställ in checker = %% v % spotcheck %%%
ECHO ställa spotcheck = % checker % > spotcheck.bat
kalla spotcheck.bat
om spotcheck % == % barriär % goto ScreenLoop

Det finns flera steg i denna process. För det första programmet uppsättningar % spotcheck % tar % placera %, % lag % antalet pixlar som innehåller markören, och lägger till eller subtraherar % bredd % eller 1, utifrån de värden som angetts för % skjuta % från kommandot anges, för att utse % lag % antalet pixel markören försöker gå in på. Till exempel om vi är på v343 och flytta till v344, kommer att programmet ta plats %, vilket är 343, och lägga till 1 (eftersom vi flyttar till höger) för att få ett % lag % antal 344, som designerar pixel v344.

Nu när programmet vet antalet pixel att kontrollera, måste det kontrollera värdet av pixel v344. Detta är en svår uppgift tekniskt eftersom vi måste veta värdet av pixel v344, som är en batch variabeln % v344%, men datorn bara vet antalet pixel genom spotcheck % men behöver fullständiga namn % v344%. Detta är ett problem eftersom programmet skulle behöva kontrollera innehållet i en variabel som anges av en variabel, och du skulle sluta med

om %v % spotcheck %% == % symbolen %

med % spotcheck % är % lag % antalet pixel vi kollar. Datorn kan inte meningsfullt om detta, så vi måste göra en liten bit av alkemi på koden. Vi gör detta med andra variabeln, % checker %:

Ställ in checker = %% v % spotcheck %%%

Raden anger % checker % lika med texten "%v #%," där "#" är % lag % värdet för pixeln vi flyttar in. Om vi fortfarande kommer från v343 till v344, då checker % innehåller texten "% v344%," som inte är ett värde som kan användas i dagsläget, men som är en bit kod som datorn känner igen: variabeln % v344% är pixel vars värde måste identifiera. Nu behöver vi bara att sätta denna bit av skript i en kodrad som datorn kan använda för att kontrollera pixelns innehåll.

Det är där spotcheck.bat kommer in:

ECHO ställa spotcheck = % checker % > spotcheck.bat
kalla spotcheck.bat

Dessa rader exportera texten "Ange spotcheck = % checker %" till spotcheck.bat. Kom ihåg, checker % nu innehåller texten "% v344%," så textraden som exporteras till den nya .bat arkivera läser

ställa in spotcheck = % v344%

som är en användbar CMD linje. Efter exporterar denna textrad, programmet då kallar spotcheck.bat och driver den linjen av skriptet, och plötsligt spotcheck % innehåller samma symbol som pixel v344, och kan testas med en om/då kod.

Du kan programmera detta att kontrollera alla symboler du vill och skapa något värde som du vill; i spelet senare förlorar om monstret flyttas till en pixel som innehåller en gruva, det ett liv. Det finns bara en sak som skriptet kontrollerar sig för, men, och det är ett hinder:

om spotcheck % == % barriär % goto ScreenLoop

Om pixel v344 innehåller ett hinder, då programmet flytta inte markören men går tillbaka till ScreenLoop att få ett annat kommando.

Om det finns inget hinder för rörligheten, då programmet körs följande rader, andra halvan av flytten, för att flytta markören till den nya pixeln:

Ställ in v % plats % = % tomma %
Set/a plats = % plats % % compasssymbol % compassamount %
Ställ in v % plats % = % markör %
rem om % bakom % == % % symboluppsättning bakom = % symbolen %
ställa in bakom = % spotcheck %
gå till ScreenLoop

Den första raden återställer symbolen för den pixel du befinner dig på. Det gör detta genom att v % plats %, din aktuella pixel variabeln, lika med % bakom %, vilket var innehållet i den pixeln innan du flyttade in på den (när starterna, % bakom % är lika % utrymme, eller någon annan symbol du vill finns i Start pixel). Nu nästa gång ScreenLoop körningar och skärmuppdateringarna, den pixel du kvar visar innehållet som var där innan i stället för symbolen markören.

Därefter kommer själva flytten. Programmet tar plats %, den variabel som innehåller numret på den pixel som markören, och lägger till eller drar ifrån 1 eller % bredd % baserat på värdet för % belopp %. Nu är plats % numret på en pixel ovan, nedan, höger eller vänster om den som vi just lämnat. plats % var lika med 343; nu är det lika med 344. Markören har en ny plats.

Det sista steget är att göra denna nya pixel Visa markören symbol. Detta är enkel:

Ställ in v % plats % = % markör %

Nu den pixel v # eller v344 i vårt exempel, innehåller symbolen för markören, och kommer att visa det när ekade på skärmen.

Det finns en sista sak som måste göras: vi behöver en ny % bakom % värde så att denna nya pixel kan återställa när vi går på det.. Det gör ange vi bara % bakom % motsvara % spotcheck %, som är fortfarande inställd på symbolen för pixeln innan vi flyttade in på den. Säga pixel v344 var lika med bokstaven "F": när programmet kontrollerade v344's innehållet att se om det kunde flytta dit, det % spotcheck % lika med F för att köra om/så uttalanden, och nu % bakom % ställer sig lika med F. Nu, när vi lämnar v344 pixel kommer ställas in att Visa symbolen för det visade innan vi flyttade in på den. Det finns också en rad kod som gör att du kan ändra pixeln som du lämnar den. Ta bort "rem" från linjen och skriptet kommer att återställa pixel till en ny symbol utifrån en om/då uttalande (om pixel var F, lämnar det som G). Du kan också länka till ett kommando i ScreenLoop:

om % shove % == % % kommandouppsättning bakom = % symbolen %

När % bakom % har angetts måste flytten är klar och ScreenLoop upprepas.

Se Steg
Relaterade Ämnen

Att skapa sömlösa klinkergolv tapet

skapa sömlösa kaklade grafik som kan användas som skrivbordsunderlägg, en webbsida bakgrund eller ett texturschema för 3D projekt. Här är hur.Det är många olika bildredigering verktyg där ute och så jag lämnar det upp till läsaren att lista ut hur ma...

Att skapa SSH nycklar

I denna Tutorial får du lära dig att skapa ssh puTTY nyckel användande puTTYgen och hur du startar med Windows batch. Testad på Raspberry Pi 2 och Windows 7.Steg 1: nedladdningarDu kommer att behöva hämtapuTTY & puTTYgen från http://www.chiark.greene...

Att skapa slumpmässiga Art för pussel

gör du fortfarande pussel med bilder? Det är för lätt! Jag ska visa dig hur du skapar ett pussel med hjälp av kraften, och slumpmässighet och vektor konst... Läs på!Detta projekt är en del kod, en del konst och en del fysiska objekt. Längs vägen vi a...

Att skapa Illuminated 3D-objekt med en laserskärare

även om jag använt dessa tekniker för att skapa konst, den verkliga skönheten i detta är att du kan skapa en 3D-objekt du vill med en laserskärare, oavsett om det är objektet själv, eller en negativ för objektet inneslutet i ett block, som jag gjorde...

Hur man använder Photoshop för att skapa texturer med Alpha kanaler för Second Life

detta vägleder dig steg för steg om hur man gör texturer med öppenhet för Second Life använder Adobe Photoshop CS. Den innehåller tips om hur man undviker suddiga vita konturer och lite info om masker och alfakanaler.Steg 1: översikt Att göra texture...

Att skapa POV sekvenser.

Detta instructable kommer att fokusera på att skapa sekvenser som kan användas för att skicka en LED gränssnitt.För programmering mallen har vi använt NodeBox 3, ett program som fokuserar på generativ design och datavizualisation men är i själva verk...

Använda Photoshop för att skapa Awesome Fotoeffekter

i detta instructable, du lär dig att använda några grundläggande teachniques och verktyg för att skapa en riktigt awesome letar bild.Du behöver:Photoshop - jag använder CS5.1Ett porträtt eller en bild av någon med bra belysning och bakgrund - vi vill...

3 sätt att skapa ett Virus

jag vet att detta kommer att vara kontroversiell. Detta är endast för informationsändamål. INTE sprida eller släppa de virus som skapats i denna artikel. Detta kommer att landa du i fängelse. Jag ska lära dig att skapa ett virus. En mycket grundlägga...

Med Fusion att skapa Plug formar

I denna tutorial kommer jag att använda Fusion 360 skapa en plug mögel för vakuumformning akryl så att slutprodukten liknar en blåst glas skala insekt.Material som används:1/4 tum akryl, klar och vit3/4 tum MDF, limmade med trälim för lager materialK...

Att skapa en enkel 3D-modell på Fusion 360 och skapa en verktygsväg MYDIYCNC

Hej därTory på MyDIYCNC här. Idag vill jag visa dig hur du använder en mycket användbar bit av programvara från Autodesk kallas: Fusion 360. Med denna programvara kan du skapa enkla 3D-modeller till avancerade och komplexa 3D-modeller.Vad jag hoppas...

Att skapa konst från Scratch - "The gasell"

detta är typ av ett pågående projekt för mig, men jag har inte riktigt haft chansen att arbeta med det som för sent, vilket är mycket olyckligt. "Gasell" var min första skapelse, och jag gjorde det ett tag sedan så jag inte minns exakta detaljer...

Att skapa grundläggande planritningar från en arkitektonisk ritning i AutoCAD

dessa instruktioner hjälper dig att skapa tydliga och korrekta planritningar från komplicerade bygghandlingar. I dagens värld den enklare och mer koncis en ritning eller karta är, desto bättre och snabbare en person kan använda den för avsett ändamål...

Att skapa Hologram Illusion med anpassad grafik

Jag gjorde detta instructable efter att ha sett en liknande en här.Jag trodde att förutom visar hur man ställer in ett hologram illusiton jag kunde Visa människor hur att också skapa anpassade rörlig grafik för hologrammet.Jag provive en kort handled...

Att skapa texteffekter

Adobe Illustrator CS5 används för att skapa grafik och typ i vektorformat. Typ är också skalbar vektorgrafik och kan förbättras genom att lägga till effekter till den. Använda text från grunden och lägga till texteffekter att det med olika verktyg i...

Att skapa en inbjudan

Illustrator kan användas för att skapa personliga inbjudningskort för olika tillfällen. I den här modulen skapa en inbjudan med en uppsättning färgschema och text....

Att skapa Animerad text i mixer 2.7

Jag har alltid älskat att arbeta med datorer och animationer.På att upptäcka Blender, var jag beroende av att ta reda på det annat jag kundeskapa. Blender kan verkligen hjälpa digta dina drömmar till verklighet. Ändå i denna tutorial visar jag digHur...

Att skapa enkla vintage/grunge logotyp med "text jagare"

Idag ska vi göra en enkel vintage/grunge logotyp med "text jagare"Vad vi behöver:-Adobe Photoshop- Text jagare- Egna former-Två gratis teckensnitt: Franchise och gamlaBara ladda ner alla källor och låt oss börja! :)Steg 1: Psd. mall Först och fr...

Att skapa en Demon dräkt

jag är kund och vill utmana mig själv. Ofta, jag prova saker att inte jag ens säker på kommer att fungera. Denna kostym var en av de gånger som det fungerade ut ganska vackert.Denna kostym till mig var faktiskt byggdes 2004. Att vara ett fan av Hellb...

Att skapa & Carving fiskedrag ur kådan

Rasping eller snida beten av kådan är en teknik för att skapa anpassade lockar. Denna video följer processen att hälla Alumilite harts i allmänna formen på ett drag, sedan raspande det ner till önskad information. Denna användare har finjusterat denn...