其他的游戏引擎知道的不是很对,不过相对于学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. LeeCode-Single Number II

    Given an array of integers, every element appears three times except for one. Find that single one. ...

  2. python hook监听事件

    python hook监听事件 作者:vpoet mail:vpoet_sir@163.com # -*- coding: utf-8 -*- # # by oldj http://oldj.net/ ...

  3. 一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。

    前些天看到.net笔试习题集上的一道小题,要求将1至100内的正整数随机填充到一个长度为100的数组,求一个简单的算法. 今天有空写了一下.代码如下,注释比较详细: using System; usi ...

  4. 对Linux 专家非常有用的20 个命令

    谢谢你你给了我们在这篇文章前两个部分的喜欢,美言和支持.在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令. 对 Linux 新手非常有用的 20 个命 ...

  5. Android.mk文件语法规范及使用模板

    Android.mk文件语法详述 介绍:------------这篇文档是用来描述你的C或C++源文件中Android.mk编译文件的语法的,为了理解她们我们需要您先看完docs/OVERVIEW.h ...

  6. 详细介绍Qt,ffmpeg 和SDL开发

        Qt 与 ffmpeg 与 SDl 教程是本文要介绍的内容,从多个角度介绍本文,运用了qmake,先来看内容. 1.  注释 从“ #” 开始,到这一行结束. 2.  指定源文件 1.     ...

  7. yum 安装软件提示错误

    试用yum命令装软件时,遇到了下面的问题,错误提示: rpmdb: unable to join the environment error: db4 error(11) from dbenv-> ...

  8. Ascll

    ascll - 概述 ASCII码(American Standard Code for Information Interchange, 美国标准信息交换码).   信息编码就是将表示信息的某种符号 ...

  9. PHP学习笔记1.1——date()函数的多种用法,取出各种不同格式的时间,非常全面

    语法格式:date(string format.int timestamp); 参数一:format指定输出的日期和时间的格式,具体的参见下表; 参数二:timestamp是可选参数,是时间戳,如果不 ...

  10. 查询ID为5的数据的前后各一行数据,ID不连续

    首先假如有一张表 test 那么我们要查的就是 3 和 7 这里我的思路是 用SQL Server 自带的Row_Number 函数把 ID=5 的 RowNo 查出来,因为RowNo是连续的,所以它 ...