当前位置:   article > 正文

createjs碰撞检测localToLocal的用法

createjs localtolocal
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>EaselJS demo: localToLocal</title>
  5. <style type="text/css">
  6. body {
  7. margin: 0;
  8. padding: 7px;
  9. background-color: rgba(255,255,255,0);
  10. }
  11. canvas {
  12. border: solid 1px rgba(0,0,0,0.05);
  13. }
  14. </style>
  15. <script src="http://code.createjs.com/easeljs-0.7.0.min.js"></script>
  16. <script>
  17. var stage, arm;
  18. function init() {
  19. stage = new createjs.Stage("demoCanvas");
  20. target = stage.addChild(new createjs.Shape());
  21. target.graphics.beginFill("red").drawCircle(0,0,45)
  22. .beginFill("white").drawCircle(0,0,30)
  23. .beginFill("red").drawCircle(0,0,15);
  24. target.x = 100;
  25. target.y = 180;
  26. arm = stage.addChild(new createjs.Shape());
  27. arm.graphics
  28. .beginFill("black").drawRect(-2,-2,100,4)
  29. .beginFill("blue").drawCircle(100,0,30);
  30. arm.x = 180;
  31. arm.y = 100;
  32. createjs.Ticker.on("tick", tick);
  33. }
  34. function tick(event) {
  35. arm.rotation += 1;
  36. target.alpha = 0.2;
  37. var pt = arm.localToLocal(100, 0, target); // 传递的是红色小球圆心位置
  38. if (target.hitTest(pt.x, pt.y)) { target.alpha = 1; }
  39. stage.update(event);
  40. }
  41. </script>
  42. </head>
  43. <body οnlοad="init();">
  44. <canvas id="demoCanvas" width="300" height="300">
  45. alternate content
  46. </canvas>
  47. </body>
  48. </html>

 我把圆放大了,速度减慢了,可以看到这样的现象:圆球和arm的圆球碰撞的时候,并没有变化,而是要到arm的圆球中心点和圆球碰撞时才变化。

这段代码可以证明一点,createjs中这种方法实现的碰撞检测,其实是在检测物体arm在100,0这个位置,转动起来跟物体target是否碰撞,并非是物体arm整个形状是否和target有碰撞。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/240349
推荐阅读
相关标签
  

闽ICP备14008679号