热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cocoa学习笔记Cocoa2d基础学习初学者必看

Cocoa学习笔记Cocoa2d基础学习是本文要介绍的内容,编程人员应该对

Cocoa学习笔记Cocoa2d基础学习是本文要介绍的内容,编程人员应该对游戏开发应该是由衷的热爱,那么本文可以帮你解决一些问题。如果你是初学者,本人觉得你有必要阅读一番。不多说,来看详细内容。

cocoa2d基础

游戏引擎:

一、场景CCScene

1.展示类场景  2. 选项类场景  3.游戏场景

每个场景都是通过不同的层(layer)的叠加和组和来实现 不同的功能的。因此,通常生个场景都是有一个或者几个层组成的。

二、层CCLayer

层是我们写游戏的重点,我们大约99%以上的时间是在层上实现我们的游戏内容。

eg:一个游戏主菜单画面是由3个层叠加实现的:Background layer Animation layer Menu layer

为了让不同的层可以组合产生统一的效果,这些层基本上都是透明或者半透明的,层的叠加有顺序的,如同事件响应机制。

Cocoa2d从技术实现角度提供一些公用层:处理菜单的菜单层(Menu),处理颜色的颜色层(ColorLayer)等.

每一层又可以包含很多各式各样的内容要素:文本(Label) 链接(HTMLLabel) 精灵(Sprite) 地图等。

三、精灵 CCSprite

精灵是整个游戏开发处理的主要对象,地方的飞机。坦克是系统AI控制的精灵,代表玩家控制的我方飞机也是精灵。甚至随机飞过的一片云,一只鸟都是精灵。

特点:位置移动 旋转 放大缩小 运动

四、导演 CCDirector

精灵不应该依赖层,层不应该依赖场景,场景不应该依赖流程。

导演代表流程,负责游戏全过程的场景切换,接受层对象/场景的要求,按照预先设计好的流程来终止,压桡,激活当前场景,引导下一个场景。但导演通常只有一个,这个是间例(singleton).Coco2D框架已经预定义了该实例,不需创建,直接使用即可。

任何时间,只有一个Scene对象实例处于运行激活状态,该对象可以作为当前游戏内容的对象的整体包容对象,对于Menu(菜单对象,继承Layer对象),通常属于当前场景的主层。

Cocos2D-iPhone的实现类

CCDirector

负责创建,管理应用程序、游戏的主窗口,在特定的条件下显示执行某个场景。

设置主程序窗口显示属性。

管理,显示场景。

Director 对象管理场景的方法主要有以下几个:

1.  主程序启劢,显示第一个场景的方法:(void) runWithScene:(Scene*) scene ;

2. 挂起当前当前正在运行的场景并压栈到代执行场景队列。将传入场景设置为当前执行场景:(void) pushScene:(Scene*) scene;

3.  执行代执行场景队列中的最后一个场景,当前场景被释放:(void) popScene;

当代执行队列中没有代执行场景时,系统自劢退出,调用end 方法。

4.  直接用一个场景取代当前执行场景,释放当前场景:(void) replaceScene:(Scene*) scene;返个凼数是经常使用的。

5.  结束场景运行:(void) end;

6.  暂停场景运行:(void) pause;画面迓存在,时间任务停止。

7.  恢复场景运行:-(void) resume;

CCScene

当前版本基本上没有附加任何特殊功能,基本上可以看成是层Layer对象的一个容器。

CCLayer

功能:接收iPone上的屏幕触摸touch操作输入

接收动力感知输入

直接提供了以下三个层:

ColorLayer颜色层(可以通过setContentSize设置层大小,改变颜色块的尺寸)

Menu菜单层(实例必须是MenueItem类或者子类的实例)

MultiplexLayer复合层 可以包含多个层的复合层。

CCSprite

一个独立的图像块,通常情况它是运动的(Action):移动 旋转 放大缩小 等效果。

我们可以设置Sprite的属性让它运动,也可以通过动作Action来达到同样的目的。(95%内容是精灵实现模拟)

1.缓存图像内容,减少相同内容文件的读取次数

2.批量提交绘画,减少OpenGL函数的调用次数。

迓有一个叫CCSpriteFrameCache 类。该类用亍管理劢画效果的全部帧图像,该类直 接提供针对一个简单的图像处理工具 http://zwoptex.zwopple.com/输出文件支持。

小结:Cocoa学习笔记Cocoa2d基础学习 初学者必看的内容介绍完了,希望本文对你有所帮助!如果对游戏开发感兴趣的友们,请参考编辑推荐。


推荐阅读
  • Android开发:巧妙运用ViewStub写出类似Tab选项卡
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • Web开发实践:创建连连看小游戏
    本文详细介绍了如何在Web环境中开发一款连连看小游戏,适合初学者和技术爱好者参考。通过本文,您将了解游戏的基本结构、连线算法以及实现方法。 ... [详细]
  • 我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 本文通过一个具体的案例,展示了如何使用 Python 爬虫技术从京东网站爬取手机的价格和参数。最近发布的 iPhone X 虽然价格昂贵,但不妨碍我们探索其他高性价比的国产手机。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
author-avatar
V陈冬梅_717
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有