我试图在某个地方放一枚炸弹,当它爆炸时,它周围的每一个东西都会飞走,速度取决于物体与炸弹的接近程度.就像黑鸟在愤怒的小鸟中爆炸一样.
可以任何人给我一个示例代码或方法来做到这一点(我使用andengine与box2d)
谢谢
我还是Java和Android编程的新手,在碰撞发生时删除对象我遇到了很多麻烦.我看着网页四周,发现我从来没有处理碰撞检测时去除Box2D的身体(接触听众),我要我的对象添加到一个ArrayList,并设置在机身的用户数据段的一个变量,删除或不和处理更新处理程序中的删除操作.所以我这样做了:首先我为面部定义了两个ArrayLists,为body定义了一个:
ArrayList<Sprite> myFaces = new ArrayList<Sprite>();
ArrayList<Body> myBodies = new ArrayList<Body>();
Run Code Online (Sandbox Code Playgroud)
然后,当我创建一个面并将该面连接到它的主体时,我将它们添加到它们的ArrayLists中,如下所示:
face = new AnimatedSprite(pX, pY, pWidth, pHeight, this.mBoxFaceTextureRegion);
Body BoxBody = PhysicsFactory.createBoxBody(mPhysicsWorld, face, BodyType.DynamicBody, objectFixtureDef);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, BoxBody, true, true));
myFaces.add(face);
myBodies.add(BoxBody);
Run Code Online (Sandbox Code Playgroud)
现在我在onloadscene中添加一个联系人监听器和一个更新处理程序,如下所示:
this.mPhysicsWorld.setContactListener(new ContactListener() {
private AnimatedSprite face2;
@Override
public void beginContact(final Contact pContact) {
}
@Override
public void endContact(final Contact pContact) {
}
@Override
public void preSolve(Contact contact,Manifold oldManifold) {
}
@Override
public void postSolve(Contact contact,ContactImpulse impulse) {
}
});
scene.registerUpdateHandler(new IUpdateHandler() {
@Override
public void …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的游戏创建一个背景,给人的印象是有些东西比其他东西更远.所以我要说天空,太阳,云和地面.天空和太阳是最远的,中间的云和地面在前面.现在,如果玩家放大或平移相机,我希望更多的层移动得比更接近的层更少,给人的印象是它们真的更远(地面移动最多,云层移动得更少,太阳几乎不移动)就像自动视差行为的方式一样,除了它是一个静态背景,因此除非玩家放大或缩小,否则通常没有任何动作.
这个概念是在愤怒的小鸟中用游戏物体(鸟类,猪,块......)实现的,地面在前面,中间是山地层,天空和云层是最远的.
现在,如果你理解我想要完成的事情,请告诉我如何去做,因为它让我疯狂过去几天,我甚至无法把这个概念用于实现它.任何代码也都很棒.