A-Frame Trigger javascript 与相机碰撞时的功能
A-Frame Trigger javascript function on collide with camera
我试图在相机碰撞或触摸物体时触发我的评分功能,例如:
<a-entity id="rock" static-body obj-model="obj:models/rock_mesh.obj;mtl:images/rock_mesh.mtl" rotation="0 90 0" position="7.30242379045994 0.3 0">
</a-entity>
我在我的相机上装备了我的乐谱文本:
<a-text id="score" value="0" position="-0.2 -0.5 -1" color="red" width="5" anchor="left"></a-text>
并尝试触发这样的函数:
let score = 0;
score = score + 1
$("#score").setAttribute('text','value','Score '+score)
这只是草稿代码,我还是新手 javascript
我该怎么做?每当我的相机接触到这个 "rock" 物体时,屏幕上的分数就会增加?
如何检测物体与我的相机的碰撞或接触?
提前致谢。
只需这样做:
score++;
$("#score").attr("value", score);
检测碰撞的最简单方法是检测三个边界框是否重叠
您可以使用 Ngo Kevins aabb-collider,它会在碰撞时发出 hitstart
。不过请记住,相机没有自己的几何结构:
<a-camera foo geometry="primitive: box" aabb-collider="objects: a-box"></a-camera>
<a-box scale="2 2 2" class="box" color="blue" position="0 1.6 -5" ></a-box>
foo 是 hitstart
的简单事件侦听器。
AFRAME.registerComponent("foo", {
init: function() {
this.el.addEventListener("hitstart", (e)=>{
// Collision ! increment the score
})
}
})
Fiddle here.
如果可能的话,我不会检测与您的模型的碰撞,而是创建一些碰撞框。
如果您想使用 physics engine in your project, Don McCurdys Physics System also enables collision detection,也值得一提。您需要监听 collision
.
而不是 hitstart
我试图在相机碰撞或触摸物体时触发我的评分功能,例如:
<a-entity id="rock" static-body obj-model="obj:models/rock_mesh.obj;mtl:images/rock_mesh.mtl" rotation="0 90 0" position="7.30242379045994 0.3 0">
</a-entity>
我在我的相机上装备了我的乐谱文本:
<a-text id="score" value="0" position="-0.2 -0.5 -1" color="red" width="5" anchor="left"></a-text>
并尝试触发这样的函数:
let score = 0;
score = score + 1
$("#score").setAttribute('text','value','Score '+score)
这只是草稿代码,我还是新手 javascript
我该怎么做?每当我的相机接触到这个 "rock" 物体时,屏幕上的分数就会增加?
如何检测物体与我的相机的碰撞或接触?
提前致谢。
只需这样做:
score++;
$("#score").attr("value", score);
检测碰撞的最简单方法是检测三个边界框是否重叠
您可以使用 Ngo Kevins aabb-collider,它会在碰撞时发出 hitstart
。不过请记住,相机没有自己的几何结构:
<a-camera foo geometry="primitive: box" aabb-collider="objects: a-box"></a-camera>
<a-box scale="2 2 2" class="box" color="blue" position="0 1.6 -5" ></a-box>
foo 是 hitstart
的简单事件侦听器。
AFRAME.registerComponent("foo", {
init: function() {
this.el.addEventListener("hitstart", (e)=>{
// Collision ! increment the score
})
}
})
Fiddle here.
如果可能的话,我不会检测与您的模型的碰撞,而是创建一些碰撞框。
如果您想使用 physics engine in your project, Don McCurdys Physics System also enables collision detection,也值得一提。您需要监听 collision
.
hitstart