文档章节

使用AndEngine开发游戏之二

leaf志良
 leaf志良
发布于 2013/10/15 18:30
字数 605
阅读 415
收藏 4

    看完例子熟悉了基本以后就可以开始制作游戏了。

    游戏的具体代码我就不贴了,有兴趣可以到我Github上看。下面说一下一些注意的事项

一、声音

    1. 背景音乐

        作为背景音乐就应该是循环播放的,注意这里是背景音乐,不是背景声音。。。(只有音乐才可以循环播放,我就在这里吃过亏)。

     2. 声效。。这个应该没有什么难的

    首先,在onCreateEngineOptions()方法里面加点东西


@Override
public EngineOptions onCreateEngineOptions() {
	this.mCamera = new Camera(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);

	final EngineOptions engineOptions = new EngineOptions(true,ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(SCREEN_WIDTH, SCREEN_HEIGHT), this.mCamera);
	engineOptions.getAudioOptions().setNeedsSound(true);
	engineOptions.getAudioOptions().setNeedsMusic(true);
	return engineOptions;
}



engineOptions.getAudioOptions().setNeedsSound(true);
engineOptions.getAudioOptions().setNeedsMusic(true);


这两句分别是设置使用声音和音乐。


    在onCreateResources()方法中加载声音和音乐,如下

// 加载声音
		SoundFactory.setAssetBasePath("mfx/");
		MusicFactory.setAssetBasePath("mfx/");
		try {
			this.mBaseMusic = MusicFactory.createMusicFromAsset(
					this.getMusicManager(), this, "base.wav");
			this.mBombSound = SoundFactory.createSoundFromAsset(
					this.getSoundManager(), this, "bomb.wav");
		} catch (IOException e) {
			e.printStackTrace();
		}


    音乐循环播放使用setLoop(true),可以实现音乐循环播放


this.mBaseMusic.play();
this.mBaseMusic.setLooping(true);

    播放声音,跟音乐差不多



mBombSound.play();


二、物理碰撞监听器

    上一篇说了如何注册物理世界,现在说一下如何监听碰撞事件。


this.mPhysicsWorld.setContactListener(new ContactListener() {
			
			@Override
			public void preSolve(Contact contact, Manifold oldManifold) {}
			
			@Override
			public void postSolve(Contact contact, ContactImpulse impulse) {}
			
			@Override
			public void endContact(Contact contact) {}
			
			@Override
			public void beginContact(Contact contact) { 
			    // TODO
			}
		});

    在beginContact(Contact contact)方法中可以实现碰撞所触发的事件。

Body bodyA = contact.getFixtureA().getBody();
Body bodyB = contact.getFixtureB().getBody();

    这样可以获取碰撞的两物体。bodyA是碰撞方,bodyB是被碰撞方。如果需要确定bodyA和bodyB的身份,可以在新建Body的时候使用setUserData方法,然后在检测的时候使用getUserData获取数据,以此来获得碰撞物体的身份。

三、从一个GameActivity跳转到另一个GameActivity

    我在这里是纠结最久的,最后在github上提问,有一位外国朋友(应该是外国的。。。吧)发了个Demo给我才知道自己是死在哪里。

    假如我要从LevelOneGame跳转到LevelTwoGame(都是设置横屏的),其实在代码上跟普通Activity跳转没有分别。但是在AndroidManifest.xml则是用一个要注意的地方。

标注LevelTwoGame如下

<activity android:name=".LevelTwoGame" android:configChanges="orientation|screenSize" />

注意,一定要android:configChanges="orientation|screenSize"这句,否则会报错。至于原因我还没有查到,应该跟Activity的启动方式有关。


                                                                                                                            。。。完


© 著作权归作者所有

leaf志良
粉丝 11
博文 37
码字总数 18366
作品 0
广州
程序员
私信 提问
认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

认识AndEngine什么是AndEngine 随着Android手机、平板的盛行,Android下的游戏也不断的变得火热。而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏。虽说游戏开发的引擎较多,但是大多...

大学霸
2015/01/06
0
0
Android游戏框架AndEngine使用入门

AndEngine是一款以OpenGLES方式进行画面渲染的2D游戏引擎,可以运行在支持Android 1.6及以上版本的系统当中。应该说,相较前文介绍的Libgdx引擎,AndEngine拥有更多的游戏组件与扩展功能。并...

鉴客
2011/03/08
20.2K
11
使用AndEngine开发游戏之一

人生写的第一个Android游戏,名字为炸弹专家,可以在github上找到。https://github.com/zl-leaf/BombExpert。各位欢迎吐嘈。 这个游戏使用的是AndEngine的库,链接为 https://github.com/nic...

leaf志良
2013/10/07
0
0
Android 2D游戏引擎AndEngine配置环境

Android 2D游戏引擎AndEngine配置环境 1.2 配置环境 在任何编程中,都需要一些软件或者硬件的支持。否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和编译...

大学霸
2015/01/30
0
0
Android 2D游戏引擎AndEngine快速入门教程

Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎。该引擎代码开源,并且可以免费使用。本书详细讲解如何使用AndEngine引擎开发2D游戏。 试读下载地...

大学霸
2014/12/30
0
3

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
1
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
2
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部