2015-10-31 17 views
1

嗨我試圖在遊戲中計算我的積分。我剛剛開始使用JavaScript並使用CreateJS。我的問題是我不知道如何在同一時間使用股票和點擊事件。它不工作...試圖在javascript中使用Easeljs來計算積分

function init(){ 
 
\t 
 
\t var stage = new createjs.Stage("myCanvas"); 
 
\t stage.mouseEventsEnabled = true; 
 

 
    createjs.Ticker.interval = 1500; 
 
\t createjs.Ticker.addEventListener("tick", handleTick); 
 
\t 
 
\t var statPoint = new createjs.Text("Punkte:", "bold 20px Arial",  "#000000"); 
 
\t statPoint.x = 750; 
 
\t 
 
\t var currentPoints = new createjs.Text("0", "20px Arial", "#000000"); 
 
\t currentPoints.x= 850; 
 
\t 
 
\t var victim = new createjs.Bitmap("Opfer.png"); 
 
\t victim.scaleX = 0.4; 
 
\t victim.scaleY = 0.4; 
 
\t 
 
\t stage.addChild(statPoint); 
 
\t stage.addChild(currentPoints); 
 
\t stage.addChild(victim); 
 

 
    victim.addEventListener("click", handleClick); 
 
\t 
 
\t function handleTick(event){ 
 
\t \t victim.x = 850*Math.random(); 
 
\t \t victim.y = 550*Math.random(); 
 
\t \t stage.update(); 
 
} 
 
\t function handleClick(event){ 
 
\t \t currentPoints.text = parseInt(currentPoints.text + 1); 
 
\t } 
 
}

+0

爲什麼要在滴答聲中添加點擊事件?這不必要地增加了聽衆。您應該在初始化時添加一次。我也不推薦再次調用handleTick()方法,如果你得到的數字超出範圍 - 因爲它會導致額外的'stage.update()',這可能是昂貴的。爲什麼不使用Math.random()* 850? – Lanny

+0

是的,你是對的。我改變了它,但它也不起作用。 – Feilx

回答

0

你可能會處理範圍的問題。你已經定義了你的victimcurrentPoints變量,使用var裏面的這個init方法,所以它只在那裏可用。這意味着您的handleTick和​​方法無法訪問這些變量。您的控制檯中可能存在未定義的錯誤。

更改要在init方法之外聲明的變量,並且它們將在處理程序方法中可訪問。

var currentPoints, victim; 
function init() { 
    // Other code 
    currentPoints = values; 
    victim = value; 
}