我使用HTML5畫布和jCanvaScript庫創建一個簡單的遊戲。點擊事件沒有響應或無法預測(jCanvaScript)
//JavaScript
function start() {
jc.start("drawingCanvas", 380);
text = jc.text('score: ' + score, 10, 10);
clock = jc.text(round/2, 285, 145);
var millisecondsToWait = 500;
inter = setInterval(nextRound, millisecondsToWait);
}
function nextRound() {
round--;
if(round % 2 == 0){
clock.string(round/2);
}
if (round == 0) {
endGame();
} else {
draw();
}
}
function draw() {
var shape = jc.circle(random() * 300, random() * 100, random() * 10, randomRgba(), 1);
shape.click(destroy);
shape.animate({
x : random() * 300,
y : random() * 100,
radius : random() * 100
}, random() * 2000);
}
function destroy() {
score += Math.round(100 - this._radius);
text.string('score: ' + score);
this.color('#ff0000');
this.animate({
radius : 0
}, 1000);
}
的HTML是太容易了:
<!DOCTYPE HTML>
<html>
<head>
<script src="http://jcscript.com/data/js/jCanvaScript.1.5.18.min.js"></script>
<script src="js/canvasWithLibraries.js"></script>
<link rel="stylesheet" href="css/canvaslib.css" />
<title>Canvas with libraries demo</title>
</head>
<body>
<canvas id="drawingCanvas">your browser does not support the canvas element</canvas>
</body>
</html>
問題:
正如你可以從代碼中看到,每次我點擊一個形狀,形狀應該變成紅色,成長直到它消失爲止。 這似乎是有效的,有時。 當您測試此代碼時,您會注意到點擊看起來似乎在不同的形狀上響應,或者根本不響應,或者只是隨機響應。 有沒有人有一個想法是什麼問題?
我猜這是全部在一個線程上,並且循環不會被正確中斷。
與本地副本,我不認爲這是你的代碼搞亂後,我認爲它的圖書館以及如何處理每個對象的單擊事件。對象被分配到圖層,並且在點擊圖層時它看起來可能會很挑剔,如果這些圖層中有很多圖層的話。 – Loktar
嘿感謝您花時間。那麼我必須嘗試一個不同的庫。皮蒂,這個很簡單。 – Yoeri
我發現了問題,看到我的回答 – Yoeri