其他的游戏引擎知道的不是很对,不过相对于学java的童鞋们来说,那是个不错的选择啦,这个发动机咋样,google去吧。基础篇包括图片,字体,音效,数据读取,会了这点,就会做简单的小游戏啦

对于游戏开发,也就是把静待的图片动态化,同时加点音效什么的。

1.图片

1) 声名

BitmapTextureAtlas mTexturePlayer
this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
对于这个类,作用就相当于开辟一个内从空间,以后用来盛具体的图片,所以,开辟大小一定要大于图片像素大小

2)加载资源

分两种,一种是TextureRegion这个加载单个图片,另一种是TiledTextureRegion,加载可以分割的图片

TextureRegion:

	private TextureRegion mFaceTextureRegion;
		this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "Menu.jpg", 0, 0)

TiledTextureRegion

	private TiledTextureRegion mPlayerTextureRegion;
	this.mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory
.createTiledFromAsset(this.mTexturePlayer, this, "player.png",
0, 0, 4, 4);
 

player.png是图片名,4,4是分割方式4*4分割方式

3)注册资源

this.mEngine.getTextureManager().loadTexture(this.mTextureArm0);

如果不注册,显示的是空白区域

只要申请了资源,就一定要注册,就是使用了BitmapTextureAtlas,就一定要把它注册到engine中

4)使用

也分两种,一种是Sprite ,使用的是TextureRegion加载的图片。

this.backSprite=new Sprite(0, 0, mBackgroundTextureRegion);

另一种是AnimateSprinte,这个具备动画效果。

final AnimatedSprite player = new AnimatedSprite(centerX-200, centerY-100,
this.mPlayerTextureRegion);//

具体的动画,调用animate()函数,图片可以使用回调函数,产生复杂的效果

final Sprite sprite = new Sprite(pX, pY, this.armsMap.get(pCard)) {
boolean mGrabbed = false; @Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
switch(pSceneTouchEvent.getAction()) {
case TouchEvent.ACTION_DOWN:
this.setScale(1.25f);
this.mGrabbed = true;
break;
case TouchEvent.ACTION_UP:
if(this.mGrabbed) {
if(choice>=1)
{
armsEditor.putInt("arm", 1);
armsEditor.commit();
Intent myintent=new Intent(ChoiceArms.this, MenuGame.class);
ChoiceArms.this.startActivity(myintent);
System.gc();
System.exit(0);
}
else if(usermoney>10)
{
usermoney-=10;
this.mGrabbed = false;
this.setScale(1.0f);
moneyEditor.putInt("money", usermoney);
moneyEditor.commit();
armsEditor.putInt("arm", 1);
armsEditor.commit();
choice=1;
armsEditor.putInt("choice", choice);
armsEditor.commit();
Toast.makeText(ChoiceArms.this, "您购买了光弹", Toast.LENGTH_SHORT).show();
Intent myintent=new Intent(ChoiceArms.this, MenuGame.class);
ChoiceArms.this.startActivity(myintent);
System.gc();
System.exit(0);
}
else
{ Toast.makeText(ChoiceArms.this, "对不起,金钱不足吆", Toast.LENGTH_SHORT).show(); }
this.setScale(1.0f); }
break;
}
return true;
}
};

上边代码实现触摸选择购买子弹,其中涉及如何用xml方式读写数据,会在后续进行讲解

4)加载到场景中

	this.mScene.attachChild(sprite);

2字体

同样分三种,声明,加载资源,使用。

1)声明,申请内存资源

BitmapTextureAtlas mStrokeFontTexture;

2)加载字体资源

		this.mStrokeFont = new StrokeFont(this.mStrokeFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.BLUE, 2, Color.YELLOW);

字体类型也很多,可以使用系统默认的,也可以使用加载的,可以是带边框的,也可以是不带的

3)注册到engine中

	this.mEngine.getFontManager().loadFont( this.mStrokeFont);

4)字体使用

使用好了会帮你解决不少麻烦

final Text textNormal = new Text(100, 100, this.mFont, "Just some normal Text.");
比如下边的可变字体,还有金币字体等
 mCurrBossLive=new ChangeableText(0,0, this.mStrokeFont, "♢♢♢♢♢", "♢♢♢♢♢".length());

5)加载到场景中

		scene.attachChild(textStroke);

3音效使用

分为长的背景音乐(格式一般为mp3)跟短的音效(如.ogg格式,大小不超过1M)。

1)引擎声明使用 Engine中setNeedsMusic(true).setNeedsSound(true));

Engine engine=new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
this.mBoundChaseCamera).setNeedsMusic(true).setNeedsSound(true));

2)加载资源

	music=MusicFactory.createMusicFromAsset(getMusicManager(), getApplicationContext(), "BlueWorld.mp3");

3)使用

       music.play();

也有重复 music.setLooping(true);,暂停等很多功能,只需要一行代码;

4用xml方式读写数据

1)声明

public static SharedPreferences scores;
private SharedPreferences.Editor scoresEditor;
scores=getSharedPreferences("scores", MODE_PRIVATE);
scoresEditor=scores.edit();

2)使用

scores.getInt("user0",-1)//读数据,读的是user0中的整形数据,如果找不到,用0代替
     scoresEditor.putInt("suer0", count);//将整型变量count中的数据存到user0中
     scoresEditor.commit();//一定要提交
//SharedPreferences是用来读的,int float string等等
//SharedPreferences.Editor用来写的,写完后一定要提交

andengine游戏引擎总结基础篇的更多相关文章

  1. andengine游戏引擎总结进阶篇2

    本篇包括瓦片地图,物理系统, 1瓦片地图 超级玛丽,冒险岛,魂斗罗等游戏主场景都有瓦片地图画成,它的作用可见一斑,它可以用tiled Qt软件画成,在辅助篇中讲讲解tiled Qt软件的使用 1)加载 ...

  2. andengine游戏引擎总结进阶篇1

    本篇包括虚拟键盘,粒子系统 1虚拟键盘 分为两种,一种是单个虚拟键盘,另一种是多个方位虚拟键盘 1)加载虚拟键盘所需要的图片资源 private BitmapTextureAtlas mOnScree ...

  3. 如何制作一款HTML5 RPG游戏引擎——第五篇,人物&人物特效

    上一次,我们实现了对话类,今天就来做一个游戏中必不可少的——人物类. 当然,你完全是可以自己写一个人物类,但是为了方便起见,还是决定把人物类封装到这个引擎里. 为了使这个类更有意义,我还给人物类加了几 ...

  4. 如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话

    今天我们来实现情景对话.这是一个重要的功能,没有它,游戏将变得索然无味.所以我们不得不来完成它. 但是要知道,使用对话可不是一件简单的事,因为它内部的东西很多,比如说人物头像,人物名称,对话内容... ...

  5. 如何制作一款HTML5 RPG游戏引擎——第三篇,利用幕布切换场景

    开言: 在RPG游戏中,如果有地图切换的地方,通常就会使用幕布效果.所谓的幕布其实就是将两个矩形合拢,直到把屏幕遮住,然后再展开直到两个矩形全部移出屏幕. 为了大家做游戏方便,于是我给这个引擎加了这么 ...

  6. HTML5 RPG游戏引擎 地图实现篇

    一,话说全国年夜事   前没有暂看到lufy的专客上,有一名伴侣念要一个RPG游戏引擎,出于兴趣筹办入手做一做.因为我研讨lufylegend有冶时间了,对它有必然的依赖性,因而便筹办将那个引擎基于 ...

  7. HGE游戏引擎之实战篇,渐变的游戏开场

    #include <hge.h> #include "menuitem.h" //#include <hgefont.h> #include <hge ...

  8. 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子

    原地址:http://www.cnblogs.com/xuling/archive/2013/03/04/2943154.html 最近开始研究U3D,它的强大就不多说了, 今天研究了研究射线相关东西 ...

  9. Atitit 基于dom的游戏引擎

    Atitit 基于dom的游戏引擎 1. 添加sprite控件(cocos,createjs,dom)1 1.1.1. Cocos1 1.1.2. createjs1 1.1.3. Dom模式2 1. ...

随机推荐

  1. 怎样使用LaTeX输入葡萄牙语等语言中的特殊字符

    论文中引用了大名鼎鼎ER random graph model,但是这两位的名字不太好打,发现Google Scholar中直接下载的bib文件中也是错的.找了一会,发现转义字符已经定义得很好了.只是 ...

  2. Python 自动化脚本学习(三)

    函数 例子 def hello(): print("hello" + "world"); 有参数的函数 def hello(name): print(" ...

  3. linux 修改文件、文件夹权限

    # change owner of all the fies under dirName chown -R username dirName #change owner and the file gr ...

  4. android面试题之五

    二十六.什么情况会导致Force Close ?如何避免?能否捕获导致其的异常? 抛出运行时异常时就会导致Force Close,比如空指针.数组越界.类型转换异常等等. 捕获:可以通过logcat查 ...

  5. vnc远程linux服务器黑屏

    本来想尝试用vnc连接到linux服务器上,图形化操作一点东西,不过遇到了困难,记录方便查询. 1,打开vnc 选择Ip和端口,连接上去显示黑屏. 2,于是想到系统原先没有安装图像化桌面.so,  y ...

  6. hive大数据倾斜总结

    在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显.主要是因为在Job完成后的所得到的 Counters是整个Job的总和,优化是基于这些Counters得出的 ...

  7. 关于asp.net简单的下载问题

    关于asp.net的下载,只需将打开相应的文件路径就能在浏览器上实现下载功能,比如项目的同级目录上有一个文件 苍老师.zip<a href="苍老师.zip">< ...

  8. 统计字符 比如aaabbcca----3a2b1c1a

    package Demo; import java.util.Scanner; /** * Created by chengpeng on 16/11/3. */ /* idea command+al ...

  9. Android中Menu的基本用法

    一. 使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签作为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项 ...

  10. 浅说CPU并行计算与GPU并行计算

    最近在学一门课,叫做“C++与并行计算”.要用到多CPU(进程)并行的原理,实现语言是C++的MPI接口.联想到上学期用到CUDA C/C++来做并行计算,就对这两门语言做一个总结,分享下自己关于并行 ...