안녕하세요.
아래코드는, 클릭 유지 시 console.log('내려와'); 콘솔창에 여러번 출력되지만,
dino.y += 2; 실행은 안 되고 있습니다.
클릭 유지 시 계속, if (점프중 == true && dino.y>150){ 내려오면 수가 커지니까 다시
dino.y-=3; 가 연속 적용되어 내려오지 못하는 것 같습니다. 도움 부탁드립니다..
if (점프중 == true && dino.y>150){ dino.y-=3; if (!soundPlayed) {
jumpSound.play(); soundPlayed = true}}
if(dino.y<=150){if(dino.y < 280){ dino.y += 2;console.log('내려와');}}
if (점프중 == false) { if (dino.y < 280){ dino.y+=3 }
soundPlayed = false}}
document.addEventListener('keydown', e=> {
if ((e.code === 'ArrowUp'|| e.code === 'Space')&& 키눌림 == false)
{ 점프중 = true;키눌림 = true;console.log('몇번동작')}})
document.addEventListener('keyup', e => {
if (e.code === 'ArrowUp' || e.code === 'Space') { 점프중 = false}});
var 점프중 = false; var 키눌림 = false;
byframe();
아래는 다른 방식으로 적용해보았으나,
function jump() {
if (!soundPlayed){jumpSound.play(); soundPlayed = true};
if (dino.y > 150) { dino.y -= 3;console.log('올라와'); }
setTimeout(function down(){console.log('내려와');
if(dino.y < 280){ dino.y += 3}}, 400);
} 제가 setTimeout 사용을 안 하면, JS 동시처리로, 공룡 최후모습 dino.y 280 만 보여져서
시간의 텀을 두려 장치하였습니다. 그러나 이 방법 역시 원하는 결과물이 아니였습니다.
document.addEventListener('keydown', e=> {
if ((e.code === 'ArrowUp'|| e.code === 'Space')&& 키눌림 == false){
점프중 = true; jump();키눌림 = true;console.log('몇번동작')}})
document.addEventListener('keyup', e => {
if (e.code === 'ArrowUp' || e.code === 'Space') { 점프중 = false}});
var 점프중 = false; var 키눌림 = false; }
byframe();
감사드립니다.