MountOne 변경 안함으로 인한 버그픽스와 문서 수정

This commit is contained in:
Qwreey 2023-02-21 21:48:17 +09:00
parent 04916ebe21
commit 5c646f7d73
37 changed files with 1533 additions and 335 deletions

View file

@ -0,0 +1,786 @@
<!doctype html>
<html lang="ko" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Description for Quad. (Korean)">
<meta name="author" content="Qwreey and more">
<link rel="canonical" href="https://quad.qwreey.kr/kr/include/locales/">
<link rel="icon" href="../../assets/LUAICON_TP.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.13">
<title>Locales - Quad 한국어 문서</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.ffa9267a.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.a0c5b2b5.min.css">
<link rel="stylesheet" href="../../assets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="custom" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Quad 한국어 문서" class="md-header__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Quad 한국어 문서
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Locales
</span>
</div>
</div>
</div>
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="언어설정">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="/kr/" hreflang="ko" class="md-select__link">
한국어
</a>
</li>
<li class="md-select__item">
<a href="/en/" hreflang="en" class="md-select__link">
English
</a>
</li>
</ul>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="검색" placeholder="검색" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="검색">
<button type="reset" class="md-search__icon md-icon" title="지우기" aria-label="지우기" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
검색 초기화
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/qwreey75/quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorial/" class="md-tabs__link">
튜토리얼
</a>
</li>
<li class="md-tabs__item">
<a href="../../reference/" class="md-tabs__link">
레퍼런스
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Quad 한국어 문서" class="md-nav__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
Quad 한국어 문서
</label>
<div class="md-nav__source">
<a href="https://github.com/qwreey75/quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__link--index ">
<a href="../.."></a>
<label for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../license/" class="md-nav__link">
라이선스
</a>
</li>
<li class="md-nav__item">
<a href="../../changelogs/" class="md-nav__link">
변경사항
</a>
</li>
<li class="md-nav__item">
<a href="../../gallery/" class="md-nav__link">
갤러리
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../tutorial/">튜토리얼</a>
<label for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
튜토리얼
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorial/1_import/" class="md-nav__link">
Import
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/2_mount/" class="md-nav__link">
Mount
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/3_getObject/" class="md-nav__link">
GetObject
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/4_style/" class="md-nav__link">
Style
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/5_event/" class="md-nav__link">
Event
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/6_tween/" class="md-nav__link">
Tween
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/7_quadProperty/" class="md-nav__link">
QuadProperty
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/8_register/" class="md-nav__link">
Register
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/9_lang/" class="md-nav__link">
Lang
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/10_signal/" class="md-nav__link">
Signal
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/11_extend/" class="md-nav__link">
Extend
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../reference/">레퍼런스</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
레퍼런스
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="목차">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Locales</h1>
<p><em>Default</em> (default)<br />
<em>English</em> (en_us)<br />
<em>Spanish</em> (es_es)<br />
<em>French</em> (fr_fr)<br />
<em>Indonesian</em> (id_id)<br />
<em>Italian</em> (it_it)<br />
<em>Japanese</em> (ja_jp)<br />
<em>Korean</em> (ko_kr)<br />
<em>Russian</em> (ru_ru)<br />
<em>Thai</em> (th_th)<br />
<em>Turkish</em> (tr_tr)<br />
<em>Vietnamese</em> (vi_vn)<br />
<em>Portuguese</em> (pt_br)<br />
<em>German</em> (de_de)<br />
<em>ChineseSimplified</em> (zh_cn)<br />
<em>ChineseTraditional</em> (zh_tw)<br />
<em>Bulgarian</em> (bg_bg)<br />
<em>Bengali</em> (bn_bd)<br />
<em>Czech</em> (cs_cz)<br />
<em>Danish</em> (da_dk)<br />
<em>Greek</em> (el_gr)<br />
<em>Estonian</em> (et_ee)<br />
<em>Finnish</em> (fi_fi)<br />
<em>Hindi</em> (hi_in)<br />
<em>Croatian</em> (hr_hr)<br />
<em>Hungarian</em> (hu_hu)<br />
<em>Georgian</em> (ka_ge)<br />
<em>Kazakh</em> (kk_kz)<br />
<em>Khmer</em> (km_kh)<br />
<em>Lithuanian</em> (lt_lt)<br />
<em>Latvian</em> (lv_lv)<br />
<em>Malay</em> (ms_my)<br />
<em>Burmese</em> (my_mm)<br />
<em>Bokmal</em> (nb_no)<br />
<em>Dutch</em> (nl_nl)<br />
<em>Filipino</em> (fil_ph)<br />
<em>Polish</em> (pl_pl)<br />
<em>Romanian</em> (ro_ro)<br />
<em>Ukrainian</em> (uk_ua)<br />
<em>Sinhala</em> (si_lk)<br />
<em>Slovak</em> (sk_sk)<br />
<em>Slovenian</em> (sl_sl)<br />
<em>Albanian</em> (sq_al)<br />
<em>Bosnian</em> (bs_ba)<br />
<em>Serbian</em> (sr_rs)<br />
<em>Swedish</em> (sv_se)<br />
<em>Arabic</em> (ar_001) </p>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
맨위로
</a>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020 - 2023 Qwreey
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "navigation.footer", "navigation.tabs", "navigation.top"], "search": "../../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac\ub428", "clipboard.copy": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac", "search.result.more.one": "\uc774 \ubb38\uc11c\uc5d0\uc11c 1\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.more.other": "\uc774 \ubb38\uc11c\uc5d0\uc11c #\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.none": "\uac80\uc0c9\uc5b4\uc640 \uc77c\uce58\ud558\ub294 \ubb38\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", "search.result.one": "1\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.other": "#\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.placeholder": "\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uc138\uc694", "search.result.term.missing": "\ud3ec\ud568\ub418\uc9c0 \uc54a\uc740 \uac80\uc0c9\uc5b4", "select.version": "\ubc84\uc804 \uc120\ud0dd"}}</script>
<script src="../../assets/javascripts/bundle.2a6f1dda.min.js"></script>
</body>
</html>

View file

@ -736,7 +736,7 @@
첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다<br /> 첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다<br />
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p> <em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p>
</blockquote> </blockquote>
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">함수</label><label for="__tabbed_1_2">테이블</label><label for="__tabbed_1_3">여러 값이 묶임</label></div> <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">함수</label><label for="__tabbed_1_2">테이블</label></div>
<div class="tabbed-content"> <div class="tabbed-content">
<div class="tabbed-block"> <div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@ -790,7 +790,9 @@
<span class="normal">49</span> <span class="normal">49</span>
<span class="normal">50</span> <span class="normal">50</span>
<span class="normal">51</span> <span class="normal">51</span>
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span> <span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span> <span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span> <span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span> <span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
@ -819,6 +821,8 @@
<span class="n">Frame</span> <span class="s2">&quot;Topbar&quot;</span> <span class="p">{</span> <span class="n">Frame</span> <span class="s2">&quot;Topbar&quot;</span> <span class="p">{</span>
<span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="c1">-- 이렇게 여러 값을 묶어서 두 값이 변경됨, 혹은 그이상을</span>
<span class="c1">-- 만들 수 있습니다.</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;topbarSize,width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="n">Size</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;topbarSize,width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span>
<span class="kr">return</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="n">myStore</span><span class="p">.</span><span class="n">topbarSize</span><span class="p">)</span> <span class="kr">return</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="n">myStore</span><span class="p">.</span><span class="n">topbarSize</span><span class="p">)</span>
<span class="kr">end</span><span class="p">);</span> <span class="kr">end</span><span class="p">);</span>
@ -873,11 +877,7 @@
<span class="normal">26</span> <span class="normal">26</span>
<span class="normal">27</span> <span class="normal">27</span>
<span class="normal">28</span> <span class="normal">28</span>
<span class="normal">29</span> <span class="normal">29</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span> <span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span> <span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span> <span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
@ -898,34 +898,16 @@
<span class="p">}</span> <span class="p">}</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="mi">1</span> <span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="mi">1</span>
<span class="o">%</span><span class="p">(</span><span class="o">#</span><span class="n">colors</span><span class="p">)</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span> <span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;color&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="n">colors</span><span class="p">);</span>
<span class="p">}</span> <span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span> <span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span> <span class="kr">while</span> <span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="kr">do</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="p">(</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">%</span><span class="p">(</span><span class="o">#</span><span class="n">colors</span><span class="p">)</span><span class="o">+</span><span class="mi">2</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="kr">end</span> <span class="kr">end</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
</div> </div>
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
</code></pre></div></td></tr></table></div>
</div>
</div> </div>
</div> </div>
<hr /> <hr />

View file

@ -697,13 +697,9 @@
<h1>라이선스</h1> <h1>라이선스</h1>
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">왜안됨</label><label for="__tabbed_1_2">Korean</label><label for="__tabbed_1_3">English</label></div> <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Korean</label><label for="__tabbed_1_2">English</label></div>
<div class="tabbed-content"> <div class="tabbed-content">
<div class="tabbed-block"> <div class="tabbed-block">
<p>왜 안돌아가냐</p>
</div>
<div class="tabbed-block">
<p>왜 안돌아가냐
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span> <span class="normal"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>
@ -801,7 +797,7 @@ qwreeykawaii 라이선스의 복사 배포 및 수정에
지원하지 않습니다. 지원하지 않습니다.
같은 이유로써, 전쟁이 지원될 수 있는 곳에서의 같은 이유로써, 전쟁이 지원될 수 있는 곳에서의
이 창작물 사용을 허용하지 않습니다. 이 창작물 사용을 허용하지 않습니다.
</code></pre></div></td></tr></table></div></p> </code></pre></div></td></tr></table></div>
</div> </div>
<div class="tabbed-block"> <div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>

File diff suppressed because one or more lines are too long

View file

@ -2,127 +2,132 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://quad.qwreey.kr/kr/</loc> <loc>https://quad.qwreey.kr/kr/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/changelogs/</loc> <loc>https://quad.qwreey.kr/kr/changelogs/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/gallery/</loc> <loc>https://quad.qwreey.kr/kr/gallery/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/license/</loc> <loc>https://quad.qwreey.kr/kr/license/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/TweenOptions/</loc> <loc>https://quad.qwreey.kr/kr/include/TweenOptions/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/direction/</loc> <loc>https://quad.qwreey.kr/kr/include/direction/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/easings/</loc> <loc>https://quad.qwreey.kr/kr/include/easings/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/events/</loc> <loc>https://quad.qwreey.kr/kr/include/events/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://quad.qwreey.kr/kr/include/locales/</loc>
<lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/mounts/</loc> <loc>https://quad.qwreey.kr/kr/include/mounts/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/objectList/</loc> <loc>https://quad.qwreey.kr/kr/include/objectList/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/quadProperty/</loc> <loc>https://quad.qwreey.kr/kr/include/quadProperty/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/register/</loc> <loc>https://quad.qwreey.kr/kr/include/register/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/</loc> <loc>https://quad.qwreey.kr/kr/reference/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/10_signal/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/10_signal/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/11_extend/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/11_extend/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/1_import/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/1_import/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/2_mount/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/2_mount/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/3_getObject/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/3_getObject/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/4_style/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/4_style/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/5_event/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/5_event/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/6_tween/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/6_tween/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/7_quadProperty/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/7_quadProperty/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/8_register/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/8_register/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/9_lang/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/9_lang/</loc>
<lastmod>2023-02-20</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
</urlset> </urlset>

Binary file not shown.

View file

@ -705,6 +705,12 @@
<h1 id="_1">반복되는 속성값을 줄이기<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1> <h1 id="_1">반복되는 속성값을 줄이기<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<p>읽기 전...</p>
<blockquote>
<p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Style</code> 기능이 코드를 넘어 공유되지 않습니다<br />
하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Style</code> 는 공유됩니다</strong> </p>
</blockquote>
<p>Quad 에서는 반복적인 속성들을 줄여 쓸 수 있도록 Style 을 제공합니다. </p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span> <span class="normal"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>

View file

@ -835,7 +835,7 @@
첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다<br /> 첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다<br />
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p> <em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p>
</blockquote> </blockquote>
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">함수</label><label for="__tabbed_1_2">테이블</label><label for="__tabbed_1_3">여러 값이 묶임</label></div> <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">함수</label><label for="__tabbed_1_2">테이블</label></div>
<div class="tabbed-content"> <div class="tabbed-content">
<div class="tabbed-block"> <div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@ -889,7 +889,9 @@
<span class="normal">49</span> <span class="normal">49</span>
<span class="normal">50</span> <span class="normal">50</span>
<span class="normal">51</span> <span class="normal">51</span>
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span> <span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span> <span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span> <span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span> <span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
@ -918,6 +920,8 @@
<span class="n">Frame</span> <span class="s2">&quot;Topbar&quot;</span> <span class="p">{</span> <span class="n">Frame</span> <span class="s2">&quot;Topbar&quot;</span> <span class="p">{</span>
<span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="c1">-- 이렇게 여러 값을 묶어서 두 값이 변경됨, 혹은 그이상을</span>
<span class="c1">-- 만들 수 있습니다.</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;topbarSize,width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="n">Size</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;topbarSize,width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span>
<span class="kr">return</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="n">myStore</span><span class="p">.</span><span class="n">topbarSize</span><span class="p">)</span> <span class="kr">return</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="n">myStore</span><span class="p">.</span><span class="n">topbarSize</span><span class="p">)</span>
<span class="kr">end</span><span class="p">);</span> <span class="kr">end</span><span class="p">);</span>
@ -972,11 +976,7 @@
<span class="normal">26</span> <span class="normal">26</span>
<span class="normal">27</span> <span class="normal">27</span>
<span class="normal">28</span> <span class="normal">28</span>
<span class="normal">29</span> <span class="normal">29</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span> <span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span> <span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span> <span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
@ -997,34 +997,16 @@
<span class="p">}</span> <span class="p">}</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="mi">1</span> <span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="mi">1</span>
<span class="o">%</span><span class="p">(</span><span class="o">#</span><span class="n">colors</span><span class="p">)</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span> <span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;color&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="n">colors</span><span class="p">);</span>
<span class="p">}</span> <span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span> <span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span> <span class="kr">while</span> <span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="kr">do</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="p">(</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">%</span><span class="p">(</span><span class="o">#</span><span class="n">colors</span><span class="p">)</span><span class="o">+</span><span class="mi">2</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="kr">end</span> <span class="kr">end</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
</div> </div>
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
</code></pre></div></td></tr></table></div>
</div>
</div> </div>
</div> </div>
<hr /> <hr />

View file

@ -705,8 +705,104 @@
<h1 id="_1">언어관리<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1> <h1 id="_1">언어관리<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<p>Quad 에는 귀찮은 언어관리를 자동으로 해주는 모듈이 내장되어 있습니다. <p>읽기 전...</p>
또한, register 와 연동해 변하는 텍스트도 알아서 언어에 맞게 출력되도록 만들 수 있습니다.</p> <blockquote>
<p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Lang</code> 기능이 코드를 넘어 공유되지 않습니다<br />
하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Lang</code> 은 공유됩니다</strong> </p>
</blockquote>
<p>Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다.<br />
이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다. </p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Event</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">Lang</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Lang</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">Lang</span><span class="p">.</span><span class="n">New</span><span class="p">(</span><span class="s2">&quot;TimePassed&quot;</span><span class="p">,{</span>
<span class="p">[</span><span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Korean</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;{count}초 지났어요&quot;</span><span class="p">;</span>
<span class="p">[</span><span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Default</span><span class="p">]</span> <span class="o">=</span> <span class="kr">function</span> <span class="p">(</span><span class="n">options</span><span class="p">)</span>
<span class="c1">-- 함수 또한 등록할 수 있습니다.</span>
<span class="kr">if</span> <span class="n">options</span><span class="p">.</span><span class="n">count</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="kr">then</span>
<span class="kr">return</span> <span class="p">(</span><span class="s2">&quot;%d seconds passed&quot;</span><span class="p">):</span><span class="n">format</span><span class="p">(</span><span class="n">options</span><span class="p">.</span><span class="n">count</span><span class="p">)</span>
<span class="kr">else</span>
<span class="kr">return</span> <span class="p">(</span><span class="s2">&quot;%d second passed&quot;</span><span class="p">):</span><span class="n">format</span><span class="p">(</span><span class="n">options</span><span class="p">.</span><span class="n">count</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kr">end</span><span class="p">;</span>
<span class="p">})</span>
<span class="n">TextButton</span> <span class="s2">&quot;mainButton&quot;</span> <span class="p">{</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">);</span>
<span class="n">Text</span> <span class="o">=</span> <span class="n">Lang</span> <span class="s2">&quot;TimePassed&quot;</span> <span class="p">{</span>
<span class="c1">-- count = 1 일반적인 값도 사용가능합니다</span>
<span class="n">count</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;count&quot;</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">[</span><span class="n">Event</span> <span class="s2">&quot;MouseButton1Click&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="kr">function</span><span class="p">()</span>
<span class="c1">-- 클릭시 언어가 변경됩니다</span>
<span class="kr">if</span> <span class="n">Lang</span><span class="p">.</span><span class="n">CurrentLocale</span> <span class="o">==</span> <span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Default</span> <span class="kr">then</span>
<span class="n">Lang</span><span class="p">.</span><span class="n">CurrentLocale</span> <span class="o">=</span> <span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Korean</span>
<span class="kr">else</span>
<span class="n">Lang</span><span class="p">.</span><span class="n">CurrentLocale</span> <span class="o">=</span> <span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Default</span>
<span class="kr">end</span>
<span class="kr">end</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUIk</span><span class="p">,</span><span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainButton&quot;</span><span class="p">))</span>
<span class="kr">while</span> <span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="kr">do</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="kr">end</span>
</code></pre></div></td></tr></table></div>
<p>로케일 값들은 <code class="highlight"><span class="nx">Lang</span><span class="p">.</span><span class="nx">Locales</span></code>에서 가져올 수 있으며, 사용가능한 로케일 목록은 다음과 같습니다. </p>

View file

@ -38,6 +38,11 @@ table.pretty {
-webkit-backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
} }
/* 디테일 안에 글자크기 */
.md-typeset details {
font-size: .72rem !important;
}
/*테이블 해더 꾸미기*/ /*테이블 해더 꾸미기*/
th { th {
/*최소 길이*/ /*최소 길이*/
@ -92,6 +97,9 @@ td {
--md-default-fg-color--lighter: rgb(105, 105, 105); --md-default-fg-color--lighter: rgb(105, 105, 105);
--md-default-fg-color--lightest: rgb(70, 70, 70); --md-default-fg-color--lightest: rgb(70, 70, 70);
/* 마커 */
--md-typeset-mark-color: hsl(271, 81%, 46%) !important;
/*배경 색깔*/ /*배경 색깔*/
--md-default-bg-color: rgb(41, 43, 54); --md-default-bg-color: rgb(41, 43, 54);
--md-default-bg-color--light: hsla(232, 15%, 21%, 0.54); --md-default-bg-color--light: hsla(232, 15%, 21%, 0.54);

View file

@ -1,26 +0,0 @@
```ts
export type TweenOptions = {
Easing: "Linear"
|"Quint"
|"Quart"
|"Cubic"
|"Quad"
|"Sin"
|"Circle"
|"Expo"
|"Elastic"
|"Bounce"
|"Exp2"
|"Exp4"
|EasingFunction?;
Direction: "Out"|"InOut"|"In"|EasingDirection?;
CallBack: {[number|"*"|string]:(Item:DOM|any,Alpha:number,AbsolutePercent:number)->()}?;
OnStepped: TweenOnStepped?;
// 일반적으로 CallBack 에 ['*']=()->() 를
// 등록하는것과 같으나 성능상의 이점이 있습니다
Ended: TweenEnded?;
Getter: TweenGetter?;
Setter: TweenSetter?;
Time: number?;
}
```

View file

@ -1,8 +1,12 @@
`Out` `Out`
초반에 가속이 이루워지며, 후반에 느려집니다. 초반에 가속이 이루워지며, 후반에 느려집니다.
---
`In` `In`
초반에는 느리며, 점점 가속이 늘어납니다. 초반에는 느리며, 점점 가속이 늘어납니다.
---
`InOut` `InOut`
중간에서 가장 빠른 속도를 가지며, 후반 초반 모두 감속이 이루워집니다. 중간에서 가장 빠른 속도를 가지며, 후반 초반 모두 감속이 이루워집니다.

View file

@ -4,41 +4,49 @@
`Linear` `Linear`
> 아무런 가감속이 없는 1차형 함수입니다 > 아무런 가감속이 없는 1차형 함수입니다
> `#!ts i=x, x=0 to 1`
--- ---
`Quint` `Quint`
> 5 제곱을 이용한 가감속 함수입니다. Quart 보다 가파른 개형을 가졌습니다 > 5 제곱을 이용한 가감속 함수입니다. Quart 보다 가파른 개형을 가졌습니다
> `#!ts (^5) i=1-(1-x)^5, x=0 to 1`
--- ---
`Quart` `Quart`
> 네제곱을 이용한 가감속 함수입니다. Cubic 보다 가파른 개형을 가졌습니다 > 네제곱을 이용한 가감속 함수입니다. Cubic 보다 가파른 개형을 가졌습니다
> `#!ts (^4) i=1-(1-x)^4, x=0 to 1`
--- ---
`Cubic` `Cubic`
> 세제곱을 이용한 가감속 함수입니다. Quad 보다 가파른 개형을 가졌습니다 > 세제곱을 이용한 가감속 함수입니다. Quad 보다 가파른 개형을 가졌습니다
> `#!ts (^3) i=1-(1-x)^3, x=0 to 1`
--- ---
`Quad` `Quad`
> 제곱을 이용한 가감속 함수입니다. > 제곱을 이용한 가감속 함수입니다.
> `#!ts (^2) i=1-(1-x)^2, x=0 to 1`
--- ---
`Expo` `Expo`
> 지수형 가감속 함수입니다. 매우 가파른 개형을 가졌습니다. > 지수형 가감속 함수입니다. 매우 가파른 개형을 가졌습니다.
> `#!ts i=1-2^(-10*x), x=0 to 1`
--- ---
`Sin` `Sin`
> 사인 파형을 사용한 함수입니다. > 사인 파형 가감속 함수입니다.
> `#!ts i=sin(x*pi/2), x=0 to 1`
--- ---
`Circle` `Circle`
> 원형 가감속 함수입니다. > 사분원 가감속 함수입니다.
> `#!ts i=sqrt(1-(1-x)^2), x=0 to 1`
--- ---
@ -53,6 +61,6 @@
--- ---
`Bounce` `Bounce`
> 튀을 가지는 가감속 함수입니다. > 튀어오름을 가지는 가감속 함수입니다.
TODO: 애니메이션 미리보기 영상 추가 TODO: 애니메이션 미리보기 영상 추가

View file

@ -15,7 +15,9 @@ Frame {
`#!ts Event.Created` `#!ts Event.Created`
> 오브젝트가 생성되었을 때 실행됩니다. 첫번째 인자로 `self` 를 받을 수 있습니다. > 오브젝트가 생성되었을 때 실행됩니다. 첫번째 인자로 `self` 를 받을 수 있습니다.
*주의: Event.Created 가 실행될 때는 Parent 값이 정해지지 않았을 수 있습니다. self.Parent 는 접근해서는 안됩니다. Class.Extend 에서는 AfterRender 를 이용해야 합니다.* ???+ Warning "주의"
`Event.Created` 가 실행될 때는 `Parent` 값이 정해지지 않았을 수 있습니다. `#!lua self.Parent` 는 접근해서는 안됩니다. `Class.Extend` 에서는 `AfterRender` 를 이용해야 합니다.
```lua ```lua
-- 용법 -- 용법
Frame { Frame {
@ -30,7 +32,9 @@ Frame {
`#!ts Event.CreatedAsync` `#!ts Event.CreatedAsync`
> `#!ts Event.Created` 와 비슷하지만, 코루틴 안에서 작동합니다. `#!ts objectList:EachAsync()` 처럼 반환을 기다리지 않습니다. > `#!ts Event.Created` 와 비슷하지만, 코루틴 안에서 작동합니다. `#!ts objectList:EachAsync()` 처럼 반환을 기다리지 않습니다.
*주의: Event.CreatedAsync 가 실행될 때는 Parent 값이 정해지지 않았을 수 있습니다. self.Parent 는 접근해서는 안됩니다.* ???+ Warning "주의"
`Event.CreatedAsync` 가 실행될 때는 `Parent` 값이 정해지지 않았을 수 있습니다. `#!lua self.Parent` 는 접근해서는 안됩니다.
```lua ```lua
-- 용법 -- 용법
Frame { Frame {

48
md/kr/include/locales.md Normal file
View file

@ -0,0 +1,48 @@
**Default** (default)
**English** (en_us)
**Spanish** (es_es)
**French** (fr_fr)
**Indonesian** (id_id)
**Italian** (it_it)
**Japanese** (ja_jp)
**Korean** (ko_kr)
**Russian** (ru_ru)
**Thai** (th_th)
**Turkish** (tr_tr)
**Vietnamese** (vi_vn)
**Portuguese** (pt_br)
**German** (de_de)
**ChineseSimplified** (zh_cn)
**ChineseTraditional** (zh_tw)
**Bulgarian** (bg_bg)
**Bengali** (bn_bd)
**Czech** (cs_cz)
**Danish** (da_dk)
**Greek** (el_gr)
**Estonian** (et_ee)
**Finnish** (fi_fi)
**Hindi** (hi_in)
**Croatian** (hr_hr)
**Hungarian** (hu_hu)
**Georgian** (ka_ge)
**Kazakh** (kk_kz)
**Khmer** (km_kh)
**Lithuanian** (lt_lt)
**Latvian** (lv_lv)
**Malay** (ms_my)
**Burmese** (my_mm)
**Bokmal** (nb_no)
**Dutch** (nl_nl)
**Filipino** (fil_ph)
**Polish** (pl_pl)
**Romanian** (ro_ro)
**Ukrainian** (uk_ua)
**Sinhala** (si_lk)
**Slovak** (sk_sk)
**Slovenian** (sl_sl)
**Albanian** (sq_al)
**Bosnian** (bs_ba)
**Serbian** (sr_rs)
**Swedish** (sv_se)
**Arabic** (ar_001)

View file

@ -31,11 +31,22 @@ end
``` ```
`#!ts :With((store:valueStore, newValue:any, key:string)->())->register` `#!ts :With((store:valueStore, newValue:any, key:string)->())->register`
> 함수 또는 테이블에서 값을 가져옵니다. Add 보다 나중에 수행됩니다. <blockquote markdown>
> 첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다
> *주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다*
=== "함수" 함수 또는 테이블에서 값을 가져옵니다. Add 보다 나중에 수행됩니다.
첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다
=== "용법"
```lua
myStore "size":With(function (_,value)
return value * 2
end)
```
=== "예제 - 함수"
`width` 값에 맞춰 자동으로 UI 가 업데이트되도록 만듭니다.
```lua ```lua
-- 용법 -- 용법
@ -67,6 +78,8 @@ end
Frame "Topbar" { Frame "Topbar" {
LayoutOrder = 1; LayoutOrder = 1;
BackgroundColor3 = Color3.fromRGB(255,0,0); BackgroundColor3 = Color3.fromRGB(255,0,0);
-- 이렇게 여러 값을 묶어서 두 값이 변경됨, 혹은 그이상을
-- 만들 수 있습니다.
Size = myStore "topbarSize,width":With(function() Size = myStore "topbarSize,width":With(function()
return UDim2.fromOffset(myStore.width,myStore.topbarSize) return UDim2.fromOffset(myStore.width,myStore.topbarSize)
end); end);
@ -92,7 +105,9 @@ end
end end
``` ```
=== "테이블" === "예제 - 테이블"
`colors` 테이블 안에 있는 색깔들을 돌아가며 보여줍니다.
```lua ```lua
-- 용법 -- 용법
@ -117,6 +132,7 @@ end
myStore.color = 1 myStore.color = 1
Frame "mainFrame" { Frame "mainFrame" {
Size = UDim2.fromOffset(200,200);
BackgroundColor3 = myStore "color":With(colors); BackgroundColor3 = myStore "color":With(colors);
} }
Mount(ScreenGUI, Store.GetObject("mainFrame")) Mount(ScreenGUI, Store.GetObject("mainFrame"))
@ -126,25 +142,25 @@ end
end end
``` ```
=== "여러 값이 묶임" ???+ Warning "주의"
구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다
```lua </blockquote>
-- 용법
local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init()
local Store = Quad.Store
local Class = Quad.Class
local Mount = Quad.Mount
```
--- ---
`#!ts :Tween(options:TweenOptions)` `#!ts :Tween(options:TweenOptions)`
> 트윈을 이용해 변경사항을 적용합니다(처음 오브젝트 생성시에는 적용되지 않음) 옵션은 Tween 문서에 나와있는 옵션과 같습니다. > 트윈을 이용해 변경사항을 적용합니다(처음 오브젝트 생성시에는 적용되지 않음) 옵션은 Tween 문서에 나와있는 옵션과 같습니다.
> *주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다*
=== "용법"
```lua
-- Tween 옵션을 넣을 수 있습니다
myStore "size":Tween{ Time = 2 }
```
=== "예제"
```lua ```lua
-- 용법
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init() local Quad = require(path.to.module).Init()
local Store = Quad.Store local Store = Quad.Store
@ -191,13 +207,14 @@ while true do
myStore.pos = on and UDim2.fromOffset(400,0) or UDim2.fromOffset(50,0) myStore.pos = on and UDim2.fromOffset(400,0) or UDim2.fromOffset(50,0)
end end
``` ```
???+ Warning "주의"
구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다
--- ---
`#!ts :Default(value:any)` `#!ts :Default(value:any)`
> 기본값을 정합니다. 만약 값이 `#!lua nil` 인 경우 이 값을 사용하게 됩니다. Add 나 With 등 다른것에 영향받지 않습니다. > 기본값을 정합니다. 만약 값이 `#!lua nil` 인 경우 이 값을 사용하게 됩니다. Add 나 With 등 다른것에 영향받지 않습니다.
> *주의 : 처음 오브젝트가 생성될 때에만 이 값이 사용됩니다.* > *주의 : 처음 오브젝트가 생성될 때에만 이 값이 사용됩니다.*
```lua ```lua
-- 용법 -- 용법
local ScreenGUI = script.Parent local ScreenGUI = script.Parent

View file

@ -0,0 +1,55 @@
==OPTION== `#!ts Time:number?`
> 트윈의 총 길이를 정합니다. *아무 값도 지정하지 않으면 `#!ts 1`이 사용됩니다.*
---
==OPTION== `#!ts Easing:string|(index:number)->number?`
> 트윈의 가감속 정도를 결정합니다. 문자열 그대로 사용하거나, `#!ts Tween.Easings.Linear`와 같이 열거형 방식으로 사용할 수 있습니다.
> 혹은 필요에 따라 함수를 지정할 수도 있습니다. 함수를 Easing 으로 사용하는 경우 첫번째 인자로 1차 진행도 (Linear, 0 에서 1 사이의 값) 값이 주어지며, 계산 결과로 실제 적용될 위치를 반환해야합니다. 반환값은 음수이거나 1 보다 클 수 있습니다.
> *아무 값도 지정하지 않으면 `Exp2`가 사용됩니다.*
{!include/typeEasings.md!}
> 함수에 관한 자세한 설명과 미리보기는 [여기에서](../reference/tween/easings) 확인하세요
---
==OPTION== `#!ts Direction:string?`
> 트윈이 진행되는 방향입니다. 문자열 그대로 사용하거나, `#!ts Tween.Directions.Out`과 같이 열거형 방식으로 사용할 수 있습니다.
> *아무 값도 지정하지 않으면 `Out`이 사용됩니다.*
{!include/typeDirection.md!}
> 방향에 관한 자세한 설명과 미리보기는 [여기에서](../reference/tween/directions) 확인하세요
---
==OPTION== `#!ts CallBack:{[number|"*"|string]:(Item:any, Alpha:number, AbsolutePercent:number)->()}?`
> 선택적인 필드이며, 트윈이 실행중인 도중에 함수를 실행시킬 수 있습니다. 트윈의 진행 정도에 따라서 한번 함수가 실행되거나 트윈 진행중 계속해서 실행되도록 만들 수 있습니다.
> 인덱스가 숫자인 경우 해당 지점을 넘을 때 함수가 실행되도록 만들 수 있으며, `#!lua "*"` 를 인덱스로 사용하면 모든 부분에서 함수가 실행됩니다.
> 함수에는 편의상 트윈을 하고있는 오브젝트, 위치값, 시간만을 고려한 1차 위치값이 제공됩니다.
---
==OPTION== `#!ts OnStepped:(Item:any, Alpha:number, AbsolutePercent:number)->()?`
> CallBack 에 `#!lua "*"` 를 넣은것과 동일한 효과를 가지는 별칭입니다
---
==OPTION== `#!ts Ended:(Item:any, Alpha:number, AbsolutePercent:number)->()?`
> CallBack 에 `#!lua 1`을 넣은것과 동일한 효과를 가지는 별칭입니다
---
==OPTION== `#!ts Getter:(Item:any, Property:string)->any?`
> 선택적인 필드이며, 트윈이 값을 얻으려 할 때 사용할 함수입니다.
> 함수에 트윈하고 있는 오브젝트, 프로퍼티 이름이 제공됩니다.
> ???+ warning
`#!ts register:Tween()` 와 호환되지 않습니다.
---
==OPTION== `#!ts Getter:(Item:any, Property:string, Value:Lerpable)->any?`
> 선택적인 필드이며, 트윈이 값을 설정하려 할 때 사용할 함수입니다.
> 함수에 트윈하고 있는 오브젝트, 프로퍼티 이름, 설정할 값이 제공됩니다.
> ???+ warning
`#!ts register:Tween()` 와 호환되지 않습니다.

View file

@ -0,0 +1,9 @@
```ts
type Direction =
// 초반에 가속이 이루워지며, 후반에 느려집니다.
"Out"
// 초반에는 느리며, 점점 가속이 늘어납니다.
|"In"
//중간에서 가장 빠른 속도를 가지며, 후반 초반 모두 감속이 이루워집니다.
|"InOut"
```

View file

@ -0,0 +1,17 @@
```ts
type Easing =
"Linear" // 아무런 가감속이 없는 1차형
|"Quint" // 5 제곱
|"Quart" // 네제곱
|"Cubic" // 세제곱
|"Quad" // 제곱
|"Sin" // 사인 파형
|"Circle" // 사분원
|"Expo" // 지수형
|"Elastic" // 탄성
|"Bounce" // 튀어오름
|"Back" // 뒤로 가감속
|"Exp2" // 덜 가파른 지수 i=exp(x)/max, x=-4 to 2
|"Exp4" // 더 가파른 지수 i=exp(x)/max, x=-4 ~ 4
|EasingFunction?;
```

View file

@ -1,11 +1,6 @@
=== "왜안됨"
왜 안돌아가냐
=== "Korean" === "Korean"
왜 안돌아가냐
``` ```
qwreeykawaii license v1.3 qwreeykawaii license v1.3
Copyright 2023. Qwreey [qwreey75@gmail.com] Copyright 2023. Qwreey [qwreey75@gmail.com]

View file

View file

View file

@ -1,5 +1,7 @@
# 로블록스 오브젝트 불러오기 # Import - 오브젝트 생성
## 로블록스 오브젝트 불러오기
Frame 과 같은 UI 오브젝트를 만들고 싶은 경우 먼저 import 를 이용해주어야 합니다. Frame 과 같은 UI 오브젝트를 만들고 싶은 경우 먼저 import 를 이용해주어야 합니다.
다음과 같이 입력해보세요! 다음과 같이 입력해보세요!
@ -23,7 +25,12 @@ print(
나중에 자신만의 UI 오브젝트를 생성할 수 있지만, 일반적인 로블록스가 지원하는 오브젝트의 경우 `#!ts Class(ClassName:string)` 으로 불러올 수 있습니다 나중에 자신만의 UI 오브젝트를 생성할 수 있지만, 일반적인 로블록스가 지원하는 오브젝트의 경우 `#!ts Class(ClassName:string)` 으로 불러올 수 있습니다
불러온 Class 에 기본값을 설정할 수도 있습니다 ---
## 불러온 Class 에 기본값 설정
불러온 Class 에 기본값을 설정할 수도 있습니다.
이렇게 하면 `BorderSizePixel` 와 같이 자주 사용될 수 있는 프로퍼티를 미리 지정해 둘 수 있습니다.
```lua ```lua
local Quad = require(path.to.module).Init() local Quad = require(path.to.module).Init()
@ -37,8 +44,15 @@ FrameWithBorder.BorderSizePixel = 1
local frame1 = FrameWithoutBorder {} local frame1 = FrameWithoutBorder {}
local frame2 = FrameWithBorder {} local frame2 = FrameWithBorder {}
print(frame1.FrameWithBorder) local frame3 = FrameWithBorder {
print(frame2.FrameWithBorder) -- 값을 덮어 쓸 수 있습니다
-- 이렇게 하면 기본값이 무시됩니다.
BorderSizePixel = 0;
}
print(frame1.FrameWithBorder.BorderSizePixel)
print(frame2.FrameWithBorder.BorderSizePixel)
print(frame3.FrameWithBorder.BorderSizePixel)
``` ```
이제 그려낸 프레임을 화면에 그려보고 싶나요? 다음 튜토리얼 Mount 를 확인해보세요! 이제 그려낸 프레임을 화면에 그려보고 싶나요? 다음 튜토리얼 Mount 를 확인해보세요!

View file

@ -1,5 +1,7 @@
# 화면에 UI 를 표시하기 # Mount - 화면에 UI 표현
## 화면에 UI 를 표시하기
일반적으로 *Quad* 모듈에서 모든 Parent 처리는 `#!ts Mount` 를 이용합니다. `#!ts Mount(to:any,...item:any?)->mounts` 함수를 이용하면 다루는 오브젝트가 로블록스 `Instance` 인지, 향후 소개될 Quad 확장 클래스인지 상관없이 알아서 Parent 가 처리됩니다. 일반적으로 *Quad* 모듈에서 모든 Parent 처리는 `#!ts Mount` 를 이용합니다. `#!ts Mount(to:any,...item:any?)->mounts` 함수를 이용하면 다루는 오브젝트가 로블록스 `Instance` 인지, 향후 소개될 Quad 확장 클래스인지 상관없이 알아서 Parent 가 처리됩니다.
@ -22,6 +24,10 @@ Mount(ScreenGui,
) )
``` ```
---
## 마운트 객체
편의를 위해서 `Mount` 함수는 `mounts` 라는 객체를 반환합니다. 이것을 이용하면 필요에 따라서 Mount 상태를 해제하거나 추가 할 수 있습니다. `mounts` 객체는 다음과 같은 메소드를 가집니다. 편의를 위해서 `Mount` 함수는 `mounts` 라는 객체를 반환합니다. 이것을 이용하면 필요에 따라서 Mount 상태를 해제하거나 추가 할 수 있습니다. `mounts` 객체는 다음과 같은 메소드를 가집니다.
{!include/mounts.md!} {!include/mounts.md!}

View file

@ -1,11 +1,15 @@
# 오브젝트에 아이디 부여하기, 그리고 사용하기 # GetObject - 오브젝트에 아이디 부여
읽기 전... ???+ info "읽기 전..."
> 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `#!ts Store.GetObject` 가 코드를 넘어 공유되지 않습니다 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `#!ts Store.GetObject` 가 코드를 넘어 공유되지 않습니다
> 하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `#!ts Store.GetObject` 는 공유됩니다** 하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `#!ts Store.GetObject` 는 공유됩니다**
**변수에 만들어진 오브젝트를 하나하나 저장해???** 그게 편할리가 없죠. 오브젝트에 아이디를 넣고 사용해봅시다. ---
## 오브젝트에 아이디 부여하기, 사용하기
**변수에 만들어진 오브젝트를 하나하나 저장해야하나요?** 아니요, Quad 에는 오브젝트에 아이디를 부여할 수 있습니다.
```lua ```lua
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
@ -37,9 +41,10 @@ print(Store.GetObject("mainFrame" .. index))
## 다량의 오브젝트를 다루기 ## 다량의 오브젝트를 다루기
또한, Quad 는 다량의 오브젝트를 다루기 편하도록 `#!ts Store.GetObjects(id:string)->objectList` 라는 함수를 가지고 있습니다. ???+ Warning "주의"
`Store.GetObjects`의 반환값인 `objectList`는 캐시해서는 안됩니다. `objectList`를 local 에 넣고 계속해서 유지시키지 마십시오, 반환값은 자동으로 업데이트 되지 않습니다.
> 주의 : *GetObjects 의 반환값인 objectList 는 캐시해서는 안됩니다. objectList 를 local 에 넣고 계속해서 유지시키지 마십시오, 반환값은 자동으로 업데이트 되지 않습니다.* Quad 는 다량의 오브젝트를 다루기 편하도록 `#!ts Store.GetObjects(id:string)->objectList` 라는 함수를 가지고 있습니다.
실험으로, 색깔이 랜덤하게 바뀌는 프레임들을 만들어 봅시다 실험으로, 색깔이 랜덤하게 바뀌는 프레임들을 만들어 봅시다
@ -95,6 +100,8 @@ for _,child in ipairs(Store.GetObjects("Child")) do
end end
``` ```
### objectList
`#!ts Store.GetObjects()` 의 반환 `#!ts objectList` 의 메소드들은 다음과 같습니다. `#!ts Store.GetObjects()` 의 반환 `#!ts objectList` 의 메소드들은 다음과 같습니다.
{!include/objectList.md!} {!include/objectList.md!}
@ -105,6 +112,18 @@ end
id 기능을 조금더 고급적인 방법으로 사용할 수도 있습니다. id 기능을 조금더 고급적인 방법으로 사용할 수도 있습니다.
=== 용법
```lua
Frame "a,b" {
}
```
=== 예제
좀더 직관적인 확인을 위해서 작동시켜보세요.
```lua ```lua
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init() local Quad = require(path.to.module).Init()
@ -149,11 +168,12 @@ end)
GetObjects 에는 이 두 연산을 사용할 수 있고, 생성시에는 `#!ts ,` 으로 여러 아이디를 부여해줄 수 있습니다. *띄어쓰기는 무시됩니다* GetObjects 에는 이 두 연산을 사용할 수 있고, 생성시에는 `#!ts ,` 으로 여러 아이디를 부여해줄 수 있습니다. *띄어쓰기는 무시됩니다*
> 주의 : *고급 ID 사용시 `#!ts objectList:Remove` 메소드는 사용할 수 없습니다* ???+ Warning "주의"
고급 ID 사용시 `#!ts objectList:Remove` 메소드는 사용할 수 없습니다
--- ---
# id 추가와 제거 ## id 추가와 제거
경우에 따라 이미 생성한 오브젝트에 id 를 추가 혹은 제거해줄 수 있습니다 경우에 따라 이미 생성한 오브젝트에 id 를 추가 혹은 제거해줄 수 있습니다

View file

@ -1,6 +1,14 @@
# 반복되는 속성값을 줄이기 # 반복되는 속성값을 줄이기
???+ info "읽기 전..."
모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Style` 기능이 코드를 넘어 공유되지 않습니다
하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `Style` 는 공유됩니다**
---
Quad 에서는 반복적인 속성들을 줄여 쓸 수 있도록 Style 을 제공합니다.
```lua ```lua
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init() local Quad = require(path.to.module).Init()

View file

@ -1,5 +1,7 @@
# 이벤트 등록하기 # Event - 이벤트 핸들링
## 이벤트 등록하기
`MouseButton1Click` 혹은 `GetPropertyChangedSignal` 같은 로블 기본 이벤트를 간단하게 등록하고 싶으신가요? Event 를 이용해보세요. `MouseButton1Click` 혹은 `GetPropertyChangedSignal` 같은 로블 기본 이벤트를 간단하게 등록하고 싶으신가요? Event 를 이용해보세요.
@ -24,6 +26,10 @@ TextButton "mainButton" {
Mount(ScreenGUI, Store.GetObject("mainButton")) Mount(ScreenGUI, Store.GetObject("mainButton"))
``` ```
---
## 이밴트 리스트
적용가능한 Event 들은 다음과 같습니다 적용가능한 Event 들은 다음과 같습니다
{!include/events.md!} {!include/events.md!}

View file

@ -1,10 +1,31 @@
# 트위닝 # Tween - 트윈효과
## 트위닝
Quad에는 트윈을 도와주는 모듈이 내장되어 있습니다. 이 트윈 모듈은 단순한 Instance들을 넘어서 table 형식도 트윈을 수행할 수 있습니다. 이는 나중에 커스텀 오브젝트를 트윈할 때 유용합니다. Quad에는 트윈을 도와주는 모듈이 내장되어 있습니다. 이 트윈 모듈은 단순한 Instance들을 넘어서 table 형식도 트윈을 수행할 수 있습니다. 이는 나중에 커스텀 오브젝트를 트윈할 때 유용합니다.
Quad 에서는 실제로 직접적으로 Tween 을 사용할 일은 적으며 추후 설명되는 `#!ts register:Tween()`로 사용하는것이 권장됩니다
트윈은 일반적으로 다음과 같이 수행합니다. 트윈은 일반적으로 다음과 같이 수행합니다.
=== "용법"
```lua
Tween.RunTween(myFrame,{
-- 트윈 옵션
Easing = Tween.Easing.Expo;
Direction = Tween.Directions.Out;
Time = 1;
...
},{
-- 프로퍼티 목록
})
```
=== "사용 예"
클릭시 움직이는 버튼을 구현합니다.
```lua ```lua
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init() local Quad = require(path.to.module).Init()
@ -13,18 +34,43 @@ local Mount = Quad.Mount
local Tween = Quad.Tween local Tween = Quad.Tween
local Frame = Class "Frame" local Frame = Class "Frame"
local TextButton = Class "TextButton"
local on = false
Frame "mainFrame" { Frame "mainFrame" {
Frame "Child" { Size = UDim2.fromOffset(300,300);
Position = UDim2.fromOffset(0,0); BackgroundColor3 = Color3.fromRGB(255,255,255);
Size = UDim2.fromOffset(20,20) TextButton "Child" {
Text = "Click Me!";
BackgroundColor3 = Color3.fromRGB(255,100,255);
Position = UDim2.fromOffset(80,100);
Size = UDim2.fromOffset(20,20);
[Event "MouseButton1Click"] = function(self,x,y)
on = not on
Tween.RunTween(self,{
-- 트윈 옵션입니다. 아래에서 설명됩니다
Easing = Tween.Easing.Expo;
Direction = Tween.Directions.Out;
Time = 1;
},{
-- 트윈할 목표 프로퍼티입니다
Position = on
and UDim2.fromOffset(200,100)
or UDim2.fromOffset(80,100);
})
end;
}; };
} }
Mount(ScreenGUI, Store.GetObejct("mainFrame")) Mount(ScreenGUI, Store.GetObejct("mainFrame"))
local Child = Store.GetObject()
``` ```
트윈 옵션에서 사용할 수 있는 `EasingFunction` 은 다음과 같습니다 ---
{!include/easings.md!} ## 트윈 옵션
트윈에는 트윈 옵션이 들어가며, 여기에는 트윈의 방향, 가감속, 시간 등을 설정해줄 수 있습니다.
넣을 수 있는 트윈 옵션은 다음과 같습니다.
{!include/tweenOptions.md!}

View file

@ -1,5 +1,13 @@
# Quad 내부 프로퍼티 # QuadProperty - 특수 프로퍼티
???+ Failure "주의사항"
특수 프로퍼티는 `Tween` 이 지원되지 않습니다. 그러나 `register``#!ts :Tween()`의 경우 호환되므로, 특수 프로퍼티 값을 트윈하려면 향후 설명되는 `register` 와 함깨 사용해야합니다.
> `#!ts Tween.RunTween`, `#!ts Tween.RunTweens` 와는 같이 사용할 수 없습니다.
---
## 특수한 프로퍼티
Quad 에서는 편리성을 위해 일부 특수 프로퍼티를 사용할 수 있습니다. Quad 에서는 편리성을 위해 일부 특수 프로퍼티를 사용할 수 있습니다.
*이 모든 특수 프로퍼티는 향후 소개되는 `register`와 함깨 사용할 수 있습니다* *이 모든 특수 프로퍼티는 향후 소개되는 `register`와 함깨 사용할 수 있습니다*

View file

@ -1,20 +1,39 @@
# 레지스터 # Register - 값 변경 연동
읽기 전... ???+ info "읽기 전..."
> 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `#!ts Store.GetStore` 가 코드를 넘어 공유되지 않습니다 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `#!ts Store.GetStore` 가 코드를 넘어 공유되지 않습니다
> 하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `#!ts Store.GetStore` 는 공유됩니다** 하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `#!ts Store.GetStore` 는 공유됩니다**
레지스터는 한 값이 변경될 때, 그 값을 사용한 곳이 업데이트 될 수 있도록 만들어주는 Quad 의 주요 기술입니다. 추후 설명될 `Class.Extend` 와도 사용이 가능합니다. ---
## 레지스터
레지스터는 한 값이 변경될 때, 그 값을 사용한 곳이 업데이트 될 수 있도록 만들어주는 ==Quad 의 주요 기술입니다.== 추후 설명될 `Class.Extend` 와도 같이 사용됩니다.
레지스터는 이러한 시나리오에서 사용될 수 있습니다. 레지스터는 이러한 시나리오에서 사용될 수 있습니다.
1. UI 의 여러 오브젝트를 한번에 페이드 아웃 혹은 페이드 인 시키는 경우.
2. 가변 크기의 UI 를 업데이트 시키는 경우. > 1. UI 의 여러 오브젝트를 한번에 페이드 아웃 혹은 페이드 인 시키는 경우.
3. 여러 오브젝트들을 한꺼번에 트윈시키는 경우. > 2. 가변 크기의 UI 를 업데이트 시키는 경우.
4. 다크테마/화이트테마 변경할 수 있게 만드는 경우. > 3. 여러 오브젝트들을 한꺼번에 트윈시키는 경우.
> 4. 다크테마/화이트테마 변경할 수 있게 만드는 경우.
이외에도 레지스터의 활용 방법은 무궁무진합니다. 레지스터의 사용법은 다음과 같습니다. 이외에도 레지스터의 활용 방법은 무궁무진합니다. 레지스터의 사용법은 다음과 같습니다.
```lua
local myStore = Store.GetStore("myStore")
myStore.color = Color3.fromRGB(255,255,255)
Frame { BackgroundColor3 = myStore "color" }
-- 연동된 프레임도 업데이트 됩니다
myStore.color = Color3.fromRGB(0,0,0)
```
> 1. 스토어를 생성함.
> 2. 기본 값을 설정함.
> 3. 스토어를 호출해 레지스터를 얻어 등록함.
예시 코드로 정확하게 확인해 볼 수 있습니다
```lua ```lua
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init() local Quad = require(path.to.module).Init()
@ -29,19 +48,26 @@ local myStore = Store.GetStore("myStore")
local TextLabel = Class "TextLabel" local TextLabel = Class "TextLabel"
myStore.Text = "0 초 지남" myStore.Text = "0 초 지남"
myStore.Color = Color3.fromRGB(255,100,255)
TextLabel "mainLabel" { TextLabel "mainLabel" {
Size = UDim2.fromOffset(100,200); Size = UDim2.fromOffset(100,200);
-- myStore 의 Text 값이 변경됨을 추적하고, Text 값을 -- myStore 의 Text 값이 변경됨을 추적하고, Text 값을
-- 업데이트 시킵니다. -- 업데이트 시킵니다.
Text = myStore "Text"; Text = myStore "Text";
-- 이것은 레지스터를 사용하는것이 아니라 단순히 값만
-- 불러와 넣어주는 것입니다. 자동 업데이트가 가능하지 않습니다.
BackgroundColor3 = myStore.Color;
} }
Mount(ScreenGUI, Store.GetObject("mainLabel")) Mount(ScreenGUI, Store.GetObject("mainLabel"))
local Count = 0 -- 바꾸더라도 레지스터를 사용하지 않아 반영되지 않습니다
while true do myStore.Color = Color3.fromRGB(255,255,255)
task.wait(1)
local Count = 1
while task.wait(1) do
-- 값을 업데이트 합니다. 텍스트 라벨도 -- 값을 업데이트 합니다. 텍스트 라벨도
-- 자동적으로 업데이트 됩니다. -- 자동적으로 업데이트 됩니다.
myStore.Text = Count .. " 초 지남" myStore.Text = Count .. " 초 지남"
@ -49,6 +75,10 @@ while true do
end end
``` ```
---
## 레지스터 메소드
레지스터에는 여러가지 메소드가 담겨있습니다. 이 메소드를 사용하면 레지스터를 보다 더 다양하게 활용할 수 있습니다. 레지스터에는 여러가지 메소드가 담겨있습니다. 이 메소드를 사용하면 레지스터를 보다 더 다양하게 활용할 수 있습니다.
{!include/register.md!} {!include/register.md!}

View file

@ -1,6 +1,69 @@
# 언어관리 # 언어관리
Quad 에는 귀찮은 언어관리를 자동으로 해주는 모듈이 내장되어 있습니다. ???+ info "읽기 전..."
또한, register 와 연동해 변하는 텍스트도 알아서 언어에 맞게 출력되도록 만들 수 있습니다. 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Lang` 기능이 코드를 넘어 공유되지 않습니다
하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `Lang` 은 공유됩니다**
---
## 언어관리
Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다.
이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다.
```lua
local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init()
local Store = Quad.Store
local Mount = Quad.Mount
local Event = Quad.Event
local Lang = Quad.Lang
local Class = Quad.Class
local TextButton = Class "TextButton"
local myStore = Store.GetStore("myStore")
myStore.count = 0
Lang.New("TimePassed",{
[Lang.Locales.Korean] = "{count}초 지났어요";
[Lang.Locales.Default] = function (options)
-- 함수 또한 등록할 수 있습니다.
if options.count > 1 then
return ("%d seconds passed"):format(options.count)
else
return ("%d second passed"):format(options.count)
end
end;
})
TextButton "mainButton" {
Size = UDim2.fromOffset(100,100);
Text = Lang "TimePassed" {
-- count = 1 일반적인 값도 사용가능합니다
count = myStore "count";
};
[Event "MouseButton1Click"] = function()
-- 클릭시 언어가 변경됩니다
if Lang.CurrentLocale == Lang.Locales.Default then
Lang.CurrentLocale = Lang.Locales.Korean
else
Lang.CurrentLocale = Lang.Locales.Default
end
end
}
Mount(ScreenGUIk,Store.GetObject("mainButton"))
while task.wait(1) do
myStore.count = myStore.count + 1
end
```
---
## Locale 목록
로케일 값들은 `#!ts Lang.Locales`에서 가져올 수 있으며, 사용가능한 로케일 목록은 다음과 같습니다.
> {!include/locales.md!}

View file

@ -7,29 +7,11 @@ copyright: Copyright &copy; 2020 - 2023 Qwreey
# 사이드바 # 사이드바
nav: nav:
- 홈: 'index.md'
- 'index.md'
- 라이선스: 'license.md'
- 변경사항: 'changelogs.md'
- 갤러리: 'gallery.md'
- 튜토리얼:
- tutorial/index.md
- Import: 'tutorial/1_import.md'
- Mount: 'tutorial/2_mount.md'
- GetObject: 'tutorial/3_getObject.md'
- Style: 'tutorial/4_style.md'
- Event: 'tutorial/5_event.md'
- Tween: 'tutorial/6_tween.md'
- QuadProperty: 'tutorial/7_quadProperty.md'
- Register: 'tutorial/8_register.md'
- Lang: 'tutorial/9_lang.md'
- Signal: 'tutorial/10_signal.md'
- Extend: 'tutorial/11_extend.md'
- 레퍼런스:
- 'reference/index.md'
# 다중 언어 설정 # 다중 언어 설정
extra: extra:
# 다중 언어 설정
alternate: alternate:
- name: 한국어 - name: 한국어
link: /kr/ link: /kr/
@ -37,9 +19,16 @@ extra:
- name: English - name: English
link: /en/ link: /en/
lang: en lang: en
# 소셜 링크
social:
- icon: fontawesome/brands/github
link: https://github.com/qwreey75
- icon: fontawesome/brands/mastodon
link: https://stella.place/@qwreey
# 리포 설정 # 리포 설정
repo_url: https://github.com/qwreey75/quad repo_url: https://github.com/qwreey75/Quad
repo_name: Quad repo_name: Quad
remote_branch: master remote_branch: master
@ -76,10 +65,11 @@ theme:
# 세부기능 Flag # 세부기능 Flag
features: features:
- navigation.indexes - navigation.indexes
- navigation.footer - navigation.footer # 바닥에 다음글 표시
- navigation.tabs - navigation.tabs # 최상위 nav 인덱스를 탭으로 이동
- navigation.top - navigation.top # 맨 위로 올라가기 표시
# - toc.integrate # 목차를 네비게이션에 합치기 - toc.integrate # 목차를 네비게이션에 합치기
- content.code.copy # 코드 복사버튼
# 결과 없음 페이지 # 결과 없음 페이지
static_templates: static_templates:
@ -118,6 +108,7 @@ markdown_extensions:
- pymdownx.magiclink # 링크 확장기 - pymdownx.magiclink # 링크 확장기
- pymdownx.inlinehilite # 인라인 코드 하이라이팅 - pymdownx.inlinehilite # 인라인 코드 하이라이팅
- pymdownx.mark # 마킹(형광마커 효과) - pymdownx.mark # 마킹(형광마커 효과)
- md_in_html # div 같은거 안에 마크다운 작성
- pymdownx.highlight: # 코드 구문강조 - pymdownx.highlight: # 코드 구문강조
linenums: true # 코드라인 넘버 linenums: true # 코드라인 넘버
- pymdownx.emoji: # 이모지 불러오기 - pymdownx.emoji: # 이모지 불러오기

View file

@ -28,8 +28,8 @@ nav:
- 레퍼런스: - 레퍼런스:
- 'reference/index.md' - 'reference/index.md'
# 다중 언어 설정
extra: extra:
# 다중 언어 설정
alternate: alternate:
- name: 한국어 - name: 한국어
link: /kr/ link: /kr/
@ -37,9 +37,15 @@ extra:
- name: English - name: English
link: /en/ link: /en/
lang: en lang: en
# 소셜 링크
social:
- icon: fontawesome/brands/github
link: https://github.com/qwreey75
- icon: fontawesome/brands/mastodon
link: https://stella.place/@qwreey
# 리포 설정 # 리포 설정
repo_url: https://github.com/qwreey75/quad repo_url: https://github.com/qwreey75/Quad
repo_name: Quad repo_name: Quad
remote_branch: master remote_branch: master
@ -76,10 +82,11 @@ theme:
# 세부기능 Flag # 세부기능 Flag
features: features:
- navigation.indexes - navigation.indexes
- navigation.footer - navigation.footer # 바닥에 다음글 표시
- navigation.tabs - navigation.tabs # 최상위 nav 인덱스를 탭으로 이동
- navigation.top - navigation.top # 맨 위로 올라가기 표시
# - toc.integrate # 목차를 네비게이션에 합치기 - toc.integrate # 목차를 네비게이션에 합치기
- content.code.copy # 코드 복사버튼
# 결과 없음 페이지 # 결과 없음 페이지
static_templates: static_templates:
@ -118,6 +125,7 @@ markdown_extensions:
- pymdownx.magiclink # 링크 확장기 - pymdownx.magiclink # 링크 확장기
- pymdownx.inlinehilite # 인라인 코드 하이라이팅 - pymdownx.inlinehilite # 인라인 코드 하이라이팅
- pymdownx.mark # 마킹(형광마커 효과) - pymdownx.mark # 마킹(형광마커 효과)
- md_in_html # div 같은거 안에 마크다운 작성
- pymdownx.highlight: # 코드 구문강조 - pymdownx.highlight: # 코드 구문강조
linenums: true # 코드라인 넘버 linenums: true # 코드라인 넘버
- pymdownx.emoji: # 이모지 불러오기 - pymdownx.emoji: # 이모지 불러오기

View file

@ -19,7 +19,7 @@ function module.init(shared)
local storeNew = store.New local storeNew = store.New
local mount = shared.Mount ---@type quad_module_mount local mount = shared.Mount ---@type quad_module_mount
local getHolder = mount.GetHolder local getHolder = mount.GetHolder
local mountfunc = mount.Mount local mountfunc = mount.MountOne
local style = shared.Style ---@type quad_module_style local style = shared.Style ---@type quad_module_style
local styleList = style.Styles local styleList = style.Styles
local parseStyles = style.ParseStyles local parseStyles = style.ParseStyles
@ -173,18 +173,18 @@ function module.init(shared)
if not advancedTween then if not advancedTween then
return warn "[QUAD] module 'AdvancedTween' needs to be loaded for tween properties but it is not found on 'src.libs'. you should adding that to src.libs directory" return warn "[QUAD] module 'AdvancedTween' needs to be loaded for tween properties but it is not found on 'src.libs'. you should adding that to src.libs directory"
end end
local ended, onStepped -- local ended, onStepped
if tween.Ended then -- if tween.Ended then
ended = function (...) -- ended = function (...)
tween.Ended(item,...) -- tween.Ended(item,...)
end -- end
end -- end
if tween.OnStepped then -- if tween.OnStepped then
onStepped = function (...) -- onStepped = function (...)
tween.OnStepped(item,...) -- tween.OnStepped(item,...)
end -- end
end -- end
advancedTween.RunTween(item,tween,{[index] = setValue},ended,onStepped,SetProperty,GetProperty) advancedTween.RunTween(item,tween,{[index] = setValue},nil,nil,SetProperty,GetProperty)
else else
SetProperty(item,index,setValue,className) SetProperty(item,index,setValue,className)
end end
@ -215,7 +215,10 @@ function module.init(shared)
end end
elseif indexType == "number" and valueType ~= "boolean" then -- object elseif indexType == "number" and valueType ~= "boolean" then -- object
-- child object -- child object
mountfunc(item,((iprop == 1) and value or value:Clone()),holder) if iprop ~= 1 then
value = value:Clone()
end
mountfunc(item,value,holder,true)
end end
end end

View file

@ -62,10 +62,8 @@ module.EasingDirections = {
InOut = "InOut"; -- 두 방향 모두 가감속 InOut = "InOut"; -- 두 방향 모두 가감속
} }
---@deprecated module.Directions = module.EasingDirections
module.EasingDirection = module.EasingDirections module.Easings = module.EasingFunctions
---@deprecated
module.EasingFunction = module.EasingFunctions
------------------------------------ ------------------------------------
-- Lerp 함수 -- Lerp 함수
@ -336,7 +334,7 @@ function module.RunTween(Item,Data,Properties,Ended,OnStepped,Setter,Getter,_)
remove(BindedFunctions,find(BindedFunctions,Step)) remove(BindedFunctions,find(BindedFunctions,Step))
Index = 1 Index = 1
if Ended then if Ended then
Ended(Item) Ended(Item,1,1)
end end
end end
@ -347,7 +345,7 @@ function module.RunTween(Item,Data,Properties,Ended,OnStepped,Setter,Getter,_)
Fnc(Item,Index,Alpha) Fnc(Item,Index,Alpha)
else else
local num = tonumber(FncIndex) local num = tonumber(FncIndex)
if num and num <= Index then if num and num <= Alpha then
Fnc(Alpha,Index,Item) Fnc(Alpha,Index,Item)
CallBack[FncIndex] = nil CallBack[FncIndex] = nil
end end

View file

@ -38,7 +38,7 @@ function module.init(shared)
end end
-- mount function -- mount function
local function mount(to,this,holder) local function mount(to,this,holder,noReturn)
local thisObject = this local thisObject = this
if type(this) == "table" then if type(this) == "table" then
thisObject = rawget(this,"__object") thisObject = rawget(this,"__object")
@ -68,6 +68,7 @@ function module.init(shared)
end end
insert(child,this) insert(child,this)
end end
if noReturn then return end
return setmetatable({to = to,this = this},mountClass) return setmetatable({to = to,this = this},mountClass)
end end
new.MountOne = mount new.MountOne = mount

View file

@ -122,7 +122,7 @@ export type mounts = mount & {
Add: (self:mount,...DOM|any)->(); Add: (self:mount,...DOM|any)->();
} }
export type module_mount = { export type module_mount = {
MountOne: (to:DOM|any,object:DOM|any,holder:DOM|any?)->mount; MountOne: (to:DOM|any,object:DOM|any,holder:DOM|any?,noReturn:boolean?)->mount;
GetHolder: (item:DOM|any)->any?; GetHolder: (item:DOM|any)->any?;
} & (to:DOM|any,object:DOM|any,holder:DOM|any?)->mounts } & (to:DOM|any,object:DOM|any,holder:DOM|any?)->mounts
@ -132,7 +132,7 @@ export type module_mount = {
export type TweenOnStepped = (Item:DOM|any,Alpha:number,AbsolutePercent:number)->() export type TweenOnStepped = (Item:DOM|any,Alpha:number,AbsolutePercent:number)->()
export type TweenEnded = (Item:DOM|any)->() export type TweenEnded = (Item:DOM|any)->()
export type TweenSetter = (Item:DOM|any,Property:string,Value:Lerpable)->() export type TweenSetter = (Item:DOM|any,Property:string,Value:Lerpable)->()
export type TweenGetter = (Item:DOM|any,Property:string)->() export type TweenGetter = (Item:DOM|any,Property:string)->any
export type TweenOptions = { export type TweenOptions = {
Easing: "Linear" Easing: "Linear"
|"Quint" |"Quint"
@ -144,6 +144,7 @@ export type TweenOptions = {
|"Expo" |"Expo"
|"Elastic" |"Elastic"
|"Bounce" |"Bounce"
|"Back"
|"Exp2" |"Exp2"
|"Exp4" |"Exp4"
|EasingFunction?; |EasingFunction?;
@ -157,20 +158,21 @@ export type TweenOptions = {
} }
export type EasingFunction = {run:(number)->number,[any]:any} export type EasingFunction = {run:(number)->number,[any]:any}
export type EasingFunctions = { export type EasingFunctions = {
Linear: EasingFunction; ---직선, Linear. i=x, x=0 ~ 1 Linear: EasingFunction; ---직선, Linear. i=x, x=0 to 1
Quint: EasingFunction; ---5제곱, Quint. (^5) i=1-(1-x)^5, x=0 ~ 1 Quint: EasingFunction; ---5제곱, Quint. (^5) i=1-(1-x)^5, x=0 to 1
Quart: EasingFunction; ---4제곱, Quart. (^4) i=1-(1-x)^4, x=0 ~ 1 Quart: EasingFunction; ---4제곱, Quart. (^4) i=1-(1-x)^4, x=0 to 1
Cubic: EasingFunction; ---3제곱, Cubic. (^3) i=1-(1-x)^3, x=0 ~ 1 Cubic: EasingFunction; ---3제곱, Cubic. (^3) i=1-(1-x)^3, x=0 to 1
Quad: EasingFunction; ---2제곱, Quad. (^2) i=1-(1-x)^2, x=0 ~ 1 Quad: EasingFunction; ---2제곱, Quad. (^2) i=1-(1-x)^2, x=0 to 1
Sin: EasingFunction; ---사인파, Sin. i=sin(x*pi/2), x=0 ~ 1 Sin: EasingFunction; ---사인파, Sin. i=sin(x*pi/2), x=0 to 1
Circle: EasingFunction; ---사분원, Circle. i=sqrt(1-(1-x)^2), x=0 ~ 1 Circle: EasingFunction; ---사분원, Circle. i=sqrt(1-(1-x)^2), x=0 to 1
Expo: EasingFunction; ---지수함수, Expo. i=1-2^(-10*x), x=0~1 Expo: EasingFunction; ---지수함수, Expo. i=1-2^(-10*x), x=0 to 1
Elastic: EasingFunction; ---튀어오름, Elastic. Elastic: EasingFunction; ---탄성, Elastic.
Bounce: EasingFunction; ---통통거림, Bounce Bounce: EasingFunction; ---튀어오름, Bounce
Back: EasingFunction; ---뒤로 움직임, Back
-- Old things -- Old things
Exp2: EasingFunction; ---덜 가파른 지수. i=math.exp(x), x=-4 ~ 2 Exp2: EasingFunction; ---덜 가파른 지수. i=exp(x)/max, x=-4 to 2
Exp4: EasingFunction; ---더 가파른 지수. i=math.exp(x), x=-4 ~ 4 Exp4: EasingFunction; ---더 가파른 지수. i=exp(x)/max, x=-4 to 4
} }
export type EasingDirection = string export type EasingDirection = string
export type EasingDirections = { export type EasingDirections = {
@ -182,7 +184,9 @@ export type Lerpable = Color3|UDim|UDim2|number|Vector2|Vector3|CFrame
export type TweenHandler = ()->(); export type TweenHandler = ()->();
export type module_tween = { export type module_tween = {
EasingFunctions:EasingFunctions; EasingFunctions:EasingFunctions;
Easing:EasingFunctions;
EasingDirections:EasingDirections; EasingDirections:EasingDirections;
Directions:EasingDirections;
LerpProperties: <item>(item:item&(DOM|any),old:{[string]:Lerpable},new:{[string]:Lerpable},alpha:number,setter:(item:item&(DOM|any),property:string,value:Lerpable)->()?)->(); LerpProperties: <item>(item:item&(DOM|any),old:{[string]:Lerpable},new:{[string]:Lerpable},alpha:number,setter:(item:item&(DOM|any),property:string,value:Lerpable)->()?)->();
RunTween: (Item:DOM|any,Option:TweenOptions,Properties:{[string]:Lerpable},Ended:TweenEnded?,OnStepped:TweenOnStepped?,Setter:TweenSetter?,Getter:TweenGetter?)->TweenHandler; RunTween: (Item:DOM|any,Option:TweenOptions,Properties:{[string]:Lerpable},Ended:TweenEnded?,OnStepped:TweenOnStepped?,Setter:TweenSetter?,Getter:TweenGetter?)->TweenHandler;
RunTweens: (Items:{[number]:DOM|any},Option:TweenOptions,Properties:{[string]:Lerpable},Ended:TweenEnded?,OnStepped:TweenOnStepped?,Setter:TweenSetter?,Getter:TweenGetter?)->(); RunTweens: (Items:{[number]:DOM|any},Option:TweenOptions,Properties:{[string]:Lerpable},Ended:TweenEnded?,OnStepped:TweenOnStepped?,Setter:TweenSetter?,Getter:TweenGetter?)->();