//加载TMX try { final TMXLoader tmxLoader = new TMXLoader(this, this.mEngine.getTextureManager(), TextureOptions.NEAREST, null); this.mTMXTiledMap = tmxLoader.loadFromAsset(this,"sence"+leave.getInt("leave", 1)+".tmx"); } catch (final TMXLoadException tmxle) { Debug.e(tmxle); } //将每一层TMXLayer加载到scene中 for (int i = 0; i < this.mTMXTiledMap.getTMXLayers().size(); i++) { TMXLayer layer = this.mTMXTiledMap.getTMXLayers().get(i); mScene.attachChild(layer); }
this.mPhysicsWorld = new FixedStepPhysicsWorld(30, new Vector2(0, 80), true, 8, 1);
final AnimatedSprite player = new AnimatedSprite(centerX-200, centerY-100, this.mPlayerTextureRegion);// this.mBoundChaseCamera.setChaseEntity(player); final FixtureDef playerFixtureDef = PhysicsFactory.createFixtureDef(0, 0, 0.5f); mPlayerBody = PhysicsFactory.createBoxBody(this.mPhysicsWorld, player, BodyType.StaticBody, playerFixtureDef); this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector( player, mPlayerBody, true, false) { @Override public void onUpdate(float pSecondsElapsed) { super.onUpdate(pSecondsElapsed); mBoundChaseCamera.updateChaseEntity();//相机更新方式 } }); physicalmap.put(mPlayerBody, player); mPlayerBody.setUserData("mPlayerBody"); mScene.attachChild(player);
public void creatBox(TMXTiledMap map) { for (final TMXObjectGroup group : this.mTMXTiledMap .getTMXObjectGroups()) { if (group.getTMXObjectGroupProperties().containsTMXProperty("box", "true")) { //如果瓦片地图中图块的键为“box”,值为“true” for (final TMXObject object : group.getTMXObjects()) { final Sprite box = new Sprite(object.getX(), object.getY(),this.mBoxTextureRegion);//创建皮肤 final FixtureDef boxFixtureDef = PhysicsFactory .createFixtureDef(0, 0, 1f);//连接器 final Body boxBody=PhysicsFactory.createBoxBody(this.mPhysicsWorld, box, BodyType.DynamicBody, boxFixtureDef);//刚体 boxBody.setUserData("boxBody");//为刚体设置值,供碰撞检测时使用 physicalmap.put(boxBody, box);//供碰撞检测时使用,通过键找到值 this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector( box, boxBody, true, false));//注册到物理世界中 mScene.attachChild(box);//将皮肤天剑到sence中 } } } }