Maken van een Pixel scherm In Batch (6 / 9 stap)

Stap 6: Inzicht in de Code: Program mechanica en Spotcheck


Keer LawLoop is voltooid, alle pixels in het scherm symbolen bevatten en wordt ingevuld ScreenLoop, waar het echo's van de pixels op het scherm en wacht op input:

: ScreenLoop
CLS
oproep screen.bat
set duw = y
rem start move.vbs
set/p duw =

Als % duw % == w)
Duw =-% breedte % instellen
goto verplaatsen
)
Als % duw % == s)
set duw = + % van de breedte
goto verplaatsen
)
Als % duw % == d)
set duw = + 1
goto verplaatsen
)
Als % duw % == een)
set shove =-1
goto verplaatsen
)
goto ScreenLoop

: Verplaatsen
set/a spotcheck = % plaats % duw %
set checker = %% v % spotcheck %%%
ECHO instellen spotcheck checker % = > spotcheck.bat
oproep spotcheck.bat
Als spotcheck % == % barrière % goto ScreenLoop
set v plaats % = % achter %
set/a plaats = % plaats % duw %
set v plaats % = procent marker
rem als % achter % == % % symboolset achter = symbool %
instellen achter = spotcheck %
goto ScreenLoop

Nogmaals, er zijn twee secties, de belangrijkste sectie van ScreenLoop en beweging.

ScreenLoop is vrij eenvoudig.  Telkens als die het wordt uitgevoerd, het wist het scherm en vernieuwt de installatiekopie die is gemaakt door de pixels, wijzigingen in de variabelen te tonen.  De lus wijst vervolgens een nieuwe variabele, duw %, voor input.  de toetsen 'w', de ', 'a', en had' worden gebruikt als pijltoetsen en bepalen welke sectie van de code het programma gaat naar.

De vier stukjes code die ScreenLoop is gekoppeld aan het worden gebruikt voor het instellen van variabelen die het programma gebruikt om te bepalen welke variabele te controleren van de inhoud van, de % ruimte % cursorlocatie wijzigen en wijzig het symbool in de pixel wordt verplaatst naar zowel de pixel wordt overgelaten.  De variabele % duw is reset om het stukje code moet worden gebruikt voor het wijzigen van de variabele % plaats % in de sectie van de beweging van de code bevatten.  Het wordt +/-1 als de cursor links of rechts, en +/-breedte % (+/-40 voor onze scherm van 40 x 20) wordt verplaatst wanneer de cursor wordt verplaatst omhoog of omlaag.

De Move-sectie is de bit van de code waarmee het programma om te reageren op de inhoud van de variabelen, en dit is waar de % wet % getallen van de pixels meespelen met de symbolen, alsmede het deel van de code dat het gebruik maakt van het derde bestand, spotcheck.bat.

Beweging heeft ook twee onderdelen.  De eerste is het script dat de controles van de waarde van de pixel die de cursor probeert te bewegen op.

: Verplaatsen
set/a spotcheck = % plaats % duw %
set checker = %% v % spotcheck %%%
ECHO instellen spotcheck checker % = > spotcheck.bat
oproep spotcheck.bat
Als spotcheck % == % barrière % goto ScreenLoop

Er zijn verschillende stappen in dit proces.  Ten eerste, het programma sets spotcheck % met % nemen plaats %, de % wet % nummer van de pixel met de cursor, en voegt of trekt breedte % of 1, op basis van de waarden voor duw % van de opdracht ingevoerd, aan te wijzen van de % wet % nummer van de pixel die de cursor probeert te gaan naar.  Bijvoorbeeld, als we op v343 en verplaatsen naar v344, zal het programma nemen plaats %, oftewel 343, en er 1 bij optellen (aangezien wij naar de rechterzijde verplaatsen wilt) om een % wet % aantal 344, die de pixel v344 aanwijst.

Nu dat het programma het nummer van de pixel weet te controleren, moet de waarde van de pixel v344 controleren.  Dit is een moeilijke taak technisch omdat we willen weten van de waarde van de pixel v344, oftewel een batch variabele % v344%, maar de computer alleen weet het nummer van de pixel door spotcheck % maar moet de volledige naam % v344%.  Dit is een probleem omdat het programma hebben zou om de inhoud van een variabele die is aangewezen door een variabele te controleren, en je met eindigen zou

Als %v % spotcheck %% == symbool %

met spotcheck % wordt de % wet % nummer van de pixel die we aan het controleren bent.  De computer kan niet zinvol, dus we moeten doen een beetje van de alchemie op de code.  We doen dit met een tweede variabele, % voor checker:

set checker = %% v % spotcheck %%%

Deze regel wordt checker % gelijk is aan de tekst "%v #%," waarbij "#" de % wet % waarde van de pixel die we naar verhuizen is.  Als we gaan nog steeds van v343 naar v344, dan checker % de tekst "% v344%," dat niet een waarde die het programma kan gebruiken op dit moment bevatten zal is, maar dat is een stukje code die door de computer herkend: de variabele % v344% is de pixel waarvan de waarde het programma nodig heeft om te identificeren.  We moeten nu alleen dit stuk van script gestoken door een lijn van code die de computer gebruiken kan om van de pixel inhoud te controleren.

Dit is waar spotcheck.bat komt:

ECHO instellen spotcheck checker % = > spotcheck.bat
oproep spotcheck.bat

Deze regels de tekst exporteren "instellen van spotcheck checker % =" naar spotcheck.bat.  Vergeet niet, checker % bevat nu de tekst "% v344%," zodat de regel tekst die wordt geëxporteerd naar het nieuwe .bat bestand leest

instellen van spotcheck = % v344%

dat is een bruikbaar CMD-lijn.  Nadat u deze lijn van tekst exporteert, het programma dan roept spotcheck.bat loopt dat lijn van script, en plotseling spotcheck % bevat hetzelfde symbool als de pixel v344, en kan worden getest met een als/dan code.

U kunt het programma van dit om te controleren voor elk symbool u wilt en maakt elke waarde die u wilt; in het spel later verliest als het monster beweegt op een pixel met een mijn, een leven.  Er is slechts één ding dat dit script inherent, echter zoekt, en dat is een barrière:

Als spotcheck % == % barrière % goto ScreenLoop

Als pixel v344 een barrière bevat, dan wordt het programma niet beweegt de cursor maar gaat terug tot ScreenLoop voor het ontvangen van een andere opdracht.

Als er geen beletsel voor het verkeer is, het programma wordt uitgevoerd de volgende regels, de tweede helft van beweging, om de cursor in de nieuwe pixel:

set v plaats % = leeg %
set/a plaats = % plaats % compasssymbol %% compassamount %
set v plaats % = procent marker
rem als % achter % == % % symboolset achter = symbool %
instellen achter = spotcheck %
goto ScreenLoop

De eerste regel wordt het symbool voor de pixel waarop die u momenteel opnieuw ingesteld.  Het doet dit door het instellen v plaats %, uw huidige pixel-variabele, gelijk is aan % achter %, wat de inhoud van die pixel was voordat u naar het (wanneer het programma begint, % achter % is ingesteld op gelijke ruimte %, of een ander symbool die u wilt in de startende pixel bestaan).  Nu de volgende keer ScreenLoop loopt en het scherm wordt vernieuwd, de pixel die u links ziet de inhoud die er in plaats van de cursor-symbool voorheen.

Vervolgens komt de eigenlijke verhuizing.  Het programma neemt plaats %, de variabele die het nummer van de pixel uitgeroepen tot de cursor bevat, en voegt of 1 of % breedte % op basis van de waarde van % bedrag afgetrokken.  Nu is plaats % het getal van een pixel boven, onder, links of rechts van degene die we zojuist verlaten.  plaats % was gelijk is aan 343; nu is het gelijk aan 344.  De cursor heeft een nieuwe locatie.

De laatste stap is het maken van deze nieuwe pixel het cursor-symbool worden weergegeven.  Dit is eenvoudig:

set v plaats % = procent marker

Nu de pixel v # of v344 in ons voorbeeld, het symbool voor de cursor bevat, en als herhaald op het scherm zal tonen.

Er is één laatste ding dat moet gedaan: we moeten een nieuwe % achter % waarde zodat deze nieuwe pixel herstellen kunt wanneer we gaan af.  Om dit te doen, troep wij uitsluitend % achter % gelijk aan spotcheck %, die is nog steeds ingesteld op het symbool van de pixel, voordat we verhuisd naar het.  Zeggen pixel v344 gelijk was aan de letter 'F': wanneer het programma gecontroleerd v344 de inhoud te zien als het daar bewegen kon, het % spotcheck % gelijk is aan F instellen om uit te voeren als/dan verklaringen, en nu % achter % zal zelf gelijk aan F.  Nu, wanneer we v344 verlaten de pixel wordt vastgesteld om de bleek voordat we verhuisd naar het symbool weer te geven.  Er is ook een lijn van code die u toelaten zou om de pixel veranderen als u het verlaat.  Verwijder 'rem' uit de lijn en het script de pixel wordt gereset naar een nieuw symbool op basis van een als/dan-instructie (als pixel F was, laat het als G).  U kan dit ook koppelen aan een opdracht in ScreenLoop:

Als % duw % == % command % set achter = symbool %

Nadat % achter % is ingesteld, de verhuizing is voltooid en ScreenLoop herhaalt.

Gerelateerde Artikelen

Maken van een pull-down groen scherm muur

Maken van een pull-down groen scherm muur

met behulp van een groen scherm voor speciale effecten en fotografie is niets nieuws.  Helaas, het kan moeilijk zijn om een grote instellen.  In het verleden heb ik 10-20 minuten gewoon om mijn groen scherm.  Ik nodig ten minste één andere persoon om
Maken van een Pi thema laden scherm

Maken van een Pi thema laden scherm

Hallo allemaal!Het heeft een lange tijd niet geweest omdat we Pi day dit jaar vierden, en vandaag ga ik het maken van een thema laderscherm van Pi. Ik zal met behulp van HTML en CSS te maken. Gebruik het in al uw Pi en math thema websites!Stap 1: Hoe
Maken van een enorme 4096 LED-Display voor Retro Pixel kunst

Maken van een enorme 4096 LED-Display voor Retro Pixel kunst

Bijgewerkt maart 2016 ***Er zijn een paar manieren waarop u kunt gaan over dit project, bouwen alles vanaf nul of maak gebruik van een kit versie. Ik zal beide methoden in dit Instructable dekken. Dit Instructable omvat de installatie van een 64 x 64
Het maken van een Locker Batch-bestand.

Het maken van een Locker Batch-bestand.

Dit is een echt eenvoudig project dat je voor de lol uitproberen moet.Stap 1: Gebruik een tekst Editor.U moet worden met behulp van een teksteditor, u hoeft niet te al.Als u één download Notepad ++ nodig hier.Stap 2: Start nieuwe.Laat maken van een n
Van het scherm voor mij: het maken van een prop

Van het scherm voor mij: het maken van een prop

In dit, mijn eerste instructible, ik in detail te beschrijven hoe ik (met hulp) een variatie op een prop van de BBC-show Torchwood gemaakt.  De prop in kwestie is de "Vortex Manipulator" gevonden op de pols van Captain Jack Harkness.  Hieronder
Maken van een spel in Kladblok en nog veel veel meer

Maken van een spel in Kladblok en nog veel veel meer

Dit is mijn eerste instructable. Zo hebt u please suggesties commentaar. Laat aan de slag!Als we alle het woord Kladblok horen denken we aan sommige saai nutteloos toepassingen te noteren van spullen. Goed Kladblok is veel meer dan dat.. We kunnen co
Het maken van een nep-ID - kopiëren en wijzigen van uw kaart

Het maken van een nep-ID - kopiëren en wijzigen van uw kaart

In dit Instructable, ik zal u tonen hoe te maken van een duplicaat van in principe elke ID of andere soort kaart. Ik zal ook de methoden voor het wijzigen van deze kaart voor een soort van nieuwheid doel schetsen.U ziet ik zeg de nieuwigheid - dit is
Maken van een Blog met behulp van Blogger.com

Maken van een Blog met behulp van Blogger.com

de volgende instructies zal u tonen hoe maak je een blog met behulp van Blogger.com.U zult een e-mailadres van Google te gebruiken Blogger.comStap 1: Aanmelden voor Blogger 1. Ga naar www.blogger.com2. Voer je Google Email en wachtwoord in het vak Aa
Maken van een 3D-Printer met behulp van een CNC-router - de "Deltabot"

Maken van een 3D-Printer met behulp van een CNC-router - de "Deltabot"

Een andere mogelijke titel zou "Maak een 3D machine met behulp van een 2D machine."Dit Instructable is over het gebruik van een CNC-router en 2D-ontwerpen voor het maken van een 3D-Printer van Delta.In mijn onderzoek over 3D printers voor hobbyi
Maken van een Panorama in Photoshop (GoPro of reguliere camera's)

Maken van een Panorama in Photoshop (GoPro of reguliere camera's)

Disclaimer: Ik ben niet een Photoshop Master of iets. Ik ga proberen te geven op wat ik weet, maar als u wilt dat ingewikkeld materiaal om te werken, ik weet niet hoeveel van een hulp zal ik!Als een heads up maakte ik deze handleiding voor de fotowed
Maken van een 2.5D Parallax film

Maken van een 2.5D Parallax film

Dit instructable is te tonen de stappen voor het maken van een eenvoudige 2.5D parallax film met behulp van GIMP en Blender.Stap 1: Ontleden installatiekopie zonder submappen Voor dit project, ik gebruikte de Sgt Pepper hoes (maar gewijzigd als onder
Bouwen van een pixel nanobot

Bouwen van een pixel nanobot

helpen bij de voorbereiding jezelf voor nanotechnologie. In de nabije toekomst kan u het opbouwen van zeer kleine robots om te opereren in de microscopische en zelfs moleculaire en cellulaire ruimte.Hebt u een oude computer waarop snelle Basic of een
Maken van een Online Business Card

Maken van een Online Business Card

bent u BUSINESS?Zoals ik doe je bedrijf? Ik ben zo zakelijke dat ik nodig een visitekaartje dat er altijd was, dus mijn zakenpartners zaken met mij altijd doen kon omdat mijn bedrijf zo zakelijke heb ik niet altijd tijd om te geef ze mijn visitekaart
Het maken van een echte 3D videocamera systeem met instelbare houder

Het maken van een echte 3D videocamera systeem met instelbare houder

ik ben 3D video's schieten voor een paar maanden nu, en het ging heel goed. Maar er een groot probleem was: de houder van de videocamera. Het was een stuk aluminium met enkele gaten in het (6mm en 8mm 2,36 "en 3.15"). Ik maakte enkele mooie 3D v