Креирање апликације за Убунту Тоуцх [КМЛ] - [3. део]

Креирање апликације за Убунту Тоуцх

Трећи део ове серије (први дио, други део) где правимо апликацију за Убунту Тоуцх или за исто убунту десктоп. Додаћу део који сам пропустио у претходном посту, а то је да иако смо повећали променљиве кварова, погодака и поена, они нису били приказани на екрану, то јест зато што нисмо променили својство текста Лабелс:

                Ознака {ид: текст грешака: "Фаилурес:" + нфаултс цолор: "ред"} Ознака {ид: хитс тект: "хитс:" + борн} Лабел {ид: поинтс тект: "Поинтс:" + нпоинтс фонтСизе: "медиум "}

Наставак логике игре

Време

Па, као што већ знамо, прогрессБар показује време које имамо за одговор на питање. Да бисмо управљали временом којим ћемо користити тајмер, тајмер је елемент који се понавља у интервалу од к милисекунди, у овом случају ћемо му рећи сваки интервал да повећа напредак ПрогрессБар-а; Али пре него што погледам да ли је дошао до краја времена или не, ако дође до краја, морамо да одузмемо живот.

Можете видети ред кода који још увек нисмо применили (ПопупУтилс.опен (дијалог)), овај ред отвара дијалог о завршној игри у случају да немамо више живота (елиминисане су 3 грешке), касније у овом посту видећемо како се води овај дијалог.

Код тајмера (можемо га ставити испод траке прогреса):

       ПрогрессБар {ид: тиме анцхорс.хоризонталЦентер: парент.хоризонталЦентер минимумВалуе: 0 макимумВалуе: 300} Тимер {ид: симплетимер ц: 100 репеат: труе руннинг: труе онТриггеред: {иф (тиме.валуе <тиме.макимумВалуе) тиме.валуе + = 1.0 елсе {нфаултс = нфаултс + 1 иф (нфаултс <3) {нум = нум + 1 Логиц.нектКуестион (нум) тиме.валуе = тиме.минимумВалуе} елсе {симплетимер.стоп () ПопупУтилс.опен (диалог)}} }}

Као што видимо, у онТриггеред смо ставили код који ће повећати траку напретка додајући 1 јединицу на сваких 100 (интервал) милли-секунди. Имајте на уму да смо ПрогрессБар-у додали два атрибута, минимумВалуе и макимумВалуе, што је, као што видите, максимална вредност и минимална вредност.

Да бисте покренули и зауставили тајмер:

симплетимер.старт () симплетимер.стоп ()

Опције (50%, замрзавање и даље)

Прво креирајмо три променљиве које контролишу да се опције могу користити само једном:

    својство инт проценат: 0 својство инт са: 0 својство инт следеће: 0

100%

Дугме {ид: б50 текст: "50%" онЦлицкед: {иф (перцент == 0) {вар исправно = аДоцумент.цонтентс.куестионс [нум] .цоррецта иф (исправно == 1) {респ2.енаблед = фалсе респ3. енаблед = фалсе} елсе иф (исправно == 2) {респ1.енаблед = фалсе респ4.енаблед = фалсе} елсе иф (правилно == 3) {респ1.енаблед = фалсе респ4.енаблед = фалсе} елсе {респ2.енаблед = нетачно респ1.енаблед = фалсе} посто = 1}}

Са енаблед = фалсе оно што радимо је да дугме поставимо тако да се не може притиснути, на такав начин да добијемо тачан одговор са аДоцумент.цонтентс.куестионс [нум]. Тачно и одавде у зависности од тога које је тачно «ми елиминисати »Два дугмета која то нису.

Фреезе

                Дугме {ид: бЦон текст: "Замрзни" онЦлицкед: {иф (витх == 0) симплетимер.стоп () витх = 1}}

Ово је једно од једноставних, само морамо зауставити тајмер помоћу симплетимер.стоп (), да, морамо га поново укључити (и поставити прогрессБар на 0) када прођемо кроз питање.

Следећа

                 Дугме {ид: бНект тект: "Нект" онЦлицкед: {иф (нект == 0) {нум = нум + 1 Логица.нектКуестион (нум) нект = 1}}}

За прослеђивање питања користимо функцију коју смо већ креирали (нектКуестион).

Дијалози

За завршетак игре користићемо дијалог, било зато што смо победили (више нема питања) или зато што смо изгубили (направили смо 3 грешке), да бисмо користили дијалоге морамо увести модул:

увоз Убунту.Цомпонентс.Попупс 0.1

Направићемо дијалог који ће нам рећи да смо изгубили:

        Компонента {ид: дијалог Дијалог {ид: наслов дијалога: "Игра је готова!" тект: "Изгубили сте све животе :(" Дугме {текст: "Излаз" онЦлицкед: Кт.куит ()} Дугме {текст: "Почни од почетка" боја: УбунтуЦолорс.оранге онЦлицкед: {нум = 0; Логица.нектКуестион (нум ) нпоинтс = 0 рођених = 0 ПопупУтилс.цлосе (диалог)}}}}

Имамо два тастера, један за затварање апликације (Кт.куит ()) и други за почетак игре. Иницијализујемо променљиве на 0 и затварамо дијалог.

Да бисте отворили дијалог:

ПопупУтилс.опен (дијалог)

Да бисте је затворили:

ПопупУтилс.цлосе (дијалог)

Погледајмо дијалог на крају игре:

Убунту Тоуцх

Потпуно исти дијалог можемо створити променом идентификатора и текста у коме пише да смо победили.

Дизајнирање агрегата питања

Када га дизајнирамо ГТК, креирамо дијалог, али овај пут ћемо то учинити у Табулатору, ионако ће имати исту структуру:

Као што видимо, користићемо ознаку, ТектАреа за писање питања, 4 ТектФиелд и 4 Свитцх; коначно, дугме за додавање питања. Погледајмо само код:

импорт КтКуицк 2.0 импорт Убунту.Цомпонентс 0.1 Таб {титле: и18н.тр ("+ Питања") Страница {ид: пагеАдд Цолумн {анцхорс.топ: пагеАдд.топ анцхорс.топМаргин: 50 размак: 15 видтх: парент.видтх хеигхт: парент.хеигхт - 50 Ознака {ид: текст питања: "Додајте питање у базу података:" анцхорс.хоризонталЦентер: парент.хоризонталЦентер фонтСизе: "ларге"} ТектАреа {видтх: парент.видтх - 20 хеигхт: унитс.гу (12 ) цонтентВидтх: унитс.гу (30) цонтентХеигхт: унитс.гу (60) сидра.хоризонталЦентер: парент.хоризонталЦентер} Ред {размак: 15 сидра.хоризонталЦентер: парент.хоризонталЦентер ТектФиелд {плацехолдерТект: "Респонсе 1" видтх: 300} Пребаци {потврђено: нетачно}} Ред {размак: 15 сидра.хоризонталЦентер: надређени.хоризонталЦентер ТектФиелд {плацехолдерТект: „Одговор 2“ ширина: 300} Пребаци {потврђен: нетачно}} Ред {размак: 15 сидра.хоризонтални центар: надређени. хоризонталЦентер ТектФиелд {плацехолдерТект: "Респонсе 3" видтх: 300} Свитцх {селецтед: фалсе}} Ред {спацинг: 15 анцхорс.хоризонталЦентер: парент.хоризонталЦентер ТектФиелд {плацехолдерТект: "Респонсе 4" видтх: 300} Свитцх {проверено: нетачно}} Дугме {текст: "Додај +" сидра.хоризонталЦентер: надређени.хоризонталЦентер ширина: надређена ширина - 20}}}}
Ако постоји било каква сумња у код, већ знате коментар

Да видимо како то изгледа:

Снимка из 2014-07-24 16:54:37

Ако сада тестирамо прекидаче, видећемо да их све можемо означити као тачно питање, а природно може бити само једно, па ћемо урадити следеће: моћи ћемо да пружимо идентификатор сваком прекидачу (такође и текстуална поља, јер ћемо морати да прибавимо садржај да бисмо га сачували у бази података) према вашем одговору, а када га кликнемо, све остале ћемо ставити у режим провере = нетачно:

             Ред {размак: 15 сидра.хоризонталЦентер: парент.хоризонталЦентер ТектФиелд {ид: рес1 плацехолдерТект: "Респонсе 1" видтх: 300} Свитцх {ид: св1 цхецк: фалсе онЦлицкед: {иф (св1. Цхецк == труе) {св2. проверено = нетачно св3. проверено = нетачно св4. проверено = нетачно}}}}

Ако сада покушамо, видећемо како можемо да означимо само једног.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   вр_рв дијо

    Врло добри и добро објашњени чланци.
    узгред, да ли препоручујете неке књиге, ИоуТубе канале или блогове на шпанском језику да бисте научили како се развија КМЛ за Убунту.

    1.    лолбимбо дијо

      Па, на шпанском језику сигурно постоје неки водичи на ИоуТубеу или необичном блогу, али истина је да има мало материјала.

      Видим да се повезујете преко нокије ако је симбиан последњег, такође можете да креирате апликације са КМЛ-ом, у ствари је то како сам научио, ево веб странице за развој нокиа: http://developer.nokia.com/ (постоје водичи, комплетни пројекти ...)

  2.   нестор дијо

    Одлична пост серија, хвала на уносу.

  3.   Марти дијо

    Хвала на лекцији,
    Али не разумем како се питања и одговори додају у базу података.
    Помоћу дугмета за додавање.
    Хвала на свему.