Hai să facem o chiflă

Hai să facem o chiflă

Crearea unui covrig implică unele de planificare, dar există un lucru pe care îl putem face chiar de la început: pentru a crea un ecran titlu. Acest lucru ne va permite să înceapă proiectul, care, uneori, poate fi foarte dificil. Este ușor să stagneze în pasul „De unde să încep?“, Dar codificarea a protectorului de ecran va permite mingea rulare. Este simplu, ne permite să creați mai multe fișiere pentru un proiect viitor, precum și să configurați gândirea noastră cu privire la programarea viitoare.

Screen saver, avem nevoie în mod evident antet. Deci, cum putem crea un covrig clasic, acțiunea va avea loc in temnita. Dungeon. ce? Trebuie să ne numele suna periculos și de rău augur. Să fie Dungeon de Doom (Dungeon de osândă)! Sună destul de bun. Acesta va fi numele nostru.

Primul lucru pe care avem nevoie pentru a decide - ce tip de fereastră vom utiliza. Am putea folosi fereastra normală de consolă, dar atunci ar trebui să fie limitată doar la 16-Tew flori. Nici un motiv pentru asta. Pentru acest joc, vom folosi afișajul grafic în modul pe 32 de biți, care va utiliza paleta completă RGB. Pentru scopurile noastre, este suficient pentru a rezoluția ecranului 640x480, precum și utilizarea paletei pe 32 de biți ne va oferi o mai mare flexibilitate pentru a afișa date. La o rezolutie de 640x480, putem seta mod text de până la 80 de coloane de 60 de rânduri, care ne va da o mulțime de spațiu, și cu font 8x8, obținem un ecran compact, dar bine de citit.

Odată ce am terminat crearea imaginii, trebuie să-l transforme într-o gamă de culori.

  • Încărcați imaginea în modul grafic.
  • Itereaza peste toate punctele de imagine și de a salva valoarea de culoare într-o serie de numere întregi fără semn. Am folosit doar funcția de punct, deoarece viteza nu este importantă aici și este cel mai simplu mod.
  • Salvați fișierul rezultat într-o matrice.

Ca urmare, ar trebui să avem un fișier similar cu următorul soderdimogo:

După cum puteți vedea, codurile de culoare sunt scrise în hexazecimal. Acest lucru se face pentru a economisi spațiu în fișierul.

Pentru a ne arăta nevoia de a scrie o rutină care în modul text se va desena pe ecran folosind blocuri pătrate de culoare stabilite în acest fișier.

Două pentru NEXT-buclă, am itera in gama de culori și cu ajutorul echipelor de coarde tragerea la sorți trage de caractere ASCII 219 presetate acBlock constantă. Desenați String folosește pixeli ecran coordonatele x și y, astfel încât să putem afișa text oriunde pe ecran, și nu numai în rânduri și coloane specifice. Dar, în acest caz, dorim să folosim doar rânduri și coloane, astfel încât să schimbe coordonatele lățimea și înălțimea fontului și constantele specificate charw charh.

La prima vedere, cod CLR Dim Ca UInteger = titlu (x + y * titlew) pare un pic ciudat, dar dacă te uiți title.bi fișier, putem vedea că culorile imaginii care le-am păstrat matrice unidimensională. Pentru a converti coordonatele bidimensionale la unidimensional, folosim titlul formula (x + y * titlew), unde x și y - serie de indici și titlew - lățimea ecranului de text. Evident, pentru ca acest lucru să funcționeze, este necesar ca această matrice a fost umplut la fel de bine. De exemplu, puteți utiliza următorul cod pentru a popula matrice:

Aceeași formulă poate fi folosită pentru a umple o serie de rezoluție mai mare prin utilizarea indicilor suplimentari.

Întregește ScreenUnlock funcția de rutină a debloca ecranul, pentru a actualiza afișajul. Apoi ne-am aștepta ca utilizatorul să apese un buton sau, comanda Sleep. Ultima bucată de cod: Do: Sleep 1: Buclă În timp ce InKey <> „“ Suntem de compensare tampon tastatură, deoarece Este acum păstrată cel puțin, că cheia pentru care utilizatorul a făcut clic pentru a ieși din comanda Sleep, care nu se șterge tamponul. Nu vrem să iau toate aceste lucruri, atunci când tastele va procesa intrarile de la tastatura de pe meniu, astfel încât tastatura este necesară pentru a goli buffer.

Cu toate că programul nostru afișează numai E-saver în proiectul nostru are deja câteva:

  • dod.bas. Fișierul principal al proiectului.
  • defs.bi. Acesta oferă o listă de constante.
  • title.bi. Acesta conține o serie de valori de culoare pentru economizoare de ecran.

În timp ce în fișierul definiții au doar câteva constante necesare pentru ecranul de afișare. Rețineți că vom folosi ca linii directoare #define și de tip Const. #define utilizate pentru constantele numerice și makrosoa și Const la valorile calculate. Nu vrem de fiecare dată când utilizați fbYellow în program pentru a calcula valoarea de culoare RGB pentru el. De ce nu folosim Const peste tot? Deoarece utilizarea valorii programului Const trebuie să facă referire la tabela de simboluri pentru a găsi valoarea acestei constante. Când folosim #define, atunci compilatorul înlocuiește toate aparițiile din charw programul 8, ca și cum am scris acolo și numărul programului nu trebuie să facă referire la numele tabelului. Cu toate acestea, dacă am fost într-adevăr în codul indicat peste tot un anumit număr, și apoi, de exemplu, pentru depanare, ne-ar trebui să-l schimbe, atunci nimic nu ar fi bun venit de ea, pentru că a fost foarte dificil să-și amintească toate locurile din program unde am arătat 8 pentru a seta lățimea unui caracter. Prin urmare, este mai bine pentru a face acest lucru pentru noi a făcut un compilator.

Toate codul sursă al programului (în forma în care există în acest moment), puteți găsi în chap01 director.

Acum este momentul pentru a atribui pictograma noastră aplicație. Adăugăm la proiectul nostru are 2 fișiere. Acesta dod.ico, care este în directorul de imagini și dod.rc, care spune compilatorului la FB, în cazul în care puteți lua pictograma aplicației.

Pentru elaborarea directorul proiectului, tastați următoarea comandă:

Vă rugăm să rețineți că vom compila un program folosind comutator compilator -exx. Aceasta spune compilatorului că trebuie să ne spui despre toate bug-uri, cum ar fi producția cadrului matrice sau utilizând indexul greșit. Vom folosi întotdeauna -exx in timpul dezvoltarii. Acest lucru ne va ajuta să găsească cel puțin unele erori. De asemenea, atunci când se utilizează această opțiune, va fi creată o fereastră de consolă separată, cu ajutorul căruia putem închide programul dacă este, din orice motiv, „agățate“.

Atunci când programul nostru este pregătit pentru distribuție, vom compila fără fereastra consolă, și îmbunătățită verificarea erorilor, deoarece încetinește executarea.

Putem face acest lucru, după cum urmează:

Cheile -s gui spune compilatorului pe care dorim să compilați programul în modul grafic, fara consola.

Am terminat planul nostru inițial - pentru a începe proiectul nostru. Trebuie să mergem un drum lung, dar cel puțin avem un cod de lucru, și ceva mai mult decât o idee bună.