本篇包括瓦片地图,物理系统,
1瓦片地图
超级玛丽,冒险岛,魂斗罗等游戏主场景都有瓦片地图画成,它的作用可见一斑,它可以用tiled Qt软件画成,在辅助篇中讲讲解tiled Qt软件的使用
1)加载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);
}
2)加载将每一个图层瓦片
//将每一层TMXLayer加载到scene中
for (int i = 0; i < this.mTMXTiledMap.getTMXLayers().size(); i++) {
TMXLayer layer = this.mTMXTiledMap.getTMXLayers().get(i);
mScene.attachChild(layer);
}
3)具体瓦片图块的使用
好啦,一个很大的场景就加载完成了,具体的每个瓦片的使用,将在下一篇与box2d(物理系统)具体结合使用时展示它强大的威力
2)物理世界
物理世界想象成我们的世界就行,其中包括物理世界的实质,皮肤(人的衣服),刚体(人),连接器(设置弹性,密度,摩擦力),关节,碰撞检测,物体在物理世界中的添加与移除等
1)创建物理世界
this.mPhysicsWorld = new FixedStepPhysicsWorld(30, new Vector2(0, 80),
true, 8, 1);//Vector()设置的是力,就是向下为80N的力
2)皮肤的创建
很简单,就是一个Sprinte或者是AnimateSprite图片的创建,物体外边的变化就是皮肤的变化啦
// 创建player,并别加载到scene中
final AnimatedSprite player = new AnimatedSprite(centerX-200, centerY-100,
this.mPlayerTextureRegion);//
this.mBoundChaseCamera.setChaseEntity(player);
3)连接器的创建
final FixtureDef playerFixtureDef = PhysicsFactory.createFixtureDef(0,
0, 0.5f);//设置弹性,密度,摩擦力
4)刚体
mPlayerBody = PhysicsFactory.createBoxBody(this.mPhysicsWorld, player,
BodyType.DynamicBody, playerFixtureDef);//BodyType有三种,一种是DynamicBody,运动的重型物体,一种是KinematicBody,运动的轻型物体,最后一种StaticBody,静态物体,比如墙体,就是这一种
5)将物体添加到物理世界中
this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(
player, mPlayerBody, true, false) );
6)将物体从物理世界中移除
mEngine.runOnUpdateThread(new Runnable()
{
@Override
public void run()
{
final PhysicsConnector physicsConnector =
mPhysicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(physicalmap.get(bodyb));//通过皮肤获得连接器
if (physicsConnector != null)
{
mPhysicsWorld.unregisterPhysicsConnector(physicsConnector);//注销连接器
bodya.setActive(false);
mPhysicsWorld.destroyBody(bodyb);//摧毁物体
mScene.detachChild(physicalmap.get(bodyb));
physicalmap.remove(bodyb);//physicalmap是皮肤与刚体结合的结合
System.gc();
}
}
});
一定要放到一个线程中,不然很容易出错误
7)碰撞检测
在物理世界上注册
this.mPhysicsWorld.setContactListener(new ContactListener() {
@Override
public void preSolve(Contact arg0, Manifold arg1) {
// TODO Auto-generated method stub
}
@Override
public void postSolve(Contact arg0, ContactImpulse arg1) {
// TODO Auto-generated method stub
}
@Override
public void endContact(Contact arg0) {
// TODO Auto-generated method stub
}
@Override
public void beginContact(Contact arg0) {
// TODO Auto-generated method stub
final Body bodya=arg0.getFixtureA().getBody();//获得bodya
final Body bodyb=arg0.getFixtureB().getBody();//获得bodyb
String ida=(String) bodya.getUserData();//通过bodya,bodyb对碰撞的物体进行处理
String idb=(String) bodyb.getUserData();
if("mPlayerBody".equals(idb)&&"bossBody".equals(ida))
{
scoresEditor.putInt("user0", score);
scoresEditor.commit();
lifeEditor.putInt("life", live);
lifeEditor.commit();
System.gc();
mHandler.postDelayed(boss, 2000);//2秒钟后到gameover界面
}
});
分享到:
相关推荐
AndEngine游戏引擎 2D游戏引擎
andengine游戏引擎源码及实例,想学这个的应该对你有帮助的~~
AndEngine android游戏引擎源码,绝对物有所值,android游戏开发者的杀手锏
AndEngine 游戏引擎 中文文档,AndEngine的文档很少,而且是中文的哦
AndEngine游戏引擎进阶之自定义Tiled精灵,AndEngine游戏引擎是一个开源的Android 2D游戏引擎。
andEngine是一款优秀的基于Android平台的游戏引擎,集成了Box2D物理引擎,想做愤怒的小鸟吗?就靠他了。
AndEngine游戏引擎jar包 开发游戏的好帮手,不会使用的可以连系
AndEngine游戏引擎讲解.pdf
AndEngine是一款基于OpenGL ES技术的Android游戏引擎,物理引擎同样为Box2D(标配)。可以运行在支持Android1.6及以上版本的系统当中。
AndEngine游戏开发指南-初级篇.pdf android基于AndEngine游戏引擎开发
AndEngine是一款以OpenGLES方式进行画面渲染的2D游戏引擎,可以运行在支持Android 1.6及以上版本的系统当中。应该说,相较前文介绍的Libgdx引擎,AndEngine拥有更多的游戏组件与扩展功能。并且与Libgdx不同,它在...
最流行的android游戏2d引擎,基于open gl 开发游戏 组建方式开发 基于libgdx
程序是基于AndEngine-GLES2的,使用了模拟控制器、tiledmap地图,欢迎下载,因为第一次分享资源,然后也是自己没什么积分,所以资源分设置成了10分,以后共享我会把分设置低点,但是这个资源还是物有所值的。
AndEngine游戏引擎学习入门篇,如果你想学习Android游戏开发,请从这里开始!详细的注释
andengine同样是一款基于OpenGL ES技术的Android游戏引擎,物理引擎同样为Box2D。该框架性能普通,文档缺乏,但示例较为丰富。
AndEngine游戏 DeliveryBoy 源代码,可以用来做AndEngine游戏实例教程进行参考
Android 2D游戏引擎AndEngine快速入门教程
AndEngine 开源引擎源文件+androidExample文件
如果你的游戏准备使用物理引擎,请优先考虑AndEngine。AndEngine官方提供了数个扩展包。例如:AndEngineLiveWallpaperExtension动态壁纸扩展、AndEngineTexturePackerExtension纹理打包扩展、AndEnginePhysicsBox2...
AndEngine游戏开发示例 详情请链接至:http://blog.csdn.net/lan410812571/article/details/9716743