使用JQuery UI Draggable的碰撞游戏

时间:2018-03-14 15:02:27

标签: javascript jquery

我创建了其中一个解锁游戏,你必须从你的方式移动障碍物才能将主要区块拖到目标位置。在我的例子中,红色矩形变为黄色矩形并且按预期工作,但我缺少的是碰撞效果(现在块相互通过)。

我尝试了几种方法,例如JQuery UI Draggable documentation中定义的障碍物:"。障碍物" ,但我无法使其发挥作用。在原始文档中,他们给出了一些例子,但这些障碍是不可动的。有人可以帮我吗?

这是JSfiddle工作示例(使用UI Draggable Collision)。

HTML

<div class="container">
  <div class="hero-block-area">
    <div id="hero-block" class="collider"></div>
  </div>
  <div class="enemy-block-area">
    <div id="enemy-block" class="obstacle"></div>
  </div>
  <div id="Target1" class="target"></div>
</div>

的jQuery

$(document).ready(function() {
  $("#hero-block").draggable({ containment: ".hero-block-area", obstacle: ".obstacle" });
  $("#enemy-block").draggable({ containment: ".enemy-block-area" });
  $("#Target1").droppable({
    tolerance: "touch",
    preventCollision: true,
    drop: dropItem
  });
});

function dropItem(ev, ui) {
  alert("NICE!");
}

CSS

.container {
  width: 600px;
  height: 300px;
  overlay: hidden;
  position: relative;
  background: gray;
  display: block;
}

.target {
  margin-left: 100px;
  width: 100px;
  height: 40px;
  position: absolute;
  top: 180px;
  right: 0px;
  background: yellow;
}

.hero-block-area {
  top: 180px;
  width: 100%;
  position: absolute;
}

#hero-block {
  background: red;
  width: 100px;
  height: 40px;
  z-index: 2;
}

.enemy-block-area {
  width: 40px;
  height: 100%;
  position: absolute;
  top: 0px;
  left: 200px;
}

#enemy-block {
  background: brown;
  width: 40px;
  height: 120px;
  bottom: 0px;
  position: absolute;
}

0 个答案:

没有答案