웹 게임을 만들며 배우는 자바스크립트
웹 게임을 만들며 배우는 자바스크립트
수강정보
(35개의 수강평)
6028명의 수강생
스킬태그 #Javascript, #게임개발
무료
지식공유자 : 조현영
114회 수업 · 총 22시간 3분 수업
기간 : 평생 무제한 시청
수료증 : 미발급 강의
수강 난이도 : 초급
김쏘 프로필

후기 게시판은 따로 없나요?.? 김쏘 5일 전
이걸 질문 게시판에 올려도 되는가 걱정이네요ㅠㅜㅜ 우연히 찾아 듣게 되었는데 마냥 변수는 뭐다 함수는 뭐다 하는 딱딱한 설명이 아닌 이런걸로 이런 걸 만들 수 있다 라는 설명과 게임 제작이라는 최종 목표가 있어 공부에 재미가 붙어지네요. 다 수강후 후기라도 좋게 남기고 싶었는데 후기 게시판이 따로 있는 거 같지가 않아 궁금해져서 올려봤어요. 수업에 관련된 질문은 아니라 혹시 실례가 됐다면 삭제하겠습니다! 좋은 강의 올려주셔서 너무 감사하고 앞으로도 하시는 일 잘 되시길 바랄게요 :D

1
샤브샤브 프로필

어떻게 인덱스가 출력이 되는건지 이해가 안됩니다ㅠㅠ 샤브샤브 7일 전
forEach에 들어간 함수에서 인덱스가 대체 어떻게 출력되는건지 이해가 잘 안됩니다ㅠㅠㅠ2번째 파라미터로 넣어준건 자동으로 인덱스가 되는건가요??

1
우닌 프로필

끝말잇기 구현에서 word부분 이요. 우닌 9일 전
알려주신 대로 두가지 방법 다 사용해 봤을 때,  word가 변수인데, 저는 '끝말잇기'로 두고  word부분을 다 변수로 지정해놓은 값으로 해도 된다시길래  변경했더니 끝말잇기가 안된고, '끝말잇기'만 나오더라구요. 그래서 word라고만 치는 게 맞는지? 궁금합니다. 

2
pos7271 프로필

다른 방식으로 해봤는데 flipped 구현이 안돼요 ㅠㅠ pos7271 27일 전
const cardList = document.querySelectorAll('.card'); const cardBack = document.querySelectorAll('.card-back'); const new_candi = ['red', 'red', 'orange', 'orange', 'yellow', 'yellow', 'pink', 'pink', 'blue', 'blue', 'black', 'black']; let color_candi = new_candi.slice(); let color = []; let clickflag = true; let click_card = []; let right_card = []; let start_date; let end_date; function shuffle () {     for (let i =0; color_candi.length > 0; i ++) {        color = color.concat(color_candi.splice(Math.floor(Math.random() * color_candi.length), 1));     } } function cardSetting() {     clickflag = false;     for (let i =0; i < 12; i ++) {         cardBack[i].style.backgroundColor = color[i];     }     for (const card of cardList) {         card.addEventListener('click', function(){             if(clickflag && !right_card.includes(card)) {             card.classList.toggle('flipped');             click_card.push(card);             if (click_card.length === 2) {                 if (click_card[0].querySelector('.card-back').style.backgroundColor === click_card[1].querySelector('.card-back').style.backgroundColor) {                     right_card.push(click_card[0]);                     right_card.push(click_card[1]);                     click_card = [];                     if (right_card.length === 12) {                         end_date = new Date().valueOf();                         swal("성공입니다!", + ((end_date - start_date) / 1000) + "초 걸렸습니다.") ;                         color_candi = new_candi.slice();                         color = [];                         right_card = [];                         start_date = null;                         end_date = null;                         console.log(new_candi, color, right_card, start_date, end_date, click_card);                         shuffle();                         cardSetting();                     }                 } else { //두 카드의 색상이 다르면                     clickflag = false;                     setTimeout(function() {                         click_card[0].classList.remove('flipped');                         click_card[1].classList.remove('flipped');                         clickflag = true;                         click_card = [];                     }, 1000);             }           }         }       });     };     cardList.forEach(function (card, index) {         setTimeout(function() {             card.classList.add('flipped');         }, 1000 + 100 * index);     });     setTimeout(function() {         cardList.forEach(function (card) {             card.classList.remove('flipped');         });         clickflag = true;         start_date = new Date().valueOf();         console.log(start_date);     }, 5000); } shuffle(); cardSetting();

1
디오다오다요 프로필

숫자가 고정되어서 한가지숫자만 반복해서 나와요 ㅠ 디오다오다요 28일 전
var 숫자1=Math.floor(Math.random()*9)+1 var 숫자2=Math.floor(Math.random()*9)+1 그냥 Math.floor(Math.random()*9)+1 는 랜덤으로 수가 나오는데 var 숫자1=Math.floor(Math.random()*9)+1 로 하면 한 숫자만 계속 고정해서 나옵니다.  왜 그런걸까요??ㅠㅠ

3
pos7271 프로필

질문있습니다. pos7271 1달 전
선생님 저는 js로 div를 안만들고 html으로 구현을 한 상태입니다. 랜덤으로 색을 뽑아서 뒷배경에 넣어줘야하는데 안들어갑니다 ㅜㅜ 어떤식으로 구현해야할까요..? function colorSetting() {     for (let i =0; i < 12; i ++) {         cardBack.style.backgroundColor = color[i];     }     for (const card of cardList) {         card.addEventListener('click', function(){             card.classList.toggle('flipped');         });     } }  html으로 card 12개를 다 작성한 상태라 queryselectorAll으로 가져와서  for of해줬습니다 ,, 뒤집는 건 문제없이 되는데 뒷배경 색상적용이 안됩니다..!

5
pos7271 프로필

저는 new Date()하면 왜 숫자가 안나오죠,.? pos7271 1달 전
Sun Aug 23 2020 01:09:32 GMT+0900 (대한민국 표준시) 이런값이 반환되는데요..ㅠ

2
pos7271 프로필

대각선 검사할 때 pos7271 1달 전
7:35초 if문으로  두개 따로 안두고 || 대신 && 이걸로 하면 되는거아닌가요?

1
김성욱 프로필

중급강좌 관련 질문이요 김성욱 1달 전
중급강좌 얘기 많이 해주셨는데 강의 제작 예정이신가요?

1
김다솜 프로필

children이 호출이 안되요ㅠㅠ 김다솜 1달 전
안녕하세요 선생님 강의랑 조금 다른 방식으로  btn.addEventListener("click", makeArray); 에서 table안에 tr, td 만드는 makeArray함수호출하고 (참고로 tbody같은 html요소들은 makeArray밖의 맨위에 이미 특정해놨어요) 이 함수안에서 randomNumberForDigging(horiz, verti, numMine);로 폭탄위치정할 랜덤 Array 만드는 함수 호출을 하는데 이상한것이 makeArray함수에서는 tbody.children[특정n]하면 호출되는데 randomNumberForDigging이 함수에서는 호출이 안되요. 근데 randomNumberForDigging여기서 console.log(tbody.children[특정n])은 undefined인데 console.log(tbody.children) 은 htmlcollection이라며 호출이 되요..이틀동안 원인을 찾고있는데 모르겠어요ㅠㅠ

1
이은지 프로필

이스케이핑할때 이은지 2달 전
Var string = '\'string\'';String;  입력시"'string'"으로 나오는데, 이해가 안됩니다.. 이스케이핑의 다른 예시를 알고싶습니다ㅠㅠ

1
서진웅 프로필

가위바위보 강의를 보면서 질문이 있습니다. 서진웅 2달 전
안녕하세요 제로초님 강의 잘 듣고 있습니다. 가위바위보 강의를 들으면서 코드를 직접 쳐보고 테스트를 해보았는데, 해결되지 않는 부분이 있어서 질문드립니다. 가위,바위,보 버튼을 누를 때 clearInterval을 시키고 1초 딜레이 이후에 인터벌을 다시 실행하는 코드에서 (아래는 깃허브에 제로초님 코드를 가져왔습니다.) var 인터벌; function 인터벌메이커() { 인터벌 = setInterval(function () { if (이미지좌표 === 가위바위보.바위) { 이미지좌표 = 가위바위보.가위; } else if (이미지좌표 === 가위바위보.가위) { 이미지좌표 = 가위바위보.보; } else { 이미지좌표 = 가위바위보.바위; } document.querySelector('#computer').style.background = 'url(https://en.pimg.jp/023/182/267/1/23182267.jpg) ' + 이미지좌표 + ' 0'; }, 100); } 인터벌메이커(); document.querySelectorAll('.btn').forEach(function(btn) { btn.addEventListener('click', function() { clearInterval(인터벌); // setInterval 중지 setTimeout(function() { 인터벌메이커(); }, 1000); }); }); 이렇게 되어있는데 가위,바위,보 버튼을 연속적으로 빠르게 누르다 보면 인터벌메이커() 함수가 중첩으로 실행이 되어서 결국에는 1초 딜레이 무효화되는 현상을 보게 되었는데 어떻게 하면 제대로 구현할 수 있을지 여쭤봅니다. 제 생각에는 clearInterval 메소드 안에 setTimeout을 넣어봐서 실행하면 되지 않을까 했는데(아래 코드 처럼) document.querySelectorAll('.btn').forEach(function(btn) { btn.addEventListener('click', function() { clearInterval(인터벌, setTimeout(function(){ 인터벌메이커(); }, 1000)); }); 여전히 안되더라구요

1
bklove4488 프로필

appendchild 사용이유?? bklove4488 2달 전
안녕하세요 제로초님 강의정말잘보고있습니다. append 대신에 appendchild 사용이유가있을까요? append로도 똑같이 실행이되서요... 

1
dlgydlf12345 프로필

카드 짝맞추기 호환성 질문 dlgydlf12345 2달 전
카드짝맞추기 만들고, 깃허브에 올려서 핸드폰으로 돌려봤는데요, 안드로이드, 크롬, 엣지, 파이어폭스에선 잘 돌아가는데 아이폰에서만 안돌아가는데 인터넷찾아봤는데 잘 안나오더라구요, 해결방법 질문드립니다..

2
dlgydlf12345 프로필

두개의 차이가 뭔가요?? dlgydlf12345 2달 전
cancleTime = setTimeout(function () {       screen.click();       startTime = new Date();     }, Math.floor(Math.random()) * 1000 + 2000); cancleTime = setTimeout(function () {       startTime = new Date();       screen.click();     }, Math.floor(Math.random()) * 1000 + 2000); 이 두개의 차이가 있나요?? 위에 순서로 하면 setTimeout이 작동을 안하고, 아래 순서로 하면 정상적으로 작동하네요,.

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스