AndEngine基础笔记之设计模式

工厂模式--ObjectFactory

工厂模式是一种十分常用的设计模式,特别是在游戏开发过程中,特别用于产生各种敌人对象,子弹对象,粒子效果。

而在AndEngine中我们常常使用工厂模式去创建音乐、纹理图片、字体。

那我们该如何去使用这种设计模式呢?

1、首先们要创建一个父类,很多的对象继承于它

 public static class BaseObject{

  private int mX;

  private int mY;

  BaseObject(final int pX,final int pY){

  this.mX=pX;

  this.mY=pY;

}

}

2、一但我们获得子类的BaseObject,我们就可以实现工厂模式了,在ObjectFactory中,我们可以实现创建和返回相应对象。

public class ObjectFactory{

 public static LargeObject createLargeObject(final int pX,final int pY){

 return new LargeObject(pX,pY);

}

 public static SmallObject createSmallObject(final int pX,final int pY){

  return new SmallObject(pX,pY);

}

}

在ObjectFactory中,我们可以创建BaseObject,这个类包含了两个变量:pX,pY,我们可以设定实体的位置,一旦调用这个静态方法,我们就可以返回BaseObject的子类:LargeObject或者是SmallObject。这个工厂类的作用就是我们该创建哪一个子类。

在以上的例子里我们仅仅定义了类的位置,在实际使用的时候,我们可以设定更多的参数,比如对于各种的Sprite,我们可以创建一个SpriteFactory类,通过SpriteFactory.createSprite(),SpriteFactory.createButtonSprite(),SpriteFactory.createTiledSprite(),这些当然需要更多的参数---位置,大小,颜色...

2、单例模式--GameManager

 单例模式我们仅可创建一个对象,而其存在于整个应用的生命周期,加上定义为静态类使之能在整个应用中我们都可以调用。一般单例模式不允许创建对象副本,保证对象的唯一性,也保证了对象访问的灵活性,减少了创建对象的开销。

public class GameManager{

private static GameManager INSTANCE:

private int mBirdCount;

private int mCurrentScore;

private int mEnemyCount;

GameManager(){     //必须要的构造函数,便外部的类无法通过new创建实例,单例模式的精髓所在。

}

public static GameManager getInstance(){   //上帝关上了一扇门,必会打开一扇窗

if(INSTANCE==null)

{

INSTANCE=new GameManager();

}

 return INSTANCE;

}


  public int getCurrentScore(){

  return this.mCurrentScore;

   }

  public int getBirdCount(){

   return this.mBirdCount;

}

 public void increamentScore(int pIncrementBy){

  mCurrentScore+=pIncrementBy;

  }

  public void decrementBirdCount(){

   mBirdCount-=1;

  }

  //重置游戏参数

   public void resetGame(){

    this.mCurrentScore=GameManager.INITAL_SCORE:

    this.mBirdCount=GameManager.INITAL_BIRD_COUNT:

     this.mEnemyCount=GameManager.INITAL_ENEMY_COUNT:

  }

}

GameManager 中保存着游戏的状态信息,其是根随着游戏的进行而不断变化着的。通过相应的方法,改变游戏状态数据信息。而当我们开始新的关卡,我们可以通过调用resetGame()方法,重置游戏参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值