Kiel Ŝarĝi kaj Konservi Ludajn Datumojn en la Krono SDK

Kiel Uzi SQLite por Butiko Ludaj Datumoj kaj Agordoj

Unu afero preskaŭ ĉiu apliko kaj ludo komune estas la bezono stoki kaj rekuperi datumojn. Eĉ la plej simpla ludo povas uzi SQLite por savi la version-numeron, kiu povas esti uzata por certigi kongruon kiam realigas ĝisdatigojn aŭ simplajn agordojn, kiel turni aŭ malŝalti la sonon de la ludo.

Se vi neniam multe laboris kun datumbazoj aŭ uzis la datumojn de datumbazo en la Krono SDK , ne zorgu. Fakte estas relative simpla procezo danke al la potenco de LUA kaj la SQLite datumbaza motoro uzita en la Krono SDK. Ĉi tiu lernilo trairas la procezon krei agordan tablon kaj ambaŭ stoki kaj retrovi informojn de ĝi. Kiel disvolvi iPad-programojn.

Ankaŭ memoru, ke ĉi tiu tekniko povas iri preter stokado de uzantoj bazitaj. Ekzemple, kio se vi havas ludon, kiu povas esti ludata uzante malsamajn ludajn modojn kiel ekzemple "rakonto" kaj "arcade" modo. Ĉi tiu agorda tablo povas esti uzita por stoki la aktualan modon. Aŭ iu ajn alia datumo, ke vi volas resti konstanta eĉ se la uzanto ĉesas ekster la ludo kaj relanĉos ĝin.

Paŝo Unu: Komencante la datumbazon kaj kreante la agordan tablon

La unua afero, kiun ni devas fari estas deklari la SQLite-bibliotekon kaj rakontu nian aplikon kie trovi la datumbazan dosieron. La plej bona loko por meti ĉi tiun kodon estas ĝuste ĉe la supro de la ĉefa.lua dosiero kune kun la alia postulas deklarojn. La datumbaza dosiero estos kreita, se oni ne trovos, kaj ni stokos ĝin en la dosierujo de Dokumentoj, por ke ni povu legi ĝin kaj skribi al ĝi.

postulas "sqlite3"
loka data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

Rimarku kiel la variablo "db" ne estas lokalizita. Ni faris tion por certigi, ke ni povas aliri la datumbazon laŭlonge de nia projekto. Vi ankaŭ povas krei specifan .lua dosieron por ĉiuj datumbazoj kaj konservi la datumbazon lokalizitan al tiu dosiero.

Poste ni bezonas krei la datumbazan tablon, kiu stokos niajn agordojn:

loka sql = "KREUJOJ TABLOJ SE NE EXISTO-agordojn (nomo, valoro);"
db: exec (sql);

Ĉi tiu deklaro kreas nian agordan tablon. Estas bone kuri ĝin ĉiufoje kiam la programo ŝarĝas ĉar se la tablo jam ekzistas, ĉi tiu aserto ne faros ion. Vi povas submeti ĉi tiun deklaron sub kie ni deklaris la datumbazon aŭ en la funkcio, kiu funkcias al via programo por kuri. La ĉefa postulo estas (1) ekzekuti tiujn deklarojn ĉiufoje kiam la programo estas lanĉita kaj (2) ekzekuti ĝin antaŭ ol ajn ajn alvokoj ŝarĝi aŭ konservi agordojn.

Paŝo Du: Ŝpari agordojn al la datumbazo

funkcio aroSetting (nomo, valoro)
sql = "Forigi la agordojn KIE nomo = '" .. nomo .. "'";
db: exec (sql)

sql = "INSERT INTO (nomo, valoro) VALUES ('" ..name .. "'," .. value .. ");";
db: exec (sql)
fino

funkcio setSettingString (nomo, valoro)
aroSetting (nomo, "'" .. valoro .. "'");
fino

La funkcio de SetSetting forigas ajnajn antaŭajn agordojn savitajn al la tablo kaj enmetas nian novan valoron. Ĝi funkcios kun ambaŭ entjeroj kaj ŝnuroj, sed ŝpari ĉenon postulas unuajn citaĵojn ĉirkaŭ la valoro, do ni uzis la funkcion setSettingString por fari tiun kroman laboron por ni.

Paŝo Tri: Ŝarĝante agordojn de la datumbazo

funkcio getSetting (nomo)

loka sql = "Elektu * De la agordo KIE nomo = '" .. nomo .. "'";
loka valoro = -1;

por vico en db: nrows (sql) do
valoro = row.value;
fino

Rezerva valoro;
fino

funkcio getSettingString (nomo)
loka sql = "Elektu * De la agordo KIE nomo = '" .. nomo .. "'";
loka valoro = '';

por vico en db: nrows (sql) do
valoro = row.value;
fino

Rezerva valoro;
fino

Kiel supre, ni rompis la funkciojn en du versiojn: unu por entjeroj kaj unu por kordoj. La ĉefa kialo, kiun ni faris ĉi, estas tiel ke ni povas komenceciigi ilin per specifaj valoroj, se neniu opcio ekzistas en la datumbazo. La funkcio getSetting revenos al -1, kiu sciigos al ni, ke la opcio ne estas konservita. La getSettingString revenos malplenan ĉenon.

La funkcio getSettingString estas tute laŭvola. La sola diferenco inter ĝi kaj la normala getSetting funkcio estas kio estas redonita, se nenio troviĝas en la datumbazo.

Paŝo Kvar: Uzante nian agordan tablon

Nun, ke ni havas malfacilan laboron, ni facile povas ŝarĝi kaj konservi agordojn al loka datumbazo. Ekzemple, ni povus mutavi la sonon per la sekva deklaro:

setSetting ('sono', falsa);

Kaj ni povus uzi la agordon en tutmonda funkcio por ludi sonojn:

Funkcio playSound (SoundID)
se (getSetting ('sono')) tiam
audio.play (soundID)
fino
fino

Por turni la sonon reen, ni simple difinas la sonorilon al vera:

setSetting ('sono', vera);

La bela parto pri ĉi tiuj funkcioj estas, ke vi povas ŝpari ŝnurojn aŭ entjerojn al la agorda tablo kaj rekuperi ilin facile. Ĉi tio permesas al vi fari ion ajn de ŝpari nomon de ludanto por konservi ilian altan poentaron.

Krono SDK: Kiel Tavi Grafikojn, Movi Grafikojn kaj Alporti Grafikojn Antaŭen