# Cocos creator ๋ฐฐ์ ์ผ์ง
## Node ์์ง์ ๊ตฌํ
Cocos creator์์ Node๊ฐ ์์ง์ด๋ ๊ฒ์ ๊ตฌํํด๋ณด์๋ค.
### ๊ธฐํ
Typescript๋ ํจ์๋ฅผ ์ฝ๋ฉํ ๋ ํ๋ผ๋ฏธํฐ์ ํ์ ์ ์ ํด์ฃผ์ฌ์ผ ํ๋ค. ์๋ฅผ ๋ค๋ฉด
```js
function(parameter : type) {
return parameter;
};
```
์ด๋ ๊ฒ ํ๋ผ๋ฏธํฐ์ ํ์ ์ ์ ๋ ฅํด์ฃผ์ด์ผ ๋์ค์ ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์๋ฌ ์์ด ์๋ํ๋ค.
### ์ ๋ ฅ์ ๊ฐ์งํ๋ ์ด๋ฒคํธ
ํจํค์ง ๋ `cc`์์ ๊ฐ์ ธ์ด.
```js
import {systemEvent} from 'cc'
...
systemEvent.on(SystemEventType.KEY_DOWN, this.function, this)
...
```
https://docs.cocos.com/creator/1.9/api/en/classes/SystemEvent.html
`systemEvent.on()`์ด ํค๋ณด๋๋ ๋ง์ฐ์ค, ํจ๋์ ํฐ์น ๋ฑ์์ ๋ณด๋ด๋ ์ ๋ ฅ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๋ค.
`SystemEventType.EVENT`์์ ์ด๋ค ๊ฐ์ ์ ๋ ฅํ ๊ฒ์ธ์ง ์ ํ๋ค. ์๋ฅผ ๋ค๋ฉด ํค๋ฅผ ๋๋ฆ, ๋, ๋ง์ฐ์ค ๋๋ฆ, ๋, ํฐ์น ๋๋ฆ ๋ฑ.
`this.function`์์ ์ ๋ ฅํค๋ฅผ ๋ฐ๊ณ ๋ ํ ์คํ ์ํฌ ํจ์์ ์ด๋ฆ์ ๋ฃ๋๋ค.
`this`๋ฅผ ๋ฃ์ด์ฃผ์ด bind๋ฅผ ํด์ผ ์ด๋ฒคํธ๊ฐ ์๋ํจ.
### Node์ ๋ฒกํฐ ์ขํ ์ด๋
```js
import { Vec } from `cc`
private _curPos = new Vec3();
private num, num2, num3;
this.node.getPosition(this._curPos)
Vec3.add(this._curPos, this._curPos, new Vec3(num, num2, num3));
this.node.setPosition(this._curPos);
```
`this.node.getPosition(Vec3())`๋ก Node์ ์ ์ฅ๋์ด์๋ ๋ฒกํฐ ๊ฐ์ ๋ถ๋ฌ์์ค๋ค. ๋ง์ฝ ๋ถ๋ฌ์์ฃผ์ง ์์์ ๋ ํค๋ฅผ ์ ๋ ฅํด ๋ ธ๋๋ฅผ ์์ง์ฌ๋ณด์๋๋ฐ ์ฒซ๋ฒ์งธ ํ๋ฒ ์ ๋ ฅ์ด ๋๋ฒ ์ ๋ ฅ๋์๋ค.
`Vec3.add(curPos, tarPos, addedPos)`๋ก ์ด๋์ํฌ ์ขํ๋ฅผ ์ ๋ ฅํ๋ค. ๊ฐ ํ๋ผ๋ฏธํฐ๋ ๋ฒกํฐ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค. ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ํ์ฌ ์ขํ๊ฐ์ ๋ฃ์๋๋ฐ ๋ ๊ฐ์ ์ฐจ์ด์ ์ ์์ง ์ดํด ๋ชปํจ. 3๋ฒ์งธ ํ๋ผ๋ฏธํฐ ๋ฒกํฐ์ x, y, z ๊ฐ์ ๊ฐ๊ฐ ์ ๋ ฅํด ์ผ๋ง๋ ์ด๋ํ ์ง ์ ํ๋ค.
`this.node.setPosition(curPos)`๋ก ์ต์ข ์ ์ผ๋ก ์ด๋ํ ๋ฒกํฐ ๊ฐ์ ์ ์ฅํด์ค๋ค.
### ์์ง์์ ์ํํ ํจ์์ ์์น
์์ง์ด๋ ํจ์ `move()`๊ฐ ์๋ค๊ณ ํ์. ์์ง์์ ํค๋ณด๋์ ์ ๋ ฅ์ ๊ฐ์งํ๊ณ ์๊ฐ์ด ํ๋ฅด๋ ๋์ ์คํฌ๋ฆฝํธ์ ์ํ๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ๋ `update()`์ ์ํด ๋ฒกํฐ์ ์ขํ ๊ฐ์ด ๋ณํ๋ค. ์ฆ,
1. ํค ์ ๋ ฅ๋์ด ํจ์ ์คํ
2. `update()`ํจ์์ ์ํด ์๊ฐ๋ง๋ค ํจ์ ์คํ
์ด๋ ๊ฒ ๋ ๊ณณ์์ ํจ์๊ฐ ์คํ๋๋๋ฐ ํจ์๊ฐ ์ํ๋๋ ์์น๋ ์ด๋ ๊ณณ์ ํด๋ ์๊ด ์๋ค.
๋จ, `systemEvent.on(SystemEventType.KEY_DOWN, this.function, this)` ์ด๋ฒคํธ ๊ฐ์ง์์๋ ์ด๋ค ํค๊ฐ ์ ๋ ฅ๋์๋์ง๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๊ณ
`update(deltaTime : number)`์์๋ ์๊ฐ ํ๋ฆ์ ๋ฐ๋ฅธ ๋ธํ ์๊ฐ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋๋ค.
๊ทธ๋์ ์ด๋ค ํค ๊ฐ์ ๋ฃ์ด ์ด๋ ์๊ฐ ๋งํผ n๋งํผ์ ์ขํ๊ฐ ์ด๋์ด ๋์๋ค๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด ๋ ํ๋ผ๋ฏธํฐ ๋ชจ๋๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ ธ๊ฐ์ผ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฏธ๋ฆฌ ๋ณ์๋ฅผ ์ ์ธํ์ฌ ์ด๋ฒคํธ๊ฐ ์คํ๋์์ ๋ ์ ์ฅํ๋ค.
```js
private _keycode;
onKeyup(e: EventKeyboard) {
this._keycode = e.keyCode;
}
update(deltaTime: number) {
// ํค ๊ฐ์ ํ์ ์ number์ง๋ง ์๋ฅผ ๋ค๊ธฐ ์ํด string์ผ๋ก ํจ
if (this._keycode = 'left') {
movePostionBy(deltaTime);
}
}
```
์ฝ์ฝ์ค๋ก๋ ์ฒซ ํ๋ก์ ํธ์ด๊ณ ๊น์ผ๋ก ๊ด๋ฆฌํ ๊ฑฐ์ผ. ๊ทธ๋ฐ๋ฐ ์ฉ๋์ด ๋ง์ ์์
๋ค์ ์ด๋ป๊ฒ ๊ด๋ฆฌํจ? ์ผ๋จ์ ์์
ํด๋ ์์ src ํด๋ ๋ง๋ค์ด์ ๊ฑฐ๊ธฐ ์์ ๋ณด๊ดํ๊ณ ๊น์๋ ๋ฃ์ด๋์ง ์๊ฒ๋ ํ์.
์์ผ๋ก ๋ฐฐ์์ ๊ธฐ๋กํ๋ฉด์ ๋ง๋ค์ด๋์ ๋ ํฌ์งํ ๋ฆฌ์ ๋ฌธ์๋ก ์ ์ฅํ ๊ฑฐ์ผ
์๋๋ ํ๋ก์ ํธ ๊น ์ฃผ์
TestProject/DEVNOTE.md at master ยท jacobkim9881/TestProject (github.com)
์ฝ์ฝ์ค ๋ถ์ ์จ๋ค..
์จ๋ค...
์ฉ๋๋ง์ ์์ ? ๊ฒฐ๋ก ์ ๊ทธ๋ฅ ๋ค ์ปค๋ฐํด๋ ๋ผ. ๋ณด๋๊น ํผ์ํ๋ ํ๋ก์ ํธ๊ณ , ์ฒซ ํ๋ก์ ํธ๋๊น ์ฉ๋ ์ปค๋ดค์ ๋ช ์ญ๋ฉ๊ฐ์ ๋ ์ผํ ๋ฐ, ๊ทธ ์ ๋๋ ๊ทธ๋ฅ ์ปค๋ฐํด๋ฒ๋ ค๋ ๊ด์ฐฎ์. ์๋ ์ฉ๋ ๋ง์ ํ์ผ์ git-lfs(lfs๋ Large File Storage๋ผ๋ ๋ป)๋ผ๋ ํ๋ฌ๊ทธ์ธ์ ์ด์ฉํ๋ผ๊ณ ํ๋๋ฐ, ์ด๊ฒ ๋ณ๋๋ก ๊น์์ผํ ๊ฒ๋ ์๊ณ ๊นํ์์ ์ฐ๋ ค๋ฉด ์ด๊ฒ ์ฉ๋ ์ข๋ง ๋ง์ด ์ง๋ฉด ์๊ตฌ๋ ๋ฃ๋ฅผ ๋ด์ผํ๋๋ฐ๋ค, git ๊ด๋ จ ๋ช ๋ น์ ํ ๋ ๋ค๋ฅธ ํ์ผ์ด๋ ๋ณ๋๋ก ๋ฐ๊ณ ์ฑํฌํ๋ ์์ ์ด ์ค๊ฐ์ ์ถ๊ฐ๋๋ ๋ฐฉ์์ด๋ผ ์กฐ๊ธ ๋ถํธํจ.
์ผ๋จ์ ์ปค๋ฐํด๋์ด. ์ผ๋จ ๊ฐ์ดํ๋ ํ๋ก์ ํธ๊ฐ ์๊ธฐ๋ฉด ๊ทธ ๋ ๋ค์ ๊ณ ๋ฏผํด๋ ๋ฆ์ง ์์ ๊ฑฐ ๊ฐ์ git-lfs๋ผ๋ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ด ์ข์๋ณด์ธ๋ค ์ข์ ์ ๋ณด ๊ณ ๋ง์