andengine编程之menu

一般游戏都有一个start开始按钮,或者press any key的按钮。当用户点击后,会显示出菜单。

我们将在上一个工程的基础上,继续来完成menu菜单的显示

首先,增加一个scene的场景,用来显示menu菜单:

[java]  view plain copy
  1. private void createMenu() {  
  2.     menuScene = new Scene();  
  3.   
  4.     // 建立几个button  
  5.     // 200, 100:显示的位置  
  6.     // button:按钮图片, 这里就不再建立新的button图片了,复用上一个按钮图片  
  7.     ButtonSprite startBtn = new ButtonSprite(100100, button,  
  8.             getVertexBufferObjectManager(), new OnClickListener() {  
  9.                 public void onClick(ButtonSprite pButtonSprite,  
  10.                         float pTouchAreaLocalX, float pTouchAreaLocalY) {  
  11.                     // 处理点击后操作  
  12.                 }  
  13.             });  
  14.   
  15.     ButtonSprite setBtn = new ButtonSprite(100200, button,  
  16.             getVertexBufferObjectManager(), new OnClickListener() {  
  17.                 public void onClick(ButtonSprite pButtonSprite,  
  18.                         float pTouchAreaLocalX, float pTouchAreaLocalY) {  
  19.                     // 处理点击后操作  
  20.                 }  
  21.             });  
  22.   
  23.     ButtonSprite backBtn = new ButtonSprite(100300, button,  
  24.             getVertexBufferObjectManager(), new OnClickListener() {  
  25.                 public void onClick(ButtonSprite pButtonSprite,  
  26.                         float pTouchAreaLocalX, float pTouchAreaLocalY) {  
  27.                     // 退回到最开始状态  
  28.                     mScene.clearChildScene();  
  29.                     mScene.attachChild(buttonSprite);  
  30.                 }  
  31.             });  
  32.   
  33.     // 添加到button到scene中  
  34.     menuScene.attachChild(startBtn);  
  35.     menuScene.attachChild(setBtn);  
  36.     menuScene.attachChild(backBtn);  
  37.   
  38.     // 注册button的触摸机制  
  39.     menuScene.registerTouchArea(startBtn);  
  40.     menuScene.registerTouchArea(setBtn);  
  41.     menuScene.registerTouchArea(backBtn);  
  42.   
  43.     // 如果你还要复用之前的背景话,这里设置为false,否则就是一片黑色背景  
  44.     menuScene.setBackgroundEnabled(false);  
  45. }  


接下来,再修改一个onCreateScene,增加上这个方法:
[java]  view plain copy
  1. // 创建菜单场景  
  2. createMenu();  

还有,修改之前开始按钮的监听内容:

[java]  view plain copy
  1. buttonSprite = new ButtonSprite(480300, button,  
  2.                 getVertexBufferObjectManager(), new OnClickListener() {  
  3.   
  4.                     // 建立监听,当用户点住不放的时候,button图片会切换,但不会执行onClick里的操作  
  5.                     // 当用户松开的时候,才会执行  
  6.                     public void onClick(ButtonSprite pButtonSprite,  
  7.                             float pTouchAreaLocalX, float pTouchAreaLocalY) {  
  8.                         // 当用户点下后,我们将这个button从场景中移除掉  
  9.                         mScene.detachChild(buttonSprite);  
  10.   
  11.                         // 添加进来菜单  
  12.                         mScene.setChildScene(menuScene);  
  13.                     }  
  14.                 });  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值