其他的游戏引擎知道的不是很对,不过相对于学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;@Overridepublic 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用来写的,写完后一定要提交

转载于:https://www.cnblogs.com/pangblog/p/3331264.html

andengine游戏引擎总结基础篇相关推荐

  1. 纯c语言游戏引擎开发,C++ 写个游戏引擎—(基础篇) 1

    目标:用 c++ 写个游戏引擎打基础 基本要求:有一定编程基础,对游戏编程有热情 开发平台:windows 开发工具:visual studio 2017 communicty 前言 今天 C++ 视 ...

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

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

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

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

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

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

  5. 工作流引擎Activiti-->基础篇

    目录 一.工作流介绍 1.1.概念 1.2.工作流系统 1.3.适用行业 1.4.具体应用 1.5.实现方式 二.Activiti7概述 2.1.介绍 2.2.BPM 2.3.BPM软件 2.4.BP ...

  6. 【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)...

    由于最近搞2D游戏, 下面的代码配合NGUI来使用 ... 将代码拖到角色身上就OK, 实现了角色转向.移动 ,想看效果的可以将代码下下来~ 用到了向量来计算角度 以及方向,   得恶补下向量知识了 ...

  7. Activiti7工作流引擎:基础篇(一) 简介与IDEA插件安装

    你不要一直不满他人,你应该一直检讨自己才对. 零:审批场景 对于请假流程我们有以下两种做法: 传统方式:写一个请假条,拿着请假条跑到项目经理那里签字,然后再拿着请假条去部门经理那里签字,然后再拿着请假 ...

  8. Activiti7工作流引擎:基础篇(七) 流程变量

    不要指望别人能帮你多少,人生事事物物都得靠自己. 一:简介 流程变量就是if(条件)中使用到的变量用于参与条件表达式的计算. 变量都是有作用域的,在程序中方法内部的变量是属于局部变量,方法外的变量属于 ...

  9. Activiti7工作流引擎:基础篇(六) 任务监听器和流程监听器

    知识传送门 >>>>>>>> 你只有一定要,才一定会得到. 一:任务监听器TaskListener 任务监听器是处理业务逻辑的重要的地方,当任务创建.设 ...

最新文章

  1. knn计算机在图片中的应用,图像分类和kNN
  2. 您所知道的IT运维管理
  3. mysql 区分大小写(大小写敏感)配置
  4. tomcat服务器两个端口配置两个项目,Tomcat 7通过设置不同的端口部署两个项目
  5. PHP面向对象(OOP):抽象方法和抽象类(abstract)
  6. linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0
  7. (64)句柄表,遍历所有进程的句柄表实现反调试
  8. webpack-dev-server 和webpack-hot-middleware
  9. 【翻译】Geometric Features-Based Parking Slot Detection
  10. 智能公租房管理系统概要流程
  11. android SD卡文件夹
  12. linux修改文件类型和权限
  13. 妮可妮可妮 [Hash]
  14. 抓包PC微信小程序失败解决方法
  15. Torque引擎系列
  16. VLSM子网掩码详解!!
  17. 集成聚合火车票订票接口(回调推送方式)总结
  18. 作为一个码工,意外走入了一个充满PM的会议室
  19. B. Alyona and a Narrow Fridge
  20. 走在技术这条阳光大道上

热门文章

  1. Python爬虫开发:中文字符编码问题quote解决
  2. 请谈一下@Autowired 和@Resource区别是什么?
  3. Spring Cloud Alibaba基础教程:@SentinelResource注解实现限流控制与熔断降级使用详解
  4. Hadoop大数据——mapreduce的join算法
  5. 解决idea application context not configured for this file的问题
  6. Atomic原子类常用方法总结(包含四大类型)
  7. 删除右键菜单中的选项:在Visual Studio中打开
  8. 思考一个问题:如何重现主从备份失败的案例
  9. Coding: 2的N次方
  10. Qt for Android调用android原生Toast控件