Yuav ua li cas Load thiab Txuag Qus Cov Ntaub Ntawv hauv lub Corona SDK

Yuav ua li cas Siv SQLite rau Khaws Cov Ntaub Ntawv thiab Cov Chaw

Ib yam khoom yuav luag txhua app thiab kev ua si muaj nyob rau hauv ntau yog qhov yuav tsum tau khaws thiab muab cov ntaub ntawv. Txawm tias qhov kev ua si yooj yim tshaj plaws yuav siv tau los ntawm SQLite kom txuag tau tus naj npawb ntawm app, uas yuav siv tau los xyuas kom muaj kev sib haum xeeb thaum ua tau hloov dua tshiab, lossis chaw yooj yim xws li tig qhov kev ua si lub suab los yog tawm.

Yog tias koj tsis tau ua ntau txoj haujlwm nrog databases los sis siv cov ntaub ntawv hauv lub Corona SDK , tsis txhob txhawj. Nws yog ib txoj kev ncaj qha ua tsaug rau lub hwj chim ntawm LUA thiab SQLite database cav siv hauv lub Corona SDK. Txoj kev qhia no yuav taug kev los ntawm cov txheej txheem ntawm kev tsim ib lub rooj xaiv chaw thiab khaws cia thiab rov qab cov ntaub ntawv ntawm nws. Yuav ua li cas tsim iPad apps.

Kuj tseem nco ntsoov tias cov txheej txheem no muaj peev xwm mus tshaj qhov chaw cia neeg siv. Piv txwv, yog tias koj muaj kev ua si uas yuav raug ntaus ua si siv ntau hom qus xws li "dab neeg" hom thiab "arcade" hom. Cov khoom siv no yuav siv tau los khaws cov qauv tam sim no. Los yog lwm yam ntaub ntawv uas koj xav kom nyob twj ywm tsis tseem tias txawm tias tus neeg siv tawm ntawm qhov kev ua si thiab rov qab ua dua.

Ib kauj ruam: Initializing cov database thiab tsim cov rooj sib tham

Thawj qhov uas peb yuav tsum tau ua yog tshaj tawm rau hauv SQLite lub tsev qiv ntawv thiab qhia peb qhov chaw uas yuav nrhiav tau cov ntaub ntawv database. Qhov chaw zoo tshaj plaws los muab txoj cai no yog nyob rau sab saum toj ntawm cov ntaub ntawv main.lua nrog rau lwm cov nqe lus. Cov ntaub ntawv database yuav raug tsim yog tias tsis pom muaj, thiab peb yuav muab nws khaws cia rau hauv cov ntaub ntawv ceev kom peb nyeem tau los ntawm nws thiab sau ntawv rau nws.

yuav tsum tau "sqlite3"
hauv zos data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

Daim ntawv qhia tias qhov txawv ntawm "db" tsis yog nyob qhov twg. Peb tau ua qhov no kom paub tseeb tias peb tuaj yeem nkag mus rau hauv cov ntaub ntawv hauv peb qhov project. Koj kuj tseem tsim tau ib qho kev ua ntaub ntawv .lua rau tag nrho cov zauv database thiab khaws cov ntaub ntawv cia rau qhov ntawd.

Tom ntej no, peb yuav tsum tsim cov ntaub ntawv database uas yuav khaws cia peb cov chaw:

hauv zos sql = "CREATE COV LUS HAIS TXOG TSIS TAU TXAIS (lub npe, tus nqi);"
db: exec (sql);

Tsab ntawv lus no tsim peb cov rooj sib tham. Nws zoo los khiav nws txhua zaus qhov app vim yog qhov teeb meem twb tshwm sim, tsab ntawv no yuav tsis ua dab tsi. Koj tuaj yeem muab cov lus no tso cai nyob rau hauv qhov chaw uas peb tau tshaj tawm hais tias cov ntaub ntawv los yog hauv txoj haujlwm uas teev koj li khiav mus los. Lub ntsiab lus tseem ceeb yog (1) rau txim rau cov lus qhia txhua zaus thaum pib qhov app thiab (2) ua rau nws ua ntej hu xov tooj los yog txuag chaw.

Theem Ob: Txuag qhov chaw rau database

function setSetting (npe, tus nqi)
sql = "RHO LOS NTAWM qhov chaw nyob qhov twg lub npe = '" .. lub npe .. \ "'";
db: exec (sql)

sql = "INSERT INTO settings (npe, tus nqi) VALUES (" "..name .." "," .. value .. ");";
db: exec (sql)
kawg

muaj nuj nqi setSettingString (npe, tus nqi)
setSetting (lub npe, \ "\" .. tus nqi .. \ "'\");
kawg

Lub setSetting muaj nuj nqi deletes tej teeb meem yav dhau los uas tau txais kev cawm dim rau lub rooj thiab peb cov nqi tshiab. Nws yuav ua hauj lwm nrog cov zauv thiab cov hlua, tiam sis txuag ib txoj hlua xav tau ib nqe quotes ib ncig ntawm tus nqi, yog li peb tau siv cov setSettingString muaj nuj nqi ua qhov kev ua haujlwm me ntsis ntxiv rau peb.

Kauj Ruam Peb: Chaw thau khoom los ntawm tus database

function getSetting (npe)

hauv zos sql = "Xaiv * LOS qhov chaw nyob qhov twg lub npe = '" .. lub npe .. \ "'";
hauv zos nqi = -1;

rau kab hauv db: nrows (sql) ua
nqi = row.value;
kawg

rov qab tus nqi;
kawg

function getSettingString (npe)
hauv zos sql = "Xaiv * LOS qhov chaw nyob qhov twg lub npe = '" .. lub npe .. \ "'";
lub zos tus nqi = '';

rau kab hauv db: nrows (sql) ua
nqi = row.value;
kawg

rov qab tus nqi;
kawg

Raws li saum toj no, peb twb tawg lub luag haujlwm rau ob lub versions: ib qho rau cov zauv thiab ib qho rau cov hlua. Lub ntsiab yog vim li cas peb tau ua qhov no yog li ntawd peb tuaj yeem pib kho lawv nrog qhov tshwj xeeb yog tias tsis muaj qhov teeb meem tshwm sim nyob rau hauv lub database. Qhov kev ua lag luam ntawm qhov kev ua haujlwm yuav rov qab rau ib tug -1, uas yuav qhia rau peb paub tias qhov chaw tsis tau txais kev cawmdim. Lub getSettingString yuav xa ib txoj hlua dawb paug.

Cov kev ua haujlwm getSettingString yog ua kom tiav. Tsuas yog qhov txawv ntawm nws thiab qhov kev ua kom tau txais qhov qub yog dab tsi rov qab yog tias tsis muaj dab tsi nyob rau hauv database.

Kauj ruam plaub: Siv peb lub rooj nqis lus

Tam sim no hais tias peb muaj txoj haujlwm ua tiav, peb muaj peev xwm nqa tau yooj yim thiab txuag tau qhov chaw rau ib qho chaw nyob hauv zos. Piv txwv, peb txawj hais lub suab nrog cov lus nram no:

setSetting ('suab', cuav);

Thiab peb yuav siv qhov chaw nyob rau hauv lub ntiaj teb muaj nuj nqi rau kev ua si lub suab:

ua si playSound (soundID)
yog (getSetting ('suab')) ces
audio.play (soundID)
kawg
kawg

Tig lub suab rov qab, peb tsuas npaj cov suab kaw kom tseeb:

setSetting ('suab', tseeb);

Qhov zoo tshaj plaws txog cov hauj lwm no yog koj txuag tau cov hlua los yog cov zauv rau lub rooj nqis thiab khaws lawv yooj yim. Qhov no tso cai rau koj ua txhua yam ntawm txuag cov neeg uas ua ntawv lub npe kom txuag lawv siab tshaj plaws.

Corona SDK: Yuav ua licas Layer Graphics, Txav mus Graphics thiab Nqa cov Graphics rau pem hauv ntej