cocos2dx3.3开发FlappyBird总结十五:记录玩家得分

在游戏结束时,需要更新和获取最新得分。

设计一个工具类,只有类方法,这样外部就能很方便地获取和更新值。

/**
 * This is a help class, using to operate the user information conveniencely
 */
class RecordTool {
public:
  /**
   * Get the best score with a key, store in the UserDefault
   */
  static int getBestScore();

  /**
   * Update a new score in the local UserDefault
   *
   * @param bestScore The new value of score
   */
  static void setBestScore(int bestScore);
};

#endif /* defined(__EngryBird__RecordTool__) */

这种写法有很多好处,比如外部不需要传key,由内部控制,这样就不会全工程散落了,维护起来就简单多了。

实现是很简单的,是使用UserDefault来管理的,这个类是引擎提供的,跟IOS的NSUserDefault的使用是很像的,毕竟引擎是由2d而来的。

时间: 2024-10-03 23:39:36

cocos2dx3.3开发FlappyBird总结十五:记录玩家得分的相关文章

cocos2dx3.3开发FlappyBird总结十:背景层设计

游戏背景层的任务是很简单的,只是根据当前时间来显示白天或者黑夜背景图,提供获取地面的高度方法. #ifndef __EngryBird__BackgroundLayer__ #define __EngryBird__BackgroundLayer__ #include "cocos2d.h" /** * The game background,showing the background information * in the game. */ class BackgroundLay

cocos2dx3.3开发FlappyBird总结十六:游戏层实现

游戏有三种状态,准备开始.游戏中.游戏结束,定义一个枚举来表示: /** * The status of game, it has three status. */ typedef enum tag_GameState { /** The game hasn't started, but ready to start */ kGameStateReady = 1, /** The game has started, and the player is playing the game */ kG

cocos2dx3.3开发FlappyBird总结十二:状态层设计

状态层是比较复杂的了,状态层需要与游戏层通信,因此也需要为游戏层先设计一个代理类,以便状态层遵守游戏层的代理,这样游戏层就可以在游戏开始.得分.结束时,告诉状态层做出相应的状态表现了. 游戏层的代理类: /** * The delegate between status layer and game layer */ class GameStatusDelegate { public: /** * When the game start, this method will be called *

cocos2dx3.3开发FlappyBird总结十四:常量定义

游戏层中水管等需要常量: #ifndef EngryBird_AppConstant_h #define EngryBird_AppConstant_h /** * The pipe has four state, using the following tag to mark. * > the state up * > the state down * > the state passed * > the state new created */ const int kPipeU

Windows 8开发入门(十五) Windows 8中的4种视图状态和锁屏通知

在Windows 8中的应用程序在默认打开时是全屏的,此时我们如果需要看其他应用程序就只能回到Metro 起 始页面重新选择其他程序吗?这样就会很麻烦,所以Windows 8应用程序有4种视图状态 (ApplicationViewState),类似于普通窗口程序的最小化.最大化一样可以看到其他应用程序同时允许多个应 用程序的使用. 视图状态切换方法:用鼠标点击屏幕最上方按住不放往右或者往左拖动.移动中间间 隔栏等等. ApplicationViewState: // 摘要: // 当前应用程序的

Windows 8风格应用开发入门 三十五 触控输入

Windows 8设备通常具有多点触摸屏,用户可以同时使用多个手指来进行不同的输入交互,如点击. 拖动或收缩等手势操作.另外Windows 8中将触摸.鼠标和笔/触笔交互是作为指针输入进行接收.处理 和管理. 一.手势处理 首先我们来汇总一下Windows 8中常用的手势都有哪些. 开发入门 三十五 触控输入-windows10触控板手势"> 1,点击:用一个手指触摸屏幕,然后抬起手指. 2,长按:用一个手指触摸屏幕并保持不动 . 3,滑动:用一个或多个手指触摸屏幕并向着同一方向移动. 4

Windows 8风格应用开发入门 二十五 数据绑定

数据绑定是一种简单方式来显示数据,UI元素与数据对象之间的连接或绑定是允许数据在两者之间 流动的.另外建立了绑定且数据发生变化时,相应的UI元素会自动显示变化. 如何将UI元素与 数据进行绑定 开发入门 二十五 数据绑定-windows开发入门"> 从上面图可以知道,每个绑定必须指定一个源和一个目标. 其中源对象可以是任何CLR对象,包括目标元素自身和其他UI元素.目标可以是 FrameworkElement的任何DependencyProperty(依赖属性). 数据绑定引擎从Bindi

Android开发入门(十五)使用菜单 15.3 上下文菜单

在上一节,我们已经知道了在按MENU键的时候,如何显示选项菜单.但是,除了选项菜单,你也可以显示 一个上下文菜单.上下文菜单通常是和activity中的组件相关联的.当用户长按一个组件的时候,它的上下 文菜单就会被触发.例如,用户长按一个Button,一个上下文菜单就有可能被显示. 如果想要把一个 组件与一个上下文菜单联系在一起,就需要在组件上面调用setOnCreateContextMenuListener(). 下 面展示如何显示一个上下文菜单(Context Menu). 1. 使用之前的

Android开发入门(十五)使用菜单 15.2 选项菜单

现在,我们就可以去修改上一节中的项目了.这样,在用户按menu键的时候就会弹出选项菜单了. 1. 使用上一节中的工程,在MenusActivity.java中添加一些代码. public class MenusActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.o