시작하기 전에이 게시물에서 볼 수있는 코드의 가능성에 대해 사과드립니다. 이것은 내가 고치려고했던 것 중에 가장 귀찮은 버그이다. 나는 몇 시간 동안 일해 왔고, 나는 아직 아무것도 찾지 못했습니다.수학 방정식에 대한 자바 스크립트 문제
나는 두 개의 자바 스크립트 변수를 가지고 있는데 하나는 addfood
이고 다른 하나는 clicks
입니다.
(addBPS
) 아래의 제 함수 및 변수 addfood
clicks
의 번호를 받아 다시 변수 clicks
의 합을 재 할당한다.
함수의 다음 청크는 div에서 세는 숫자의 애니메이션 만 실행합니다. div의 숫자를 읽고 변수 clicks
의 새 번호까지 "애니메이션"합니다.
이 0보다 큰 경우 함수 뒤에있는 문이 if
함수를 실행합니다. 또한 매초마다 addBPS
기능을 실행합니다. 마지막으로 if
문은 first
이라는 변수를 정의하고이를 true로 설정합니다.
버튼을 클릭 할 때 실행되는 다음 함수는 변수 addfood
을 재 할당하고 숫자 add
(함수의 변수)을 모두 추가합니다.
다음 줄은 비슷한 것을 수행하고 변수 clicks
을 다시 할당하고 숫자 cost
(함수의 변수)을 뺍니다.
내가 생각하는 마지막 if 문은 매우 자명합니다. 변수 addfood
이 0보다 큰 경우 함수 addBPS
이 실행됩니다. 그런 다음 변수 first
이 true가 아닌 경우에만 addBPS
함수에 대해 setInterval
을 실행합니다.
기능 addBPS
는 상관없이 매 초마다 실행되지 않습니다 ... 문제가 어디에서 오는
var addfood = 5;
var clicks = 123;
function addBPS() {
clicks = Number(clicks) + Number(addfood);
// Countup animation
$({countNum: $('#current').text()}).animate({countNum: Number(clicks)}, {
duration: 1000,
easing:'linear',
step: function() {
$('#current').text((Math.floor(this.countNum)));
},
});
}
if(Number(addfood) > 0) {
addBPS();
setInterval(addBPS, 1000);
var first = true;
}
function upgradeGame(id, level, cost, add, user) {
addfood = Number(addfood) + Number(add);
clicks = Number(clicks) - cost;
if(Number(addfood) > 0) {
addBPS();
if(first != true) {
setInterval(addBPS, 1000);
}
}
}
그래서 지금 여기 (변수 first
은 라인 (19)에 사용되는 볼 수있다). 매초마다 addfood
의 값을 clicks
에 계속해서 추가해야합니다.
addfood
의 값이 1 이상이면 코드가 완벽하게 작동합니다. 그러나 addfood
의 값이 0 일 때 변수를 변경하고 단추를 사용하여 변수를 변경하면 코드 대신 addfood
의 값을 clicks
에 계속 추가하는 대신 변수를 추가하고 매번 SQUARES addfood
의 값
예 :
기본 :
addfood = 0;
var clicks = 0;
한 addfood
에 추가 :
addfood = 1;
var 클릭 수 (1 초 후) = 1;
이 addfood
에 추가 :
addfood = 2;
var 클릭 수 (1 초 후) = 4;
세 addfood
에 추가 :
addfood = 3;
var 클릭 (1 초 후) = 9;
내가 무엇을 기대 :
기본값 :
addfood = 0;
var clicks = 0;
한 addfood
에 추가 :
addfood = 1;
var 클릭 수 (1 초 후) = 1;
이 addfood
에 추가 :
addfood = 2;
var 클릭 (1 초 후) = 2;
세 addfood
에 추가 :
addfood = 3;
var 클릭 수 (1 초 후) = 3;
그러나 내가 말한 것처럼 addfood
의 초기 값이 1이면 코드가 정상적으로 작동합니다. 0 일 때 단추를 사용하여 addfood
값을 변경하면 예상 값이 제곱됩니다. 왜 이런 일이 일어나는 걸까요?
디버그 프로세스를 완화하기위한 [jsfiddle] (http://jsfiddle.net/)를 만들 수 있습니까? – terales