ווי צו מאַסע און ראַטעווען שפּיל דאַטע אין די קאָראָנאַ סדק

ווי צו נוצן סקליטע צו קראָם שפּיל דאַטע און סעטטינגס

איין זאַך כּמעט יעדער אַפּ און שפּיל איז אין פּראָסט איז די נויט צו קראָם און צוריקקריגן דאַטן. אפילו די מערסט פּשוט שפּיל קענען נוצן סקליטע צו ראַטעווען די אַפּ ווערסיע נומער, וואָס קענען זיין געוויינט צו ענשור קאַמפּאַטאַבילאַטי ווען פּערפאָרמינג Upgrades, אָדער פּשוט סעטטינגס אַזאַ ווי טורנינג די שפּיל ס געזונט אויף אָדער אַוועק.

אויב איר האָבן קיינמאָל געטאן פיל אַרבעט מיט דאַטאַבייסיז אָדער געניצט די דייטאַבייס פֿעיִקייטן אין די קאָראָנאַ סדק , טאָן ניט זאָרג. עס פאקטיש אַ לעפיערעך סטרייטפאָרווערד פּראָצעס דאַנק צו די מאַכט פון לואַ און די סקליטע דייטאַבייס מאָטאָר יוטאַלייזד אין די קאָראָנאַ סדק. דעם טוטאָריאַל וועט גיין דורך דעם פּראָצעס פון שאפן אַ סעטטינגס טיש און ביידע סטאָרינג און ריטריווינג אינפֿאָרמאַציע פון ​​עס. ווי צו אַנטוויקלען יפּאַד אַפּפּס.

אויך האַלטן אין מיינונג אַז דעם טעכניק קענען גיין אויסער סטאָרינג באַניצער-באזירט סעטטינגס. פֿאַר בייַשפּיל, וואָס אויב איר האָבן אַ שפּיל וואָס קענען זיין געשפילט מיט פאַרשידענע שפּיל מאָדעס אַזאַ ווי "געשיכטע" מאָדע און "אַרקייד" מאָדע. דעם סעטטינגס טיש קענען זיין געניצט צו קראָם די קראַנט מאָדע. אָדער קיין אנדערע שטיק פון דאַטן אַז איר ווילן צו בלייַבן פּערסיסטענט אַפֿילו אויב דער באַניצער קוויטל אויס פון די שפּיל און רילאַאַנטשיז עס.

שריט איינער: יניטיאַליזינג די דאַטאַבאַסע און שאַפֿן די סעטטינגס טיש

דער ערשטער זאַך וואָס מיר דאַרפֿן צו טאָן איז דערקלערן די סקליטע ביבליאָטעק און דערציילן אונדזער אַפּ וואָס געפינען די דייטאַבייס טעקע. דער בעסטער אָרט צו שטעלן דאָס קאָד איז רעכט בייַ די שפּיץ פון די main.lua טעקע צוזאמען מיט די אנדערע דאַרפן סטייטמאַנץ. די דייטאַבייס טעקע וועט ווערן באשאפן אויב קיינער איז ניט געפונען, און מיר וועלן זיין קראָם אין די דאקומענטן טעקע אַזוי מיר קענען לייענען פון עס און שרייַבן צו עס.

דאַרפן "סקליטע 3"
היגע דאַטאַפּאַטה = סיסטעמ.פּאַטהפאָרפילע ("דאַטאַ.דב", סיסטעמ.דאָקומענדערסירעקטאָרי);
db = sqlite3.open (דאַטאַ_פּאַטה);

אָנווייַזן ווי די "דב" בייַטעוודיק איז ניט לאָוקאַלייזד. מיר האָבן געטאן דאָס צו מאַכן זיכער מיר קענען צוטריט די דאַטאַבאַסע איבער אונדזער פּרויעקט. איר קענען אויך שאַפֿן אַ ספּעציפיש. לואַ טעקע פֿאַר אַלע דייטאַבייס פאַנגקשאַנז און האַלטן די דייטאַבייס לאָוקאַלייזד צו דעם טעקע.

ווייַטער, מיר דאַרפֿן צו מאַכן די דאַטאַבאַסע טיש וואָס וועט קראָם אונדזער סעטטינגס:

local sql = "CREATE TABLE IF NOT EXISTS סעטטינגס (נאָמען, ווערט);"
db: Execute (sql);

דעם ויסזאָגונג קריייץ אונדזער סעטטינגס טיש. עס ס אָוקיי צו לויפן עס יעדער מאָל די אַפּ לאָודז ווייַל אויב די טיש שוין יגזיסץ, דעם סטאַטעמענט וועט נישט טאָן עפּעס. איר קענען שטעלן די ויסזאָגונג רעכט אונטער ווו מיר'ווע דערקלערט די דאַטאַבאַסע אָדער אין די פֿונקציע וואָס שטעלט אַרויף דיין אַפּ צו לויפן. די הויפּט פאָדערונג איז (1) צו ויספירן די סטייטמאַנץ יעדער מאָל די אַפּ איז לאָנטשט און (2) מאַכן עס איידער קיין רופט צו מאַסע אָדער ראַטעווען סעטטינגס.

שריט צוויי: שפּאָרן סעטטינגס צו די דאַטאַבאַסע

פונקטיאָן סעטסעטינג (נאָמען, ווערט)
SQL = "DELETE FROM SETTINGS WHERE name = '" .. name .. "'";
דב: עקסאַק (סקל)

sql = "ינסערט אין סעטטינגס (נאָמען, ווערט) וואַלועס ('" ..נאַמע .. "'," .. ווערט .. ");";
דב: עקסאַק (סקל)
סוף

function setSettingString (נאָמען, ווערט)
סעטסעטינג (נאָמען, "'" .. ווערט .. "'");
סוף

די סעטסעטטינג פונקציאָנירן דיליץ קיין פרייַערדיק סעטטינגס געראטעוועט צו די טיש און ינסערץ אונדזער נייַ ווערט. עס וועט אַרבעטן מיט ביידע ינטאַדזשערז און סטרינגס, אָבער שפּאָרן אַ שטריקל ריקווייערז איין קוואָטעס אַרום דעם ווערט, אַזוי מיר האָבן געניצט די סעטסעטינגסטרינג פאַנגקשאַנז צו טאָן אַז עקסטרע ביסל פון אַרבעט פֿאַר אונדז.

טרעטן דריי: לאָודינג סעטטינגס פון די דאַטאַבאַסע

function getSetting (נאָמען)

local sql = "SELECT * FROM SETTINGS WHERE name = '" .. name .. "'";
היגע ווערט = -1;

פֿאַר רודערן אין דב: נאָולז (סקל) טאָן
value = row.value;
סוף

return value;
סוף

function getSettingString (נאָמען)
local sql = "SELECT * FROM SETTINGS WHERE name = '" .. name .. "'";
היגע ווערט = '';

פֿאַר רודערן אין דב: נאָולז (סקל) טאָן
value = row.value;
סוף

return value;
סוף

ווי אויבן, מיר האָבן צעבראכן די פאַנגקשאַנז אין צוויי ווערסיעס: איינער פֿאַר ינטאַדזשערז און איין פֿאַר סטרינגס. דער הויפּט סיבה מיר ווע געטאן דעם איז אַזוי אַז מיר קענען ינישאַלייז זיי מיט ספּעציפיש וואַלועס אויב קיין סעטטינגס יגזיסץ אין די דאַטאַבאַסע. די געטסעטטינג פונקציאָנירן וועט צוריקקומען אַ -1, וואָס וועט לאָזן אונדז וויסן אַז די באַשטעטיקן איז נישט געראטעוועט. די getSettingString וועט צוריקקומען אַ ליידיק שטריקל.

די געטסעטינגסטרינג פונקציע איז גאָר אַפּשאַנאַל. דער בלויז חילוק צווישן עס און דער נאָרמאַל געטסעטטינג פֿונקציע איז וואָס איז אומגעקערט אויב גאָרנישט איז געפונען אין די דאַטאַבאַסע.

שריט פיר: ניצן אונדזער סעטטינגס טיש

איצט אַז מיר האָבן די שווער אַרבעטן געטאן, מיר קענען לייכט מאַסע און ראַטעווען סעטטינגס צו אַ לאָוקאַלייזד דאַטאַבאַסע. פֿאַר בייַשפּיל, מיר קען פאַרשטיין די געזונט מיט די פאלגענדע דערקלערונג:

סעטסעטינג ('געזונט', פאַלש);

און מיר קען נוצן די באַשטעטיקן אין אַ גלאבאלע פונקציע פֿאַר פּלייינג סאָונדס:

פונקטיאָן פּלייַסאָונד (סאָונדיד)
אויב (getSetting ('sound')) דעמאָלט
audio.play (soundID)
סוף
סוף

צו ווענדן די געזונט צוריק, מיר פשוט שטעלן די געזונט באַשטעטיקן צו אמת:

setSetting ('sound', true);

דער פייַן טייל וועגן די פאַנגקשאַנז איר קענען ראַטעווען סטרינגס אָדער ינטאַדזשערז צו די סעטטינגס טיש און באַקומען זיי לייכט. דעם אַלאַוז איר צו טאָן עפּעס פון שפּאָרן די נאָמען פון אַ שפּילער צו ראַטעווען זייער הויך כעזשבן.

קאָראָנאַ סדק: How to Layer Graphics, Move Graphics and Bring Graphics to Front