By
被删
更新日期:
本节主要介绍鼠标获取刚体。
鼠标获取刚体
鼠标获取刚体–对刚体进行操作的前提
Box2D中,只要提供一个AABB的坐标,b2World就可以返回一个数组,用于保存所有相交于此AABB的形状。
所以,为了利用鼠标获取刚体,首先要画出一个小区域,这个区域小到近似于一个点,然后遍历整个世界的形状,判断鼠标点击位置所画出的小区域是否与某个形状重合,如果有重合,再由这个形状得到这个形状所属的刚体。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function GetBodyAtMouse() { var mousePVec = new b2Vec2(mousedwX, mousedwY); var aabb = new b2AABB(); aabb.minVertex.Set(mousePVec.x - 0.001, mousePVec.y - 0.001); aabb.maxVertex.Set(mousePVec.x + 0.001, mousePVec.y + 0.001); var k_maxCount = 10; var shapes = new Array(); var count = world.Query(aabb, shapes, k_maxCount); var findBody = null; for (var i = 0; i < count; ++i) { if (shapes[i].GetBody().IsStatic() == false) { var tShape = shapes[i]; var inside = tShape.GetBody(); if (inside) { findBody = tShape.GetBody(); break; } } } return findBody; }
|
查看Github有更多内容噢:https://github.com/godbasin
更欢迎来被删的前端游乐场边撸猫边学前端噢