2013-03-26 27 views
0

我正在使用書籍「基礎HTML5動畫與JavaScript」中的示例創建支持觸摸的遊戲。本書中的示例之一顯示了基本的觸摸功能,但不能完全適用。是的例子http://jsfiddle.net/yrXCN/3/使用touchstart事件無法識別碰撞

鏈接據,如果你碰球內的畫布上,應該「在球:touchstart」記錄消息下方的功能。不過,我還沒有做它的工作將認識到球的時候你進入它,但由於某種原因,它不會識別第一次觸摸。

如果我更改代碼以使用鼠標偵聽器,它的工作原理如下

canvas.addEventListener('touchstart', function (event) { 
    event.preventDefault(); 
    if (utils.containsPoint(ball.getBounds(), touch.x, touch.y)) { 
     log.value = "in ball: touchstart"; 
    } else { 
     log.value = "canvas: touchstart"; 
    } 
    }, false); 
+0

你們是不是在你的桌面瀏覽器中運行這個設置touch.xtouch.y的touchstart事件中解決這個問題?觸摸事件在觸摸屏設備(如手機)上觸發。 – Chad 2013-03-26 16:11:03

+0

我正在測試我的手機。對不起,我應該提到它需要在移動設備或模擬器上進行測試。 – Matt 2013-03-26 16:12:47

回答

0
element.addEventListener('touchstart', function (event) { 
    touch.isPressed = true; 
    touch.event = event; 
}, false); 

如果「touchstart」是在你的球touch.xtouch.y解僱是不確定的,所以你不承認對球的觸感。您在touchmove事件中跟蹤touch.xtouch.y,這就是爲什麼您認識到移動時觸摸在球上的原因。

編輯:您可以通過在行88-91

+0

就是這樣,感謝您的幫助! – Matt 2013-03-26 16:51:50