所以Ive得到這個代碼:AS3 VAR不聽x--
function speedUp():void
{
trace ("speed", playerSpeed);
//checks if any boosts are on
if (boostCheck == false) {j = playerSpeed}
//making speed limit
if (playerSpeed < speedLimit)
{
playerSpeed ++;
}
//increasing speed limit
if (speedLimitInc == 100)
{
speedLimit++;
speedLimitInc = 1;
}
trace ("______________j", j);
speedLimitInC++;
if (boostCheck == true)
{
for (var i:int = boost.length-1; i>=0; i--)
{
var tempBoostN:int = boost[i];
trace ("__________tempBoostN", tempBoostN);
if (tempBoostN >= 0)
{boostCheck = true; colBoolean = false; tempBoostN--;}
else
{
boostCheck = false;
player.y = player.height + 30;
colBoolean = true;
}
if (playerSpeed >= j)
{
if (tempBoostN >= 150)
{
playerSpeed = playerSpeed -1;
} else if (tempBoostN <= 150 && tempBoostN >= 30) {
playerSpeed = playerSpeed - 2;
}
tempBoostN--;
}
}
}
}
即時得到一個問題tempBoostN
變量,多點,其不聽命令。當var是200(定義爲int),我做tempBoostN--
就像你在代碼中看到的一樣,它只是保持200.
我試着將var定義爲一個數字等等。但它保持不變一樣。 我也檢查了200實際上是一個數字不是一個字符串(如果var是int它不能保存一個字符串,對吧?)通過做trace(temBoostN - 1);
並且工作。
碼說明: 函數處理playerSpeed,首先它通常的行爲(增加速度和東西)。 之後(我遇到問題的部分)會檢查是否激活了加速,並且在加速停用時,它會將速度降低到正常速度。 var j持有playerSpeed而沒有任何提升,用於檢查提升是否用完。
所有在代碼中的var定義和正常工作。
謝謝,我做了tempBoostN一個數字而不是整數,重新分配數組,現在它的工作。再次感謝! – Dominiko
順便說一句,你不需要改變類型,如果你重新分配......如果你同時使boost [i]和tempBoostN成爲一個數字,那麼就不需要重新分配。 – catholicon