Cocos2d-x理论知识最初步学习;与Android,Java swing进行对比

整个框架

  • 设计思想:导演-场景-层-精灵
  • 导演-场景-布景-角色-动作-节点
  • 架构方案:节点树-摄像机

坐标系统

  • 屏幕坐标系
  • OpenGL坐标系
  • 世界坐标系
  • 本地坐标系
  • 锚点
  • 坐标系转换
  • 逻辑数值与真实数值

内存管理

  • C/C++ 内存管理机制
  • 引用计数机制
  • 自动释放池

UI系统

  • 字体(3种)
  • 标签
  • 菜单
  • 进度条
  • 计时器

事件处理

  • 单点事件处理
  • 多点事件处理
  • 实时单点事件处理
  • 重力感应事件处理
  • 键盘事件处理

动作行为(动画)

  • 动作与动作执行
  • 动作类型
    • 瞬时动作
    • 延迟动作
    • 组合动作
    • 速度变化
    • 扩展动作
  • ActionManager

对比Android与Java swing

学习cocos2d-x理论的时候,发现它和Android和swing还是很相像的,对此总结一下增进理解。

对比项目 cocos2d-x android java swing
架构模式 导演-场景-层-精灵 MVC MVC
坐标系统 多样 单一 单一
内存管理 C/C++ Java自动 Java自动
UI系统 使用控件,可自定义 在xml中使用,可自定义 有自带的控件,自定义没有尝试过
事件处理 监听器 监听器 监听器
动作行为 多样,功能强,类型多 多样,Animation分多样,有加速器 没尝试过

对比看出,三种类型的平台都有着相同的实现方案。可见编程平台方面是互相想通的。如cocos2d-x的动画与android的动画相比,android的动画类型有渐变,平移,旋转;速度方面有加速器,有自带的也有自定义的。cocos2d-x动画分的更细,相比功能更加强大。

想必编程语言平台思想是想通的,学习过程中务必也要有个侧重点,不能各个技能都是浅尝则止,必须要有个擅长的地方。

cocos2d-x最初步学习的更多相关文章

  1. 处理内存管理和iOS Cordova项目?

    任何人都可以告诉我如何处理基于iOSCordova的项目中的内存管理“收到内存警告”当我在iPhone或iPad上运行时,我在iOSCordova项目中收到此警告.我在我的应用程序中使用CDVlocation进行地理定位.我主要是在加载基于地图的视图时收到此消息.我正在使用基于ARC的Xcode项目任何帮助管理内存警告与cordova“收到内存警告”将不胜感激.谢谢你们解决方法在CDVPlugin.m中尝试这种方式

  2. ios – 链接点击监听器上的WKWebView?

    在WKWebView类中是否存在类似onLinkClickListener的东西?我试着谷歌搜索但没有发现任何东西,我也发现了一些关于simillar类型的stackoverflow的未解答的问题.我需要一个linkClickListener的原因是,当我点击链接并且页面尚未加载时,它不会加载网站.当页面加载了监听器时,我也可以创建一个花哨的加载屏幕.解决方法你可以这样做将WKNavigation

  3. xcode – Swift 1.2中的神秘崩溃 – 仅在版本中构建

    我的理论是,Swift的内存管理在优化的版本编译中出现了一些问题,只是在NSArray从Cocoa到达的特定情况下,在我们的代码可以获得它们之前,我们将它们桥接到[AnyObject].这样的NSArray没有正确地穿过桥.但是通过转换到NSArray然后回到特定的[SomeType]Swift数组,问题就解决了.当然,我认为当苹果公司指出这一点时,他们会解决这个问题,然后我们可以停止使用这种解决方法.但直到那时,我的应用程序再次在Release版本中运行.

  4. 多个监听器用于委托iOS

    我有一个带有代理didSelectString的类搜索栏.我有一个实现委托的A类和一个实现委托的B类.但是只有来自A类的代理才被执行.代表可以有多个监听器吗?并且如何实现这一点解决方法该委托是单一消息传递协议.如果要发送更改的多个对象,则需要使用NSNotifications.您可以使用通知中心传递对象,如下所示:想要收听通知时并设置选择器

  5. Xamarin.iOS在将C#编译为本机代码时对内存管理做了什么?

    什么Xamarin.iOS关于内存管理?使用通常的IL,我们有垃圾收集器,它处理未使用的对象和浮雕程序员调用删除.当Xamarin将代码编译为本机时,这是如何工作的?谁清理了不再使用的物体?这个问题回答了编译的工作原理,但没有解释内存管理部分:HowMonoTouchworks?

  6. swift语言的学习笔记六(ARC-自动引用计数,内存管理)

    Swift使用自动引用计数来管理应用程序的内存使用。当实例并不再被需要时,ARC会自动释放这些实例所使用的内存。swift的ARC工作过程每当创建一个类的实例,ARC分配一个内存块来存储这个实例的信息,包含了类型信息和实例的属性值信息。但是,如果ARC释放了正在被使用的实例,就不能再访问实例属性,或者调用实例的方法了。为了保证需要实例时实例是存在的,ARC对每个类实例,都追踪有多少属性、常量、变量指向这些实例。

  7. Swift内存管理概述

    Object-C的内存管理经历过2个阶段:手动引用计数内存管理MRC和自动引用计数内存引用管理ARC-MRC就是由程序员自己负责对象管理生命周期,负责对象的创建和销毁,ARC的程序员不用关心对象内存释放的问题,编译器在编译的时候在合适的代码位置插入内存释放代码。以C++和C为代表的手动内存管理模式,使用起来比较麻烦,经常导致内存泄露和内存过度释放等问题。

  8. Swift ARC-自动引用计数、内存管理

    当实例并不再被需要时,ARC会自动释放这些实例所使用的内存。测试ARC输出结果从上面的例子来看,确实swift给我们自动管理了内存,很多时侯开发者都不需要考虑太多的内存管理。尽管ARC减少了很多内存管理工作,但ARC并不是绝对安全的。但是当无宿主引用所指实例被释放时,ARC并不能将引用值设置为nil,因为非可选类型不能设置为nil。

  9. 关东升的《Swift2.0》暂定名即将出版

    关东升的《Swift2.0》(暂定名)即将出版大家好:苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我将在11月左右出版,《Swift2.0》(暂定名)Swift2.0》将在《Swift开发指南》第1版的基础上添加Swift2.0的内容,同时摒弃第1版的一些不合理的内容,使得本书更加适合Swift开发者。我将连续发一些Swift2.0的学习笔记,有兴趣者,可以看一下。

  10. 初探swift语言的学习笔记六(ARC-自动引用计数,内存管理)

    Swift使用自动引用计数来管理应用程序的内存使用。当实例并不再被需要时,ARC会自动释放这些实例所使用的内存。swift的ARC工作过程每当创建一个类的实例,ARC分配一个内存块来存储这个实例的信息,包含了类型信息和实例的属性值信息。但是,如果ARC释放了正在被使用的实例,就不能再访问实例属性,或者调用实例的方法了。为了保证需要实例时实例是存在的,ARC对每个类实例,都追踪有多少属性、常量、变量指向这些实例。

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部