本文整理汇总了Java中com.badlogic.gdx.physics.box2d.World.rayCast方法的典型用法代码示例。如果您正苦于以下问题:Java World.rayCast方法的具体用法?Java World.rayCast怎么用?Java World.rayCast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.badlogic.gdx.physics.box2d.World
的用法示例。
在下文中一共展示了World.rayCast方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkMovable
import com.badlogic.gdx.physics.box2d.World; //导入方法依赖的package包/类
private boolean checkMovable(Body body, Vector2 from, Vector2 to) {
World b2dWorld = body.getWorld();
moveable = true;
RayCastCallback rayCastCallback = new RayCastCallback() {
@Override
public float reportRayFixture(Fixture fixture, Vector2 point, Vector2 normal, float fraction) {
if (fixture.getFilterData().categoryBits == GameManager.INDESTRUCTIIBLE_BIT
| fixture.getFilterData().categoryBits == GameManager.BREAKABLE_BIT
| fixture.getFilterData().categoryBits == GameManager.BOMB_BIT
| fixture.getFilterData().categoryBits == GameManager.ENEMY_BIT
| fixture.getFilterData().categoryBits == GameManager.PLAYER_BIT) {
moveable = false;
return 0;
}
return 0;
}
};
b2dWorld.rayCast(rayCastCallback, from, to);
return moveable;
}
示例2: checkMovable
import com.badlogic.gdx.physics.box2d.World; //导入方法依赖的package包/类
private boolean checkMovable(Body body, MoveDir dir) {
canMove = true;
World world = body.getWorld();
RayCastCallback rayCastCallback = new RayCastCallback() {
@Override
public float reportRayFixture(Fixture fixture, Vector2 point, Vector2 normal, float fraction) {
if (fixture.getFilterData().categoryBits == GameManager.WALL_BIT || fixture.getFilterData().categoryBits == GameManager.GATE_BIT) {
canMove = false;
return 0;
}
return 0;
}
};
for (int i = 0; i < 2; i++) {
tmpV1.set(body.getPosition());
switch (dir) {
case UP:
tmpV2.set(body.getPosition().x - (i - 0.5f) * 0.2f, body.getPosition().y + 0.6f);
break;
case DOWN:
tmpV2.set(body.getPosition().x - (i - 0.5f) * 0.2f, body.getPosition().y - 0.6f);
break;
case LEFT:
tmpV2.set(body.getPosition().x - 0.6f, body.getPosition().y - (i - 0.5f) * 0.2f);
break;
case RIGHT:
tmpV2.set(body.getPosition().x + 0.6f, body.getPosition().y - (i - 0.5f) * 0.2f);
break;
default:
break;
}
world.rayCast(rayCastCallback, tmpV1, tmpV2);
}
return canMove;
}
示例3: hitSomethingVertical
import com.badlogic.gdx.physics.box2d.World; //导入方法依赖的package包/类
protected boolean hitSomethingVertical(final Body body, Vector2 fromV, Vector2 toV) {
World b2dWorld = body.getWorld();
hit = false;
RayCastCallback rayCastCallback = new RayCastCallback() {
@Override
public float reportRayFixture(Fixture fixture, Vector2 point, Vector2 normal, float fraction) {
// if hit the player, ignore it
if (fixture.getFilterData().categoryBits == GameManager.PLAYER_BIT || fixture.getFilterData().categoryBits == GameManager.POWERUP_BIT) {
return 0;
}
if (fraction < 1.0f) {
hit = true;
}
return 0;
}
};
for (int i = 0; i < 3; i++) {
Vector2 tmpV = new Vector2(toV);
b2dWorld.rayCast(rayCastCallback, fromV, tmpV.add((1 - i) * 0.4f, 0));
}
return hit;
}
示例4: hitSomethingHorizontal
import com.badlogic.gdx.physics.box2d.World; //导入方法依赖的package包/类
protected boolean hitSomethingHorizontal(final Body body, Vector2 fromV, Vector2 toV) {
World b2dWorld = body.getWorld();
hit = false;
RayCastCallback rayCastCallback = new RayCastCallback() {
@Override
public float reportRayFixture(Fixture fixture, Vector2 point, Vector2 normal, float fraction) {
// if hit the player or power-up item, ignore it
if (fixture.getFilterData().categoryBits == GameManager.PLAYER_BIT || fixture.getFilterData().categoryBits == GameManager.POWERUP_BIT) {
return 0;
}
if (fraction < 1.0f) {
hit = true;
}
return 0;
}
};
for (int i = 0; i < 3; i++) {
Vector2 tmpV = new Vector2(toV);
b2dWorld.rayCast(rayCastCallback, fromV, tmpV.add(0, (1 - i) * 0.4f));
}
return hit;
}
示例5: cast
import com.badlogic.gdx.physics.box2d.World; //导入方法依赖的package包/类
public boolean cast(World world,PhysicsComponent phys0, PhysicsComponent phys1){
reset();
if (phys0.getPosition().dst(phys1.getPosition()) <= 0) return true;
world.rayCast(this, phys0.getPosition(), phys1.getPosition());
return fixture != null && physics == phys1;
}