일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 키다리 개발 일지
- React calculator
- scope
- web
- html
- Element
- props
- 볶음밥
- Node.js
- React.js
- javascript
- ecma
- 시맨틱
- closure
- 키다리 개발자
- 키다리의 개발일지
- ES6
- CSS
- wep
- 노드
- includes
- Rendering
- jsx
- component
- vue.js
- map
- react
- DoM
- tag
- 회고록
- Today
- Total
키다리 개발자
node.js 터미널 기초, 타이머 함수(setTimeout, setInterval, clearTimeout, clearInterval) 본문
node.js 터미널 기초, 타이머 함수(setTimeout, setInterval, clearTimeout, clearInterval)
JunBucks 2019. 10. 26. 18:31타이머 함수는 원하는 시간을 스케쥴링하여 함수를 호출하는 기능을 갖고 있습니다.
함수 내에는 호출될 함수 내 코드와 시간을 입력합니다. (1000ms = 1 second)
ex) 3초 후에 호출하고 싶으면 3000을 입력하면 됩니다.
setTimeout(function() {
// Code here }
, delay);
일정 시간 후에 함수를 단 한번 호출한다.
setInterval(function() {
// Code here }
, delay);
일정 시간마다 반복하여 함수를 호출합니다.
단, 함수 내 사용 시 함수 내 반복 기준으로도 반복되므로 주의해야 한다.
clearTimeout();
setTimeout함수를 중단 및 삭제한다.
clearInterval();
setInterval 함수를 중단 및 삭제한다.
node.js = Javascript 개발환경
node.package manager
= NPM
= node를 사용하는데 필요한 패키지들을 사용할 수 있게 해 준다.
터미널 실행
PS C:\Users\키다리\Desktop\abc> npm run start
npm run start을 입력하면 터미널이 실행되어 출력된다.
밑에부터는 node.js 터미널로 실습한 예제(MudGame)를 일부분씩 설명하겠습니다.
index.js 파일에 class객체 불러오기
1
2
3
|
const gameloop = require("node-gameloop");
const HeroShape = require("./sources/hero");
const MonsterShape = require("./sources/monster");
|
require("파일 경로");
Hero.js 파일
1
2
3
4
5
6
7
8
9
|
class Hero {
constructor(hp, damage, shield, potion, name) {
this.hp = hp;
this.damage = damage;
this.shield = shield;
this.potion = potion;
this.name = name;
}
}
|
class와 constructor는 한 개씩이다.
class Hero는 틀과 같다.
constructor는 index.js의 Argument에서 Parameter로 값을 받아 해당 this. 에 사용된다.
1
2
3
4
5
6
|
attack(target) {
console.log(
`${this.name}이 ${target.name}에게 ${this.damage}의 데미지를 입혔습니다.`
);
target.beHit(this.damage);
}
|
또한 class 파일 내 함수를 선언할 때에는 함수명을 바로 써준다.
그리고 템플릿 문자열 및 백 틱을 이용하여 this. 또는 파라미터 값을 받았다.
1
|
module.exports = Hero;
|
그리고 맨 마지막 줄에 module.exports 해주어야 다른 js파일에서 받아 올 수 있다.
터미널 출력 값
재미있게 텍스트로 그림을 그려보았습니다.
이런 방식으로 MudGame을 만들어 볼 수 있습니다.
index.js 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
const gameloop = require("node-gameloop");
const HeroWShape = require("./sources/Hero");
const MonsterShape = require("./sources/monster");
const DisplayShape = require("./sources/display");
const Display2Shape = require("./sources/display2");
const Hero = new HeroWShape(100, 5, 3, 30, "Jun");
const Monster = new MonsterShape(100, 8, 5, "Devil");
const Display = new DisplayShape(100, 5, 3, 30, "Jun");
const Display2 = new Display2Shape(100, 8, 5, "Devil");
function enter() {
console.log("");
}
let timeOut = null;
let frameCount = 0;
const id = gameloop.setGameLoop(function(delta) {
console.clear();
Display.attack(Display2);
Display2.attack(Display);
Hero.attack(Monster);
enter();
Monster.attack(Hero);
if (Hero.hp <= 0 || Monster.hp <= 0) {
clearTimeout(timeout);
} else if (Display.hp <= 0 || Display2.hp <= 0) {
clearTimeout(timeout);
}
}, 1000 / 3);
setTimeout(() => {
Hero.heal();
Display.heal();
}, 2000);
let sum = 1000;
for (let i = 0; i < 4; i++) {
setTimeout(() => {
Monster.defence();
Display2.defence();
}, sum);
sum += 2000;
}
timeOut = setTimeout(function() {
console.log("2000ms passed, stopping the game loop");
gameloop.clearGameLoop(id);
}, 10000000);
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
hero.js 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
class Hero {
constructor(hp, damage, shield, potion, name) {
this.hp = hp;
this.damage = damage;
this.shield = shield;
this.potion = potion;
this.name = name;
}
attack(target) {
console.log(
);
}
defence() {
console.log(this.shield);
}
beHit(damage) {
console.log(
);
}
heal() {
}
}
module.exports = Hero;
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
monster.js 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
class Monster {
constructor(hp, damage, shield, name) {
this.hp = hp;
this.damage = damage;
this.shield = shield;
this.name = name;
}
attack(target) {
console.log(
);
}
defence() {
}
beHit(damage) {
}
}
module.exports = Monster;
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
node.js 터미널 기초, 타이머 함수(setTimeout, setInterval, clearTimeout, clearInterval)
'node.js' 카테고리의 다른 글
node.js환경에서 Javascript를 이용한 웹 만들기(투명 스크롤) (0) | 2019.11.28 |
---|---|
Git bash로 node.js시작 / 터미널 창 기본 명령어 / version 이해하기 (0) | 2019.11.02 |