2014-08-30 4 views
0

Craftyjs를 사용하여이 간단한 HTML5 끌어서 놓기 게임을 제작합니다.원본 엔티티가 크래프트되었지만 복제 된 엔티티가 드래그되지 않음

  1. 일부 구성 요소와 함께 E1이라고 부르는 엔티티를 만들었습니다. 구성 요소 중 하나는 "Draggable"입니다.
  2. 내가 새로운 개체 E2를 생성 및 실행에
  3. (모든 E1의 속성과 구성 요소의 사본이 있어야합니다 지금 E2) E1의 복제로 만든, E2는 동일한 속성과 속성을 복제하지만입니다 드래그 할 수 없다!

    var E1 = Crafty.e ("2D, Canvas, apple, Draggable, Gravity, Collision");

    var E2 = E1.clone();

    E2.attr ({x : 100, y : 100});

    E2.addComponent ("Draggable");

    e2.enableDrag(); E2.bind ("끌기", function() { console.log ("E2를 끌고 있습니다"), });

    1. 힘이 E2.addComponent("Draggable")으로 드래그 가능한 구성 요소를 추가했지만 작동하지 않습니다

  4. 나는 노력!
  5. "Dragging"및 "StartDrag"과 같은 Draggable 이벤트를 바인딩하지만 어느 것도 작동하지 않습니다!
  6. 힘은 "enableDrag"방법을 사용하여 드래그 가능하지만 아무런 영향을 미치지 않았다 중 하나 :(
  7. E2가 E2.has("Draggable")를 사용하여 드래그 가능한 구성 요소를 가지고 있으며, 그것은 예 반환 여부를
  8. consloe.log! 참고로

: MouseUp 및 MouseOver 같은 다른 모든 함수는 나중에도 추가하더라도 E2에서도 작동하지 않습니다. 복제 된 엔티티에서 Draggable 구성 요소가 작동하지 않는 이유에 대한 아이디어가 있습니까?

답변

0

foll 가장 최근의 안정적인 릴리스 (v0.6.3)를 사용하여 저에게 최소한의 예제만으로 작업 할 수 있습니다.
게임 초기화시 엔티티를 복제합니까? 엔티티가 드래그되는 동안 복제하면 일관성없는 상태가 될 수 있습니다.

<html> 
 
    <head></head> 
 
    <body> 
 
    <div id="game"></div> 
 
    <script src="https://rawgithub.com/craftyjs/Crafty/release/dist/crafty-min.js"></script> 
 
    <script> 
 
     Crafty.init(600, 300, document.getElementById('game')); 
 
     Crafty.background('rgb(127,127,127)'); 
 

 
     var ent1 = Crafty.e('2D, Canvas, Color, Draggable') 
 
       .attr({x: 200, y: 50, w: 50, h: 50}) 
 
       .color('blue'); 
 

 
     var ent2 = ent1.clone() 
 
       .attr({x:100, y:100}) 
 
       .color('green'); 
 
    </script> 
 
    </body> 
 
</html>

관련 문제