cocos2dx的几种常见设计模式

一 单例模式

Cocos2dx中的单例有:CCDirector,CCTextureCache,CCSpriteFrameCache,CCScriptEngineManager等等,那为什么存在这些单例呢?

如导演类负责控制场景对象等等,由此存在一个场景控制对象即可;类似那种操作缓存数据文件之类的,或者配置文件的类等,在程序运行过程也是只需一个便可。

二 观察者模式

指被观察者含有一个数组,里边存放了所有观察者的引用,在被观察者的状态发生改变的时候,通过调用观察者的函数来通知观察者,实现了信息的传递。

三 简单工厂模式

CCSpriteFrameCache类通过定制的plist文件来实例化一系列相关的CCSpriteFrame实例,然后只需要提供精灵帧的名字就可以得到相应的CCSpriteFrame实例了。从这个意义上来说,CCSpriteFrameCache类也可以说是一个工厂类,专门负责生产CCSpriteFrame实例。同时,如果精灵帧名字相同的话,那么获取的精灵帧实例也是相同的。

四 管理者模式

管理者(Manager)专门负责管理其它类的实例的类,如CCTextureCache。

管理者类(cache类)可以简化一些可以重用的资源(比如字体、纹理、精灵帧等)的创建和管理工作,可以提高游戏性能。

但凡那些对象,在运行时创建的时间开销特别大时,而又要经常重复使用时,都可以采取此模式来提高运行时性能

MVC — 按照我的理解就拿组队系统界面为例,CPortTeamUI就是Model,定义了业务逻辑相关的行为方法,如initUI,UpdateView等;load加载的面板Panel便是View,由一组UI元素组成; ClsTeamData是Controller,负责逻辑数据管理中心。 打开界面时View要显示最新数据,则请求Controller问服务端要,当数据返回时Controller会寻找对应的Model,调用其定义的方法updateView从而执行更新行为,实际上Model会通知相关的View去实时更新。 Controller作为Model和View两者之间的联系桥梁。

Cocos2dx开发之设计模式的更多相关文章

  1. [01] cocos2d-x开发环境搭建

    cocos2d-x 是跨平台的游戏开发引擎,支持的平台有 ios , android , windows phone , web , tizen,windows等. 先来搭建开发环境,一般我们开发游戏 ...

  2. 【Cocos2d-x游戏开发】细数Cocos2d-x开发中那些常用的C++11知识

    自从Cocos2d-x3.0开始,Cocos2dx就正式的使用了C++11标准.C++11简洁方便的特性使程序的可拓展性和可维护性大大提高,也提高了代码的书写速度. 下面我们就来一起学习一下Cocos ...

  3. IOS开发常用设计模式

    IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们 ...

  4. 在WP8上搭建cocos2d-x开发环境

    在WP8上搭建cocos2d-x开发环境 转自:https://github.com/koowolf/cocos-docs/blob/master/manual/framework/native/in ...

  5. Cocos2d-x学习笔记之Cocos2d-x开发环境搭建

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Cocos2d-x源码包下载地址: http://cocos2d-x.org/projects/cocos2d-x/ ...

  6. windows环境下搭建Cocos2d-X开发环境

    最近终于有时间可心搞搞自己的东西了,呵呵,那就开始做个手机小游戏给孩子玩吧. 首先必须选定开发的框架,移动终端开源的游戏框架貌似不多,找来找去也就这个了,名字简单Cocos2d-X,是Cocos2d国 ...

  7. CoCos2dx开发:PC端调试运行正常但打包apk文件后在手机上点击闪退

    记:今天调试时出现的一个PC端调试运行正常,但打包apk文件后在手机上点击闪退的问题. 可能在不同的情况条件下,会有不同的原因导致apk安装后闪退问题.拿android studio等软件来说,开发安 ...

  8. 用Cocos2dx开发棋牌游戏的观点解析

    众所周知,目前棋牌游戏特别的火.很多游戏公司都想在这一块赚钱,可是却不知用什么软件比较好的去开发棋牌游戏,对此,我列出了两款比较靠谱的软件去开发棋牌游戏,希望对大家有帮助! 第一款软件是cocos2d ...

  9. Cocos2d-X开发教程-捕鱼达人 Cocos2-x development tutorial - fishing talent

    Cocos2d-X开发教程-捕鱼达人 Cocos2-x development tutorial - fishing talent 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱 ...

随机推荐

  1. python-setuptool安装

    安装setuptools时报error: ”RuntimeError: Compression requires the (missing) zlib module“ 解决办法: yum安装zlib和 ...

  2. 激活WINDOWS SERVER 2019

    Windows Server 2019 Datacenter WMDGN-G9PQG-XVVXX-R3X43-63DFGWindows Server 2019 Standard N69G4-B89J2 ...

  3. memset与fill的区别

    简介与区别 memset函数 按照字节填充某字符 在头文件<cstring>里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件<algorithm>里面 ...

  4. [STM32F103]定时器PWM输入

    typedef struct { uint16_t TIM_OCMode;  //PWM模式1或者模式2 uint16_t TIM_OutputState; //输出使能 OR失能 uint16_t ...

  5. ipset 教程

    ipset介绍 ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以 ...

  6. springboot学习三:整合jsp

    在pom.xml加入jstl <!--springboot tomcat jsp 支持开启--> <dependency> <groupId>org.apache. ...

  7. java实现字符串和LIST,MAP转换

    需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...

  8. boost的named_mutex的一些坑

    最近遇到一个问题,程序在a用户下运行后,然后注销windows,登陆b用户,发现程序奔溃,抓了下堆栈,发现了boost的named_mutex一些细节,记录下 #include <boost/i ...

  9. python使用xlrd, xlwt读取excel文件和 写入excel文件

    python 3.6 首先在cmd下执行安装指令 xlre和xlwt : pip  install  xlre    pip install  xlwt #-*- coding: utf8 -*-im ...

  10. stm32 HAL库笔记(一)——串口的操作

    昨天分析了普通io口的使用,和初始化代码流程,回顾一下,首先定义一个配置io口功能的结构体,然后开启时钟,再去配置这个结构体里面的各个成员变量,每个成员变量都有很多种选择,可以看各个成员变量 后面的注 ...