我正在使用Craftyjs构建这个简单的HTML5拖放游戏。
Draggable
"。 运行时,使用相同的属性和属性克隆E2,但它不可拖动!
var E1 = Crafty.e(" 2D,Canvas,apple,Draggable,Gravity,Collision");
var E2 = E1.clone();
E2.attr({x:100,y:100});
E2.addComponent("可拖动&#34);
E2.enableDrag(); E2.bind(" Dragging",function(){ console.log(" E2被拖动"); });
我试图:
E2.addComponent("Draggable")
强制添加可拖动组件,但它无法正常工作!Dragging
"和" StartDrag
"但它也不会工作!enableDrag
"方法强制启用拖动,但这也没有任何影响:(consloe.log
E2是否具有使用E2.has("Draggable")
的可拖动组件并返回yes!FYI :所有其他功能,如MouseUp和MouseOver也不适用于E2,即使我稍后添加它们也是如此 关于什么使Draggable组件在克隆实体中不起作用的任何想法?
答案 0 :(得分:0)
以下最小示例适用于我使用最新的稳定版本(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>