Mgbe ị na-agbanye ihe njikwa, ị na-apịa bọtịnụ, bugharịa osisi ndị ahụ, dọpụta ihe ndị na-akpalite ... na dịka onye mmepụta, ị gaghị ahụ nke ọ bụla n'ime ya. Ihe nchọgharị ahụ na-ebuli ya, n'ezie, mana ọ gwụla ma ị na-abanye nọmba na njikwa, ọ gaghị ahụ ya. Nke ahụ bụ isi ọwụwa na Gamepad API. Ọ dịla kemgbe ọtụtụ afọ, ọ dịkwa ike n'ezie. Ị nwere ike ịgụ bọtịnụ, osisi, ihe na-akpali akpali, ọrụ. Mana ọtụtụ ndị anaghị emetụ ya aka. Gịnị kpatara? N'ihi na enweghị nzaghachi. Enweghị panel na ngwaọrụ mmepụta. Enweghị ụzọ doro anya iji mara ma onye njikwa na-eme ihe ị chere. Ọ dị ka efe efe kpuru. Nke ahụ mere ka m nwee ike ịrụ obere ngwá ọrụ: Gamepad Cascade Debugger. Kama ilegide anya na mmepụta console, ị ga-enweta nlele ndụ na mmekọrịta gbasara njikwa. Pịa ihe wee meghachi omume na ihuenyo. Site na CSS Cascade Layers, ụdị ndị a na-ahazi, yabụ na ọ dị ọcha karịa imezi ya. Na post a, m ga-egosi gị ihe kpatara ndị na-ahụ maka nbibi ji bụrụ ihe mgbu, ka CSS na-enyere aka mee ka ọ dị ọcha, na otu ị ga-esi wuo onye na-ahụ maka ihe nhụcha anya maka ọrụ nke gị.
Ọbụlagodi na ị nwere ike ịdebanye aha ha niile, ị ga-enweta spam njikwa enweghị ike ịgụ ngwa ngwa. Dịka ọmụmaatụ: [0,0,1,0,0,0.5,0,...] [0,0,0,0,1,0,0,...] [0,0,1,0,0,0,0,0,...]
Ị nwere ike ịkọ bọtịnụ ọ pịa? Eleghị anya, mana ọ bụ naanị mgbe ị mebichara anya gị wee na-efunahụ ntinye ole na ole. Ya mere, mba, nbibi anaghị abịa ngwa ngwa ma a bịa n'ịgụ ntinye. Nsogbu nke atọ: Enweghị Ọdịdị Ọbụna ma ọ bụrụ na ị na-atụba ọnụ ngwa ngwa visualizer, ụdị nwere ike na-agba ọsọ ngwa ngwa. Steeti ndị ndabara, arụ ọrụ na nke nbipu nwere ike ịgbakọta, na-enweghị usoro doro anya, CSS gị na-aghọ nke na-akụkụ ma sie ike ịgbatị. CSS Cascade Layers nwere ike inye aka. Ha na-achịkọta ụdị n'ime "ọkwa" nke enyere iwu site na mkpa mbụ, yabụ ị kwụsịrị ịlụ ọgụ kpọmkwem na ịkọ nkọ, "Gịnị kpatara na ụdị nbipu m anaghị egosi?" Kama, ị na-edobe nchegbu dị iche iche:
Ihe ndabere: ọkọlọtọ onye njikwa, ọdịdị mbụ. Na-arụsi ọrụ ike: Isi ihe maka bọtịnụ ndị apịara na mkpanaka akwagharị. Mwepu: Mkpuchi maka ndị nrụpụta (dịka ọmụmaatụ, ọnụọgụgụ, ntuziaka, na ndị ọzọ).
Ọ bụrụ na anyị ga-akọwapụta oyi akwa na CSS dịka nke a si dị, anyị ga-enwe: /* kacha ala na kacha mkpa */ @layer base, arụ ọrụ, debug;
@layer base { /*...*/ }
@layer arụ ọrụ { /*...*/ }
@nyocha nke oyi akwa { /*...*/ }
N'ihi na oyi akwa ọ bụla na-ebu amụma amụma, ị maara mgbe niile iwu nke meriri. Amụma amụma ahụ na-eme ka nbipu ọ bụghị naanị mfe, mana enwere ike ijikwa ya. Anyị ekpuchila nsogbu ahụ (ihe na-adịghị ahụ anya, ntinye adịghị mma) na ụzọ (ihe nhụcha anya nke ejiri Cascade Layers rụọ). Ugbu a, anyị ga-aga site na usoro nzọụkwụ iji wuo onye nbibi. Echiche Debugger Ụzọ kachasị mfe iji mee ka ntinye ezoro ezo hụ bụ naanị ise ya na ihuenyo. Nke ahụ bụ ihe nbibi a na-eme. Bọtịnụ, ihe ndị na-akpalite, na joysticks niile na-enweta ọhụụ.
Pịa A: okirikiri na-enwu. Kpatụ osisi ahụ: okirikiri ahụ na-agbagharị gburugburu. Dịrị ihe na-akpalite ụzọ ọkara: Ogwe jupụtara na ọkara.
Ugbu a ị naghị ele 0s na 1s anya, mana n'ezie na-ekiri onye njikwa na-emeghachi omume ndụ. N'ezie, ozugbo ịmalitere ịkwakọba na steeti dị ka ndabara, pịa, debug ozi, ikekwe ọbụlagodi ọnọdụ ndekọ, CSS na-amalite ibuwanye na mgbagwoju anya. Nke ahụ bụ ebe akwa akwa akwa na-aba uru. Nke a bụ ọmụmaatụ ewepụrụ: @layer base { bọtịnụ { ndabere: #222; oke-radius: 50%; obosara: 40px; elu: 40px; } }
@layer arụ ọrụ { .bọtịnụ.pịa { ndabere: #0f0; /* akwụkwọ ndụ akwụkwọ ndụ na-egbuke egbuke */ } }
@nyocha nke oyi akwa { .bọtịnụ ::mgbe { ọdịnaya: attr (data-uru); nha font: 12px; agba: #fff; } }
Usoro usoro oyi akwa dị mkpa: ntọala → arụ ọrụ → debug.
isi na-adọta njikwa. na-arụ ọrụ aka pịa steeti. debug na-atụba na overlays.
Ịmewa ya dị ka nke a pụtara na ị naghị alụ ọgụ dị iche iche. Onye ọ bụla oyi akwa nwere ebe ya, na ị na-ama mgbe niile ihe na-emeri. Ewupụta Ya Ka anyị buru ụzọ nweta ihe na ihuenyo. Ọ dịghị mkpa ka ọ dị mma - ọ dị mkpa ịdị adị ka anyị nwee ihe anyị ga-arụ ọrụ.
Egwuregwu Cascade Debugger
Nke ahụ bụ n'ezie igbe. Ọ bụghị ihe na-akpali akpali, mana ọ na-enye anyị aka iji CSS na Javascript jide ma emechaa. Ọ dị mma, a na m eji akwa cascade ebe a n'ihi na ọ na-edobe ihe ahazi ozugbo ị gbakwunyere steeti ndị ọzọ. Nke a bụ ngafe siri ike:
/* =============================== NSỌ NKWUKWU KASCADE LAYER Usoro iwu: isi → arụ ọrụ → debug ===============================
/* Kọwaa usoro oyi akwa n'ihu */ @layer base, arụ ọrụ, debug;
/* Layer 1: Ụdị ntọala - ọdịdị ndabara */ @layer base { bọtịnụ { ndabere: # 333; oke-radius: 50%; obosara: 70px; elu: 70px; ngosi: mgbanwe; ziri ezi-ọdịnaya: etiti; mezie ihe: etiti; }
.kwụsịtụ { obosara: 20px; elu: 70px; ndabere: # 333; ngosi: mgbochi inline; } }
/* Layer 2: Steeti na-arụ ọrụ - na-eji bọtịnụ pịa */ @layer arụ ọrụ { .bọtịnụ. arụ ọrụ { ndabere: #0f0; /* Akwụkwọ ndụ akwụkwọ ndụ na-egbuke egbuke mgbe ịpịrị ya */ mgbanwe: ọnụ ọgụgụ (1.1); /* Na-eme ka bọtịnụ ahụ dịkwuo ntakịrị */ }
.kwụsịtụ. arụ ọrụ { ndabere: #0f0; mgbanwe: scaleY (1.1); /* Na-agbatị kwụ ọtọ mgbe ịpịrị ya */ } }
/* N'ikuku 3: ihichapụ ihe mkpuchi - ozi onye nrụpụta */ @nyocha nke oyi akwa { .bọtịnụ ::mgbe { ọdịnaya: attr (data-uru); /* Na-egosi uru ọnụọgụgụ */ nha font: 12px; agba: #fff; } }
Mma nke ụzọ a bụ na oyi akwa ọ bụla nwere nzube doro anya. Okpokoro ntọala enweghị ike ịkagbu ọrụ na-arụ ọrụ, yana onye na-arụsi ọrụ ike enweghị ike ịkwụsị nbibi, n'agbanyeghị agbanyeghị. Nke a na-ewepụ agha kpọmkwem CSS nke na-ebutekarị ngwa nbibi. Ugbu a ọ dị ka ụyọkọ ụfọdụ nọ ọdụ n'okirikiri gbara ọchịchịrị. N'eziokwu, ọ bụghị oke njọ.
Na-agbakwụnye Javascript Oge Javascript. Nke a bụ ebe onye njikwa na-eme ihe n'ezie. Anyị ga-ewu nke a site na nzọụkwụ. Kwụpụ 1: Tọọ njikwa steeti Nke mbụ, anyị chọrọ mgbanwe iji soro ọnọdụ onye nbipu: // ================================= // STATE MANAGEMENT // =================================
ka agba ọsọ = ụgha; // Na-egwu ma onye nbibi ọ nọ n'ọrụ ka rafId; // Na-echekwa arịrịọ AnimationFrame ID maka ịkagbu
Ụdị mgbanwe ndị a na-achịkwa loop animation nke na-aga n'ihu na-agụ ntinye gamepad. Kwụpụ 2: Jide ntụaka DOM Ọzọ, anyị ga-enweta ntụaka maka ihe HTML niile anyị ga-emelite: // ================================= // Ntụ aka DOM ELEMENT // =================================
const btnA = document.getElementById("btn-a"); const btnB = document.getElementById("btn-b"); const btnX = document.getElementById("btn-x"); const pause1 = document.getElementById("kwụsịtụ1"); const pause2 = document.getElementById("kwụsịtụ2"); ọnọdụ const = document.getElementById("ọnọdụ");
Ịchekwa ntụaka ndị a n'ihu na-arụ ọrụ nke ọma karịa ịjụ ajụjụ DOM ugboro ugboro. Kwụpụ 3: Tinye azụghachi ahụigodo Maka nnwale na-enweghị onye njikwa anụ ahụ, anyị ga-esetịpụ igodo ahụ na bọtịnụ: // ================================= // KEYBOARD FALLBACK (maka nnwale na-enweghị onye njikwa) // =================================
const keyMap = { "a": btnA, "b": btnB, "x": btnX, "p": [kwụsịtụ1, kwụsịtụ2] // 'p' igodo na-achịkwa ogwe nkwụsịtụ abụọ ahụ };
Nke a na-ahapụ anyị nwalee UI site na ịpị igodo na ahụigodo. Kwụpụ 4: Mepụta Loop Mmelite Main Nke a bụ ebe anwansi na-eme. Ọrụ a na-aga n'ihu ma na-agụ steeti gamepad: // ================================= // MAIN GAMEPAD Nwelite LOOP // =================================
mmelite ọrụGamepad() { // Nweta ihe niile ejikọrọ gamepad const gamepads = navigator.getGamepads (); ọ bụrụ na (! gamepads) laghachi;
// Jiri mpempe egwuregwu ejikọrọ nke mbụ const gp = paịlị egwuregwu[0];
ọ bụrụ (gp) { // Mmelite bọtịnụ na-ekwu site n'ịtụgharị klaasị "arụ ọrụ". btnA.classList.toggle("arụ ọrụ", gp.bọtịnụ[0].pịa); btnB.classList.toggle("arụ ọrụ", gp.bọtịnụ[1].pịa); btnX.classList.toggle("arụ ọrụ", gp.bọtịnụ[2].pịa);
// Jikwaa bọtịnụ kwụsịtụ (bọtịnụ index 9 na ọtụtụ njikwa) const pausePressed = gp.bọtịnụ[9].pịa; pause1.classList.toggle("na-arụ ọrụ", kwụsịtụrụ); pause2.classList.toggle("na-arụ ọrụ", kwụsịtụrụ);
// Mepụta ndepụta nke bọtịnụ ndị a na-enwe ugbu a maka ngosi ọkwa ka pịa = []; gp.buttons.for Onye ọ bụla ((btn, i) => { ọ bụrụ (btn.pịa)pịa.push("bọtịnụ" + i); }
// Melite ederede ọkwa ma ọ bụrụ na pịa bọtịnụ ọ bụla ọ bụrụ (pịa. Ogologo> 0) { status.textContent = "pịa:" + pressed.join(","); } }
// Gaa n'ihu na akaghị ma ọ bụrụ na nbibi na-agba ọsọ ọ bụrụ (na-agba ọsọ) { rafId = arịrịọAnimationFrame(updateGamepad); } }
Usoro classList.toggle() na-agbakwụnye ma ọ bụ wepụ klaasị nọ n'ọrụ dabere ma ọ bụ pịa bọtịnụ ahụ, nke na-akpalite ụdị oyi akwa CSS anyị. Kwụpụ 5: Jikwaa mmemme ahụigodo Ndị na-ege ihe omume a na-eme ka ahụigodo ọdịda ahụ rụọ ọrụ: // ================================= // NDỊ MMADỤ NDỊ MMADỤ KEYBOARD // =================================
document.addEventListener("keydown", (e) => { ọ bụrụ (keyMap[e.key]) { // Jikwaa otu ma ọ bụ ọtụtụ ihe ọ bụrụ (Array.isArray (keyMap[e.key]))) { keyMap[e.key]. maka Onye ọ bụla (el => el.classList.add ("na-arụ ọrụ")); } ọzọ { keyMap[e.key].classList.add("arụ ọrụ"); } status.textContent = "A pịara igodo:" + e.key.toUpperCase(); } }
document.addEventListener("keyup", (e) => { ọ bụrụ (keyMap[e.key]) { // Wepu steeti nọ n'ọrụ mgbe ewepụtara igodo ọ bụrụ (Array.isArray (keyMap[e.key]))) { keyMap[e.key]. maka Onye ọ bụla (el => el.classList.remove("ọrụ")); } ọzọ { igodoMap[e.key].classList.wepu("arụ ọrụ"); } status.textContent = "Igodo ewepụtara:" + e.key.toUpperCase(); } }
Nzọụkwụ 6: Tinye mmalite/Kwụsị njikwa N'ikpeazụ, anyị chọrọ ụzọ iji gbanye ma gbanyụọ ihe nbibi: // ================================= // Gbanyụọ/ Gbanyụọ ihe nrụpụta // =================================
document.getElementById("ntụgharị").addEventListener("pịa", () => { na-agba ọsọ = !na-agba ọsọ; // Tụgharịa ọnọdụ na-agba ọsọ
ọ bụrụ (na-agba ọsọ) { status.textContent = "Onye nbibi na-agba ọsọ..."; updateGamepad(); // Malite akaghị mmelite } ọzọ { status.textContent = "Onye nbibi anaghị arụ ọrụ"; kagbuoAnimationFrame(rafId); // Kwụsị akaghị } }
Ya mere, pịa bọtịnụ ma na-egbuke egbuke. Tụgharịa osisi ahụ wee gaa. Ọ bụ ya. Otu ihe ọzọ: raw ụkpụrụ. Mgbe ụfọdụ ị chọrọ ịhụ ọnụọgụgụ, ọ bụghị ọkụ.
N'oge a, ị ga-ahụ:
Ihe njikwa ihuenyo dị mfe, Bọtịnụ ndị na-emeghachi omume ka gị na ha na-emekọrịta ihe, yana Ngụpụta mwepu nke nhọrọ na-egosi akara bọtịnụ pịa.
Iji mee ka nke a dị ntakịrị, nke a bụ ngosi ngwa ngwa nke njikwa ihuenyo na-emeghachi ozugbo:
Ugbu a, ịpị Malite ndekọ ndekọ ihe niile ruo mgbe ị kụrụ Kwụsị ndekọ. 2. Mbupu data na CSV/JSON Ozugbo anyị nwere ndekọ, anyị ga-achọ ịchekwa ya.
Kwụpụ 1: Mepụta Enyemaka Nbudata Nke mbụ, anyị chọrọ ọrụ enyemaka nke na-ejikwa nbudata faịlụ na ihe nchọgharị: // ================================= // Wụta onye enyemaka // =================================
ọrụ nbudataFile (aha faịlụ, ọdịnaya, ụdị = "ederede / larịị") { // Mepụta blob site na ọdịnaya const blob = ọhụrụ Blob ([ọdịnaya], {ụdị}); const url = URL.createObjectURL(blob);
// Mepụta njikọ nbudata nwa oge wee pịa ya const a = document.createElement("a"); a.href = url; a.download = aha faịlụ; a.pịa();
// Hichaa URL ihe ahụ mgbe nbudatachara setTimeout(() => URL.revokeObjectURL(url), 100); }
Ọrụ a na-arụ ọrụ site na ịmepụta Blob (ihe ọnụọgụ abụọ) site na data gị, na-emepụta URL nwa oge maka ya, na ịpị njikọ nbudata na mmemme. Nchacha ahụ na-eme ka anyị ghara ịgbasa ebe nchekwa. Kwụpụ 2: Jikwaa Mbupụ JSON JSON zuru oke maka ichekwa nhazi data zuru oke:
// ================================= // Mbupu dị ka JSON // =================================
document.getElementById("export-json").addEventListener("pịa", () => { // Lelee ma ọ dị ihe ị ga-ebupụ ọ bụrụ (!frames.length) { console.warn ("Ọ dịghị ndekọ dị maka mbupụ."); laghachi; }
// Mepụta ụgwọ ọrụ na metadata na okpokolo agba akwụ ụgwọ const = { kereAt: ọhụrụ Date().toISOString(), okpokolo agba };
// Budata dị ka ahaziri JSON nbudata faịlụ ( "gamepad-log.json", JSON.stringify (ibu, efu, 2), "ngwa/json" ); }
Usoro JSON na-edobe ihe niile ahaziri ma dịkwa mfe ịkọwapụta, na-eme ka ọ dị mma maka mbugharị azụ na ngwaọrụ dev ma ọ bụ soro ndị otu egwuregwu kerịta. Kwụpụ 3: Jikwaa Mbupụ CSV Maka mbupụ CSV, anyị kwesịrị ịhazi data nhazi n'ime ahịrị na kọlụm:
//============================= // Mbupu dị ka CSV // =================================
document.getElementById("export-csv").addEventListener("pịa", () => { // Lelee ma ọ dị ihe ị ga-ebupụ ọ bụrụ (!frames.length) { console.warn ("Ọ dịghị ndekọ dị maka mbupụ."); laghachi; }
// Mepụta ahịrị nkụnye eji isi mee CSV (ogidi maka stampụ oge, bọtịnụ niile, anyụike niile) const nkụnye eji isi meeButtons = okpokolo agba[0].buttons.map((_, i) => btn${i}); const headerAxes = okpokolo agba[0].axes.map((_, i) => axis${i}); const nkụnye eji isi mee = ["t", ...headerButtons, ...headerAxes].jikọọ (",") + "\n";
// Mepụta ahịrị data CSV ahịrị const = frames.map(f => { const btnVals = f.buttons.map(b => b.uru); nloghachi [f.t, ...btnVals, ...f.axes] sonyere (","); }).jikọọ("\n");
// Budata dị ka CSV nbudata faịlụ ("gamepad-log.csv", nkụnye eji isi mee + ahịrị, "ederede/csv"); }
CSV mara mma maka nyocha data n'ihi na ọ na-emepe ozugbo na Excel ma ọ bụ Google Sheets, na-ahapụ gị ka ịmepụta eserese, nzacha data, ma ọ bụ ntụpọ ntụpọ n'anya. Ugbu a na bọtịnụ mbupụ dị, ị ga-ahụ nhọrọ ọhụrụ abụọ na panel: Mbupụ JSON na Mbupụ CSV. JSON dị mma ma ọ bụrụ na ịchọrọ ịtụba log log azụ n'ime ngwaọrụ dev gị ma ọ bụ kpochie ihe owuwu ahụ. CSV, n'aka nke ọzọ, na-emepe ozugbo na Excel ma ọ bụ Google Sheets ka ị nwee ike ịdepụta, nzacha, ma ọ bụ tụnyere ntinye. Ọnụọgụ na-esonụ na-egosi ka panel ahụ dị ka ya na njikwa ndị ọzọ.
3. Sistemụ onyonyo Mgbe ụfọdụ, ị chọghị ndekọ zuru ezu, naanị ngwa ngwa “nseta ihuenyo” nke ntinye steeti. Nke ahụ bụ ebe bọtịnụ Were Snapshot na-enyere aka.
Na Javascript:
// ================================= // Were snapshot // =================================
document.getElementById("snapshot").addEventListener("pịa", () => { // Nweta ihe niile ejikọrọ gamepad const pads = navigator.getGamepads (); const activePads = [];
// Gaa na weghara steeti egwuregwu pad ọ bụla ejikọrọ maka (const gp of pads) { ọ bụrụ na (!gp) aga n'ihu; // Mafee oghere efu
activePads.push({ id: gp.id, // Aha njikwa/ụdị timestamp: performance.now(), bọtịnụ: gp.buttons.map(b => ({{ pịa: b.apịaji, uru: b.uru })) axe: [...gp.axes] } }
// Lelee ma achọtara paịlị egwuregwu ọ bụla ọ bụrụ na (!activePads.length) { console.warn ("Ọ dịghị gamepad ejikọrọ maka snapshot."); njikere ("Ọ dịghị njikwa achọpụtara!"); laghachi; }
// Banye ma gwa onye ọrụ console.log ("Snapshot:", pads na-arụ ọrụ); njikere (esere foto! Ewetara ${activePads.length} njikwa(s).); }
Ihe onyonyo na-eme ka ọnọdụ onye njikwa gị kwụsịtụ n'otu oge n'otu oge. 4. Mgbakwunye Ntinye Mụọ Ugbu a maka ihe na-atọ ụtọ: ntinye mmụgharị. Nke a na-ewe ndekọ wee kpọọ ya azụ n'anya dị ka a ga-asị na ihe ọkpụkpọ phantom na-eji njikwa.
Javascript maka ịkpọgharịa: // ================================= // Mụọ ikwugharị // =================================
document.getElementById("replay").addEventListener("pịa", () => { // Gbaa mbọ hụ na anyị nwere ndekọ iji megharịa ọ bụrụ (!frames.length) { njikere ("Ọ dịghị ndekọ iji megharịa!"); laghachi; }
console.log ("Mmalite mmụọ ikwugharị...");
// Sochie oge maka ịkpọghachi synced ka startTime = arụmọrụ.ugbu a (); ka frameIndex = 0;
// Tinyegharịa loop animation nzọụkwụ ọrụ() { const now = arụmọrụ.now (); const gafere = ugbu a - startTime;
// Hazie okpokolo agba niile kwesịrị ime ugbu a
mgbe (frameIndex // Melite UI site na iji bọtịnụ edere edekọ
btnA.classList.toggle("arụ ọrụ", frame.bọtịnụ[0].pịa);
btnB.classList.toggle("arụ ọrụ", frame.bọtịnụ[1].pịa);
btnX.classList.toggle("arụ ọrụ", frame.bọtịnụ[2].pịa); // Mmelite ngosi ọkwa
ka pịa = [];
frame.buttons.for Onye ọ bụla ((btn, i) => {
ọ bụrụ na (btn.pressed) pịa.push("bọtịnụ" + i);
}
ọ bụrụ (pịa. Ogologo> 0) {
status.textContent = "Mmụọ:" + pressed.join(",");
} frameIndex++;
} // Gaa n'ihu akaghị ma ọ bụrụ na enwere okpokolo agba karịa
ọ bụrụ (frameIndex // Malite mmegharị ahụ
nzọụkwụ ();
} Iji mee ka nbibi dị ntakịrị karịa aka, etinyere m mkpọgharị mmụọ. Ozugbo ị dekọrọ otu nnọkọ, ị nwere ike kụọ megharịa wee lelee UI na-eme ya, ọ fọrọ nke nta ka ọ bụrụ onye na-egwu egwu na-agba ọsọ. Bọtịnụ Replay Ghost ọhụrụ na-egosi na panel maka nke a. Kụta ndekọ, were onye njikwa megharịa ntakịrị, kwụsị, wee megharịa ya. UI na-ekwughachi ihe niile ị mere, dị ka mmụọ na-eso ntinye gị.
Kedu ihe kpatara na-enye nsogbu na mgbakwunye ndị a? Ndekọ/bupu na-eme ka ọ dịrị ndị nyocha mfe igosi kpọmkwem ihe merenụ.
Snapshots na-ajụ oyi n'otu oge, ọ bara ezigbo uru mgbe ị na-achụ ahụhụ na-adịghị mma.
Mkpọgharị mmụọ dị mma maka nkuzi, nlele nnweta, ma ọ bụ naanị atụnyere nhazi njikwa n'akụkụ n'akụkụ. N'oge a, ọ bụghị naanị ihe ngosi dị mma, mana ihe ị nwere ike itinye n'ọrụ.
Ihe eji eme ihe n'ezie n'ụwa
Ugbu a, anyị nwere nke a debugger nke nwere ike ime ọtụtụ ihe. Ọ na-egosi ntinye dị ndụ, na-edekọ ndekọ, na-ebupụ ha, na ọbụna na-emegharị ihe. Mana ajụjụ bụ: onye na-eche n'ezie? Kedu onye nke a bara uru?
Ndị Mmepe Egwuregwu
Ndị njikwa bụ akụkụ nke ọrụ ahụ, mana debugging ha? Ọ na-abụkarị ihe mgbu. Were ya na ị na-anwale ngwakọta egwuregwu ọgụ, dị ka ↓ → + ọkpọ. Kama ikpe ekpere, ị pịa ya otu ụzọ ugboro abụọ, dekọọ ya otu ugboro, ma gụgharịa ya. Emechaala. Ma ọ bụ gị na onye otu gị na-agbanwe ndekọ JSON iji lelee ma koodu ọtụtụ ọkpụkpọ gị na-eme otu ihe ahụ na igwe ha. Nke ahụ buru ibu.
Ndị ọrụ nnweta
Nke a dị nso na obi m. Ọ bụghị onye ọ bụla na-eji njikwa "ọkọlọtọ" egwu egwu. Ndị na-ahụ maka mgbanwe na-atụpụ akara ngosi dị egwu mgbe ụfọdụ. Site na ngwá ọrụ a, ị nwere ike ịhụ kpọmkwem ihe na-eme. Ndị nkuzi, ndị nchọpụta, onye ọ bụla. Ha nwere ike ijide ndekọ, tulee ha, ma ọ bụ tinyegharịa ntinye n'akụkụ n'akụkụ. Na mberede, ihe a na-adịghị ahụ anya na-apụta ìhè.
Nnwale mmesi obi ike
Ndị na-anwale ule na-edekarị ndetu dị ka "M kụdara bọtịnụ ebe a ma ọ gbajiri." Ọ naghị enye aka nke ukwuu. Ugbu a? Ha nwere ike weghara ndị a na-ebi akwụkwọ, bupụ log ahụ ma zipu ya. Enweghị ntule.
Ndị nkuzi
Ọ bụrụ na ị na-eme nkuzi ma ọ bụ vidiyo YouTube, mmụọ replay bụ ọla edo. Ị nwere ike ịsị n'ụzọ nkịtị, "Nke a bụ ihe m mere onye njikwa," ebe UI na-egosi na ọ na-eme. Na-eme ka nkọwa doo anya karị.
Agafere Egwuregwu
Ma ee, nke a abụghị naanị egwuregwu. Ndị mmadụ ejirila ihe njikwa maka rọbọt, ọrụ nka, na oghere nnweta. Otu okwu oge ọ bụla: kedu ihe ihe nchọgharị na-ahụ n'ezie? Na nke a, ị gaghị eche.
Mmechi
Ntinye ndenye njikwa na-adị ka ịfe kpuru mgbe niile. N'adịghị ka DOM ma ọ bụ CSS, ọ nweghị onye nyocha arụnyere maka paịlị egwuregwu; ọ bụ naanị nọmba raw na njikwa, na-efunahụ ngwa ngwa na mkpọtụ.
Site na ahịrị narị ole na ole nke HTML, CSS na Javascript, anyị wuru ihe dị iche: Ihe nbibi anya nke na-eme ka a hụ ntinye na-adịghị ahụ anya.
Sistemu CSS nwere oyi akwa nke na-eme ka UI dị ọcha yana mebie ya.
Otu nkwalite (ndekọ, mbupụ, snapshots, mgbagharị mmụọ) na-ebuli ya elu site na ngosi gaa na ngwa nrụpụta. Ọrụ a na-egosi ogologo ị ga-aga site na ịgwakọta ike Weebụ Platform na obere imepụta ihe na CSS Cascade Layers.
Ngwá ọrụ m kọwara n'ozuzu ya bụ ihe mepere emepe. Ị nwere ike mechie GitHub repo wee nwaa ya n'onwe gị.
Mana nke kachasị mkpa, ị nwere ike ịme ya nke gị. Tinye akwa nke gị. Wulite mgbagha mgbagharị nke gị. Gwakọta ya na ụdị egwuregwu gị. Ma ọ bụ ọbụna jiri ya mee ihe n'ụzọ m na-echebeghị. Maka nkuzi, nnweta, ma ọ bụ nyocha data.
Na njedebe nke ụbọchị, nke a abụghị naanị maka debugging gamepad. Ọ bụ maka ime ka ìhè dị na ntinye zoro ezo, na inye ndị mmepe obi ike ịrụ ọrụ na ngwaike nke weebụ ka na-anabataghị nke ọma.
Yabụ, tinye onye njikwa gị, mepee onye ndezi gị, wee malite ịnwale. Ihe nchọgharị gị na CSS nwere ike ime n'ezie nwere ike iju gị anya.