Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[MINI PAMOKĖLĖ] Funkcijos SetProgressBarValue kūrimas by Matas F. a.k.a Fexurious


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3808 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

ŠI FUNKCIJA GALĖS JUDINTI BETKURĮ PROGRESSBAR(TEXTDRAW)!

 

 

Sveiki, ši pamoka skirta tiems, kas savomis rankomis gamina progressbar'us!

štai pamoka, kaip gaminti savomis rankomis progressbar'us: http://www.supergames.lt/topic/193005-horizontali%C5%B3-ir-vertikali%C5%B3-progressbar%C5%B3-k%C5%ABrimas-savomis-rankomis/

 

Taigi, pradėkime, išsivaizduokime kad jau susikūrę progressbar'o TextDraw ir ruošiamės jam priskirti value.

 

  • Turime progressber'o TextDraw - movingTD (jis bus globalus, t.y visiems žaidėjams vienodas)
  • Turime progressbar'o pradžios ir pabaigos koordinates, pradžios - 310.0, pabaigos - 400.0
  • Turime progressbar'o 100% value: 400 - 310 = 90, value = 90
  • Turime progressbar'o 1% value: 90 / 100 = 0.9

 

Taigi, visų pirma susikuriame funkciją, su kuria priskirsime progressbar'ui value (priskirsime progressbar'ui 50% value):

 

Jei progressbar'as horizontalus:

stock SetProgressBarValue(Text:progressid, Float:start, Float:finish, value) //šiuo atvėju: progressid = movingTD, start = 310, finish = 400, value = 50
{
    new
        Float:prc = (finish - start) / 100 //gauname progressbar 1% atimdami progressbar'o pabaigos koordinates iš pradžios koordinačių ir atsakymą padalindami iš 100, mūsų atvėju atsakymas: 0.9
    ;
    TextDrawTextSize(progressid, start + (value * prc), 0); //nustatome progressbar'ui value sudauginę nurodytą value su nurodytu procentu ir jų sandaugą sudėdami su pradžios(start) koordinatėmis
    if(start + (value * prc) > finish) TextDrawTextSize(progressid, finish, 0); //jei progressbar'as viršijo maximuma(finish), mūsų arvėju 400, progressbar'ui priskiriame 100%
    if(start + (value * prc) < start) TextDrawTextSize(progressid, start, 0); //jei progressbar'o value maziau nei minimum(start), mūsų atvėju 310, progressbar'ui priskiriame 0%
    TextDrawShowForAll(progressid);
}

Jei progressbar'as vertikalus:

stock SetProgressBarValue(Text:progressid, Float:start, Float:finish, value) //šiuo atvėju: progressid = movingTD, start = 310, finish = 400, value = 50
{
    new
        Float:prc = (finish - start) / 100 //gauname progressbar 1% atimdami progressbar'o pabaigos koordinates iš pradžios koordinačių ir atsakymą padalindami iš 100, mūsų atvėju atsakymas: 0.9
    ;
    TextDrawLetterSize(progressid, start + (value * prc), 0); //nustatome progressbar'ui value sudauginę nurodytą value su nurodytu procentu ir jų sandaugą sudėdami su pradžios(start) koordinatėmis
    if(start + (value * prc) > finish) TextDrawLetterSize(progressid, 0, finish); //jei progressbar'as viršijo maximuma(finish), mūsų arvėju 400, progressbar'ui priskiriame 100%
    if(start + (value * prc) < start) TextDrawLetterSize(progressid, 0, start); //jei progressbar'o value maziau nei minimum(start), mūsų atvėju 310, progressbar'ui priskiriame 0%
    TextDrawShowForAll(progressid);
}

Apskaičiavimų paaiškinimas:

start + (value * prc) - Sudauginome value (50) su prc (0.9 (progressbar'o 1%)), pridėjome prie progressbar'o pradžios koordinačių ir gavome 50%(pusę) progressbar'o
na, o apie prc parašyta viskas aiškiai stock'o kode

NAUDOJIMAS

nepamirškite, mūsų judantis (progressbar) TextDraw - movingTD

 

Jei norime nustatyti progressbar'ą per vidurį (50%):

SetProgressBarValue(movingTD, 310, 400, 50);

Jei norime nustatyti progressbar'ą daugiau nei per vidurį (75%):

SetProgressBarValue(movingTD, 310, 400, 75);

TAI BUVO MINI PAMOKĖLĖ KAIP SUSIKURTI FUNKCIJA, SU KURIA PRISKIRIAMA PROGRESSBAR VALUE, TIKIUOSI PADĖJAU

 

 

Autorius: Matas F. a.k.a Fexurious

Redaguota , nario Matas F.

audi_signature_by_dominico20-d4i38el.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • ,
(redaguota)

Tu su savo Textdraw... :)

Tema sakyčiau kiek siauroka, bet išaiškinta labai gerai. Kažkas ką pagaliau galima pavadinti pamoka. Na bet jei nori kad prisikabinčiau (i'm sure you do) tai yra funkcija TextDrawShowForAll.

Kažkaip iškrito iš galvos.. :D

Perrašyta.

Redaguota , nario Matas F.

audi_signature_by_dominico20-d4i38el.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • Parašė po 2 savaičių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3808 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...