iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android

2021/05/19 18:47 · 提高注意力训练 ·  · iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android已关闭评论
专注力注意力训练提升
摘要:

iOS锻炼注意力游戏,BrickRage,像瀑布一样激爽的俄罗斯方块,让你大呼过瘾#iOS#Android这款BrickRage(中文名:暴走砖块)或许能够带起你的节奏,因为它不但快,还很虐。BrickRage的核心玩法还是「俄罗斯方块」式的补全与消除,不同的是,它是从下往上堆砌砖块。不,它快到根本不需要堆砌,砖块补全的瞬间就会被引爆,体验十分激爽。一个小技巧

iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android

这款 Brick Rage(中文名:暴走砖块)或许能够带起你的节奏,因为它不但快,还很虐。
Brick Rage 的核心玩法还是「俄罗斯方块」式的补全与消除,不同的是,它是从下往上堆砌砖块。不,它快到根本不需要堆砌,砖块补全的瞬间就会被引爆,体验十分激爽。
一个小技巧是,点击屏幕会发射一枚「弹药」,上划屏幕则可发射与需要补全的格数相当的「弹药」(缺 n 格就发射 n 格以便刚好完成消除)。
AppSo(微信号 appsolution)提醒,玩这款游戏前,你应该看看关于游戏内道具的功能机制。可以看到,红色和绿色砖块带来的是减益 Buff,黑色和紫色的砖块则是增益 Buff。游戏中还有能量积累,能够在关键时刻速清障碍。
看到这些经由绿色砖块产生的界面扭曲效果了么,它们会利用视错觉来干扰你的注意力和发射砖块的精准程度。
游戏初始的「弹药」就是砖块,获得金币后能够随机购买到各种各样奇怪的「弹药」,什么飞天小女警、奥特曼……开发者的脑洞在这里得到最大体现。
游戏画面看似粗糙,实则是像素与贴图的结合,新「弹药」的包装效果看起来就像儿时四驱车的零配件,充满复古情趣。
AppSo(微信号 appsolution)再次重申,游戏节奏很快,快到我无法顺利获取「弹药」发射的游戏截图,文中第一张截图是我在录制完游戏过程后截取的录像资料。游戏有内置广告,观看广告片获得双倍金币,也可以通过内购来去除。
Brick Rage(暴走砖块)适用于 iOS 6.0+ 的 iPhone 和 iPad 以及 Android 2.3+ 的设备,iOS 版 49.9 MB,Android 版 18 MB,免费有内购。
本文由让手机更好用的 AppSo 原创出品,关注微信号 appsolution,回复「游戏」获得更多优质游戏推荐。
题图来自:Flickr

iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android  第1张

iOS锻炼注意力游戏,Focus Timer,倒扣手机就能集中精力?这款计时 App 让你效率翻倍 #iOS #Android

在效率 app 里,「时间记录」和「专注」算是两个热门领域,这方面的 app 也并不少见。AppSo(微信公众号 AppSo)本次推荐的 Focus Timer,在兼顾了上述两个功能的同时,也很难得地做到了简洁易用。
很多时间记录类 app 有一个共同的问题,就是需要手工记录开始和结束。在工作开始和结束时都需要在 app 上点击一下。对于我这样的马大哈来说,经常工作做到一半注意力一拐就被带跑偏到其他事情上忘了去点,等想起来时 app 已经走过了几个小时,记录完全无意义……
而 Focus 的记录操作则不同:只需要进入 app 后,将手机倒扣在桌面上,听到一声震动, app 即开始记录时间。工作告一段落时,将手机翻过来,计时则自动停止。
这样做的好处有?2 点:
用最简洁的方式做好时间记录,无需任何点击。一旦中途状态改变例如临时出门或者看下微信,一拿起手机计时立即停止,这样记录的数据也相对更为精确。
倒扣手机的设计也无形中,帮我们屏蔽掉了潜在的干扰源,更容易进入状态。
Focus Timer 还能按照项目来进行事项的分类,项目类别都能根据我们的实际情况来自定义。
无论是看书,健身,背单词还是练习乐器,都可以分别记录,而且每个项目还能设置不同风格的壁纸,好看又好用。
Focus Timer 还有报表统计功能,可以让你回顾最近一段时间的工作情况,找出自己的效率最佳时间段。
AppSo(微信公众号 AppSo)还发现了其它人性化的细节:
可设置在翻开手机一段时间内(10 秒到 1 分钟)再翻回去计时并不会打断,方便工作到一半拿起来看个时间;
整点提醒功能,可以提醒你工作一段时间后休息一下。
Focus Timer 最吸引我的地方是:它实际上是一种「弹性」的工作法。在此之前,我曾尝试过几款番茄工作法的 app,但总觉得不适合。因为我是一个比较随性的人,状态好的时候可以一连工作几小时都不想停,而番茄工作法的分段休息设计,很容易打断我的状态。另外,工作时总是惦记着番茄钟的计时,也很让人分心。
相比之下,Focus Timer 并不需要你计算番茄,扣下手机,开始干活,累了,就翻开刷两条微博——如此而已。
Focus Timer 适用于?iOS 8.0+?的?iPhone?和?iPad 及 Android 4.1+ 的设备,iOS 版大小 100?MB,售价 18 元。Android 版大小 9 MB,免费有 18 元付费版。
本文由让手机更好用的 AppSo 原创出品,关注微信公众号 AppSo,回复「下雨」获取一个在线白噪音网站,想专心做事的时候都可以用(客户端直接点击获取)。

iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android  第2张

iOS锻炼注意力游戏,初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比

转自eseedo的博客作者微博

?

前言

iOS7 beta发布后,大部分开发者和用户的注意力都集中在了iOS 7的全新UI交互设计界面上。一直负责硬件工业设计的Jony Ive首次全面负责苹果的软件和硬件设计工作,自然要把他自己的设计理念完整诠释一番。加上和iOS之父Scott Forstall一直以来的不和,Jony对之前拟物化风格的全面颠覆设计也是必然的结果。

?

如今iOS7 已经出了beta3版本,在一番喧嚣的或谩骂或惊叹之后,人们逐渐开始接受了iOS 7的新设计风格。其实iOS 7并非是简单的copy windows8和android的flat设计风格,而是将原来令人惊叹的视觉效果从静态的图标和界面悄然转移到与用户的互动之中。或许iOS 7的UI设计并没有大家想的那么糟糕,以Jony的设计功底,相信只要他继续呆在苹果并负责设计工作,一定会让iOS 的界面和交互设计走上一条全新的道路。

? ?

对于用户来说,iOS 7的全新界面设计风格就是一切。而对于开发者来说,iOS 7也增加和完善了不少新东西。由于目前iOS 7仍然是beta版本,很多东西都不是最终的,但还是可以从现有发布的工具和API中学到不少。

?

最近这几天仔细阅读了What’s New in iOS 7,iOS 7 for Developers, What’s New in Xcode等官方文档,并观看了
WWDC 2013中有关iOS 7的大部分视频,对于iOS 7有了初步的印象。

? ?

从个人了解的情况来看,除了全新升级的Xcode 5开发工具,对于iOS 7开发者来说需要重点关注的三个最大变化是:

?

1.iOS 7全新的UI 交互设计,以及与之相关的API(UIKit Dynamics), Text Kit

相关的文档有:

iOS Human Interface Guidelines:Designing for iOS 7 (中文版:
iOS 人机交互指南之UI设计基础:Designing for iOS 7)

?

iOS 7 UI Transition Guide: Before You Start ?(中文版:
iOS 7用户界面过渡指南)

?

WWDC 2013中的相关视频有:

Advanced Techniques with UIKit Dynamics(Session 221),

Advanced Text Layouts and Effects with Text Kit (Session 220),

Best Practices for Great iOS UI Design(Session 225),

Building User Interfaces for iOS 7(Session 201),

Customizing Your App’s Appearance for iOS 7(Session 214),

Custom Transitions Using View Controllers(Session 218)

Exploring Scroll Views on iOS 7 (Session 217),

Getting Started with UIKit Dynamics(Session 206),

Implementing Engaging UI on iOS(Session 226),

Introducing Text Kit(Session 210),

Using Fonts with Text Kit(Session 223),

What’s New in iOS User Interface Design(Session 208),

?

细心的开发者可以看到在WWDC 2013中与iOS 7的UI设计相关的视频是最多的,也足以看出苹果对此的重视程度。

?

2、升级后的真正意义上的Multitasking多任务管理

WWDC 2013中的相关视频是:

What’s New with Multitasking (Session 204)

What’s New in Foundation Networking(Session 705)

What’s New in Core Location

What’s New in State Restoration

Improving Performance and Energy Usage

Protecting Secrets with the Keychain

Energy Best Practices

Protecting your User’s Privacy

?

增强的Multitasking提供了三个非常有用的新特性

(1)Background Fetch(对一些社交类应用非常有用)

(2) Remote Notifications(对阅读聚合类应用非常适合)

(3) Background Transfer Service(对一些社交照片分享类应用很有用),和CFNetworking有关。还可以和自动判断所在地区相结合,比如地图类应用,当用户进入一个新的地理区域后自动下载相关地图。即便用户已经关闭了该应用,仍然有效。

?

3.游戏开发的新框架和新性能

这部分又包括全新添加的Sprite Kit Framework,全新添加的Game Controller Framework,以及增强的Game Center。

?

其中Sprite Kit Framework和Game Controller Framework凸显了苹果对于游戏市场的野心。Sprite Kit Framework可以帮助现有的iOS开发人员快速转向游戏开发,而Game Controller Framework则支持真正的硬件游戏控制器(手柄神马的),为苹果推出自己的专用游戏控制器和传说中的iTV奠定了坚实的基础。苹果甚至可以借此彻底抢占家用游戏主机的市场,相信Microsoft, SONY和Nintendo对苹果的野心也是心知肚明的。

?

相关的苹果官方开发文档有:

Game Controller Programming Guide

Sprite Kit Programming Guide:About Sprite Kit

?

苹果罕见的为Sprite Kit和Game Controller提供了一个非常完整的多人对战(最多支持4人,支持真正的外接游戏手柄)示例项目以及代码解读文档:

code: Explained Adventure: Introduction

代码下载链接:(
Adventure.zip)

?

WWDC 2013中的相关视频有:

Designing Games with Sprite Kit (Session 503),

Integrating with Game Controllers(Session 501),

Introduction to Sprite Kit(Session 502),

?

对于一般的iOS 应用开发者来说,重点关注的就是1和2这两大块。而对于游戏开发者来说,特别是2D游戏开发者,不妨了解一下苹果的这个全新游戏开发框架。

?

?

现状

对于已经在手机游戏开发市场浴血奋战的开发者来说,目前最常用的几款手机游戏开发引擎工具几乎集中在cocos2d-iphone,cocos2d-x,unity 3d,adobe flash air, html5。其中cocos2d家族(在中国主要是cocos2d-x,在海外cocos2d-iphone用的更多些)开发的2D游戏几乎占据了收入排行榜的80%以上,而unity3d也是当仁不让的3d 手机游戏开发引擎。少数资本雄厚的开发商用unreal等商用引擎,但算不上主流。国外还有少数开发者用corona, game salad等引擎或工具,但充其量也只是占据了少数的业余爱好者市场,更谈不上主流。

?

cocos2d从2009年发布cocos2d-iphone到现在不过4年的时间,但却伴随着iOS和智能手机市场的崛起而迅速壮大。2011年才发布的cocos2d-x更是在短短两年时间内就成了2d手机游戏开发的首选引擎工具。

?

或许是苹果在为即将发布的iTV和家用游戏机做最后的准备,这次iOS 7的变化中,全新的Sprite Kit Framework和Game Controller Framework可谓是提供给游戏开发者的屠龙宝刀。

?

那么,同为2d游戏开发引擎工具的cocos2d和Sprite Kit,可谓是倚天屠龙,那么究竟那一柄利器会让开发者更为高效的开发游戏呢?iOS 7 之后,究竟还有无必要继续使用cocos2d?

?

在接下来的内容中,本文将对Sprite Kit和cocos2d做一个简单的对比,并提出自己的一些看法。

?

不过,在继续之前,强烈推荐对Sprite Kit感兴趣的开发者看看WWDC 2013中的相关视频,以及官方的开发指南和示例项目代码。

?

?

Sprite Kit 和cocos2d开发对比

这里假定看此文的朋友对cocos2d已经有一定的了解,当然,即便不懂cocos2d也不会看不懂,只是对于两者的对比可能缺少感性的认识。这里以cocos2d-iphone为例,考虑到cocos2d-x的主要特性都是从cocos2d-iphone移植的,就不另作特别说明了。

?

1.所支持的主要特性对比

作为一款被市场普遍接受的2d游戏开发引擎,cocos2d支持场景管理(scene),场景切换(transitions),精灵和精灵表单,动作,动画和特效,菜单和菜单按钮,内置支持box2d(使用c++语言)和chipmunk(使用c语言)物理引擎,粒子特效,文本渲染,纹理图集,瓷砖地图,视差滚动,音效,暂停/恢复,快速纹理,opengl es 1.1(cocos2d 1.x)和opengl es 2.0(cocos2d 2.x),等等。

?

而作为苹果官方内置的游戏开发框架,Sprite Kit几乎支持cocos2d的所有主要特性,在物理引擎方面更是无需借助外力。

?

但就所支持的特性来说,两者不分高下。

?

在仔细看了相关的文档和视频后,我甚至觉得苹果是直接把cocos2d-iphone引擎维护团队的某位牛人挖走了,然后改头换面弄了一个Sprite Kit。难怪cocos2d-iphone的主要作者Riq先生在观看了Sprite Kit的演示视频后油然而生一种“既生瑜何生亮”的感叹。

?

?

2.安装和配置对比

cocos2d 的安装配置其实很简单,只需要在Terminal中切换到所在的目录,然后输入一个命令行即可完成安装。然后在Xcode中创建新项目选择对应的cocos2d或cocos2d-x模板即可。

?

但相比Sprite Kit来说,要借助Terminal和命令行命令的安装方式还是稍逊风骚。Sprite Kit作为内置的游戏开发框架无需安装。而对于新的游戏项目,开发者只需要在Xcode 5中选择SpriteKit Game模板即可。需要注意的是,SpriteKit Game模板默认是采用storyboard的。

?

3.帮助文档对比

cocos2d的帮助文档可以借助doxygen整合到Xcode中,但通常我个人偏好使用Dash来查找所需API的帮助文档。

?

Sprite Kit在这方面又赢了,因为是内置的framework,可以直接在Xcode的documentation中查看帮助文档,而且Xcode 5的帮助文档非常便于使用,非常人性化。

?

4.应用启动流程对比

在使用cocos2d开发的游戏中,启动流程如下:

main.m --->AppDelegate的didFinishLaunchingWithOptions方法--->IntroLayer的onEnter方法--->特定游戏的首界面或加载界面

?

在使用Sprite Kit开发的游戏中,启动流程如下:

main.m---> XXXAppDelegate(XXX为项目名称)--->XXXViewController的viewDidLoad方法--->特定游戏的首界面

?

5.核心类对比

在进行对比之前,先对cocos2d的核心类做一下简单的回顾,这部分也可以完全跳过。

?

cocos2d的核心类包括CCNode,CCScene,CCLayer三个没有具体视觉呈现的抽象类,以及CCTexture纹理类,CCSprite精灵类,CCLabel文本标签,CCMenu菜单等。

?

(1)CCNode

CCNode是Cocos2d中最为重要的类,也可以说是整个cocos2d的基础,它是所有节点的基类,它是一个抽象类,没有视觉表现,定义了所有节点都通用的属性和方法。

?

在Cocos2D中,所有要绘制到屏幕的对象,或是自身包含要绘制到屏幕中的对象,都属于CCNode类。最重要的几个CCNode类分别是CCScene、CCLayer、CCSprite、CCMenu。CCNode的主要作用:

a.包含其他的CCNode节点(addChild、getChildByTag、removeChild等方法)

b.通过定时器预定消息(schedule、unschedule等方法)

c.执行动作(runAction、stopAction等方法)

?

CCNode有非常多有用的属性,比如锚点(anchorPoint),camera(游戏视角),children(子节点数组),contentSize(节点大小),position(位置),rotation(旋转角度),scale(缩放比例,又分为scale,scaleX,scaleY),skew(变形角度,分为skewX和skewY),tag(标识值),userData(自定义的数据指针对象),visible(是否可见),zOrder(视觉显示的z顺序值),等等。有些属性不太常用就不在这里一一列出,大家可以参考官方文档或dash里面的帮助文档。

?

CCNode主要实现三大类方法,分别是对子节点的处理,使用定时器预定消息,以及执行动作。

?

其中对子节点的处理又包括添加、获取和删除子节点。

?

其中执行动作的方法包括运行某个特定的动作,停止动作,停止某个特定动作,停止动作列表中的某个特定动作,获取动作列表中的某个特定动作,获取动作的数量等。

?

其中预定消息主要是update方法,可以设置特定的时间间隔,或默认按每帧来调用。

?

除了以上方法外,CCNode还支持坐标转换,视图-矩阵转换,初始化节点等多个方法,可谓威力无比。

?

(2)CCScene

CCScene是CCNode的子类,和CCNode一样,也是一个抽象类。事实上,CCScene和CCNode几乎完全相同,唯一差异就在于CCScene的锚点位置默认在屏幕中心。如果打开模板中CCScene.h文件,会发现其中只说明CCScene继承自CCNode,并没有任何其他内容。

?

当前版本的Cocos2D-iPhone中,CCScene类基本上没有附加任何逻辑机制和特殊功能。通常建议将CCScene作为所有其他节点的父节点,看作CCLayer(层)对象的一个容器。

?

需要说明的是,通常CCScene的子节点都直接继承自CCLayer。CCLayer包含各个游戏对象。因为大多数情况下场景对象本身不包含任何游戏相关的代码,而且很少被子类化,所以它一般在CCLayer对象里通过+(id)scene静态方法来创建。

?

CCScene场景类支持多种场景切换效果。

?

(3)CCLayer

一个CCLayer是屏幕上可绘制的区域,可以是半透明的,这样就可以看到CCScene下面的其他层。在游戏编程的过程中,开发者大部分时间都需要跟层打交道。

?

CCLayer直接继承自CCNode,作为精灵节点和其他节点的容器,同时可以接收触摸输入和加速计输入的信息,前提是上述接收功能已被启用。

?

CCLayer类的作用主要是三个:作为其它子节点的容器和组织者,接收触摸事件,接收加速计事件。CCLayerColor是一个透明的、可以按照RGB 设置填充颜色的层,是实现CCRGBAProtocol协议的CCLayer子类,继承了CCNode所有属性和方法,同时还可以接收触摸事件和加速计事件。它的特有属性包括color(ccColor3B类型的色彩),opacity(Glubyte类型的透明度),blendFunc(ccBlendFunc)类型的混合模式。

?

(4)CCMenu菜单

CCMenu继承自CCLayer,是一个菜单管理选择画面层,该画面以Menu对象为集合类,由MenuItem类实例组成各种按钮。CCMenu类提供的方法主要用来按横向、竖向或者多行列排序展示MenueItem的类实例。

?

(5)CCTexture纹理

在游戏运行中,所有图像文件(PNG、PVR)都被加载成GPU可以理解的OpenGL ES纹理,而精灵则对应着这些纹理图。Cocos2D内置一个纹理缓存管理器(CCTextureCache)来保持这些纹理图。

?

在cocos2d中,和纹理相关的类包括CCTexture2D,CCTextureCache和CCTextureAtlas。

?

在Cocos2D中,使用CCTexture2D(纹理)从图片、文本或源数据中创建OpenGL 2D纹理,所创建的纹理对象使用2的乘方来填充。

?

CCTextureCache(纹理缓存)作为单例使用,用于加载和管理纹理。一旦纹理加载完成,下次使用时可使用它返回之前加载的纹理,从而减少对GPU和CPU内存的占用。

?

使用CCTextureAtlas(纹理图集)来实现纹理图集。纹理图文件可以是PVRTC、PNG或任何Texture2D所支持的文件类型。可以对纹理图集的矩形进行实时的更新,添加,删除或重排序。

?

(6)CCSprite精灵

CCSprite是Cocos2D游戏开发中最常用的类,也是cocos2d引擎的灵魂。

?

在游戏开发中,经常会遇到精灵(sprite)这个术语。精灵是一个图像,可以在屏幕上独立地移动。一个精灵可能是玩家角色、敌人,或者是大的背景图像。一般情况下,精灵来自于开发者所准备的PNG或PVRTC图像。一旦图像载入内存,精灵将被转换成纹理图,从而被iPhone GPU用于在屏幕上渲染。

?

生成精灵最简单的方法是把图片文件加载进CCTexture2D纹理,然后将它赋给精灵。精灵可以接受其他精灵作为子节点。CCSprite默认锚点位置是(0.5,0.5),也就是节点的几何中心。

?

如果一个精灵的父类是标准CCNode节点,那么它和其他CCNode的属性和方法没有太大区别。如果一个精灵的父类或任何一个祖先类是CCSpriteBatchNode,那么具备的特性包括:更快地纹理渲染、不支持Camera、不支持GridBase、不能单独设置Alias/Antialias属性、不能单独设置混合模式、不支持视差滚动。

?

(7)CCSpriteBatchNode精灵表单和CCSpriteFrame精灵帧

如果仔细看看CCSprite相关代码(CCSprite.h文件),会发现在游戏的每一帧都会调用-(void)draw方法。在draw方法中,每次在屏幕中绘制一个精灵时都会调用真实的OpenGL ES命令(gl为前缀的方法,详见gl.h)。对于每个精灵,OpenGL ES都需要将纹理图绑定在这个CCSprite上,然后将其绘制在屏幕上(称为渲染)。

?

在屏幕上真实显示图像的像素前,还有一件事要做:iOS提供的OpenGL ES驱动将把OpenGL ES的命令转换成GPU可以理解的硬件编码,从而让GPU显示图像。作为一个游戏开发者,无需了解更多驱动细节,只需明白一点,每次调用OpenGL ES的命令都将耗费OpenGL ES驱动的CPU时钟。如果尽可能地减少OpenGL ES的调用,游戏的运行将更为顺畅。

?

要实现这一点,就需要让OpenGL ES一次性处理所有纹理图,而使用CCSpriteBatchNode和纹理图集就能实现这一目的。

在使用精灵表单时,CCSpriteBatchNode、CCSpriteFrame和CCSpriteFrameCache常常配合使用。

?

(8)CCDirector导演

CCDirector(导演类)是Cocos2D游戏引擎的核心。CCDirector是一个单例,它保存Cocos2D的全局配置设定,同时管理Cocos2D场景。主要作用如下:

a.访问和改变场景;

b.访问Cocos2D的配置细节;

c.访问视图(OpenGL、UIView、UIWindow);

d.暂停、恢复和结束游戏;

e.在UIKit和OpenGL之间转换坐标。

?

(9)CCAction动作

如果说CCSprite是cocos2d的灵魂,那么CCAction则是cocos2d绚丽多彩的外表。

?

任何一个游戏中的角色都不会在原地一动不动,使用动作可以让玩家更好地产生游戏中的参与感,并沉浸其中。

?

可以把节点动作想象成给所有CCNode节点对象下达的命令。这些动作可以修改节点对象的各种属性,如position(位置)、rotation(旋转)、scale(比例)等。如果这些属性是经过一段时间之后修改的,属于CCActionInterval(区间动作),否则属于CCActionInstant(瞬时动作)。

?

cocos2d默认提供了多种不同的基本动作,同时开发者还可以使用组合动作,ease动作,延迟动作,方法回调动作,块语句调用动作,反转动作,特殊动作来让cococs2d的游戏世界丰富多彩。

?

此外,cocos2d还提供了20多种特效,特效也是动作,只是其原理是利用cocos2d的网格来生成动作。特效会调整节点的网格属性。网格是节点的一种新属性,使用网格可以将节点划分为更小的方块或瓦片,通过移动组成每个方块的顶点调整节点的属性。

?

在cocos2d中还提供了用于创建动画的另一种特殊动作,CCAnimate、CCAnimation和CCAnimationCache这三个类。在Cocos2D中实现动画其实很简单,只需从精灵表单(CCSpriteBatchNode)中获取一系列图片,按照特定的顺序排列,最后在精灵对象上执行特定的动作。

?

(10)CCLabel文本渲染系统

cocos2d中提供了三种用于文本渲染的类,CCLabelTTF,CCLabelAtlas,CCLabelBMFont.

在使用Cocos2D开发的项目中,经常用CCLabelTTF类显示一些静态的标签和文本。CCLabelTTF类继承自CCSprite,主要用于渲染文本标签。使用CCLabelTTF类可以用很少的代码将文本嵌入到游戏之中。

虽然使用CCLabelTTF显示静态标签文本比较方便,但其渲染速度相对较慢,且通常用于显示纯文本。为了提高文本渲染速度,同时为在项目中显示文本提供更大的灵活性,Cocos2D提供了CCLabelTTF的替代类CCLabelAtlas。

CCLabelBMFont类支持不同宽度的字符,并且有很多第三方的编辑器支持,比CCLabelAtlas更灵活。

?

(11)CCTileMap瓷砖地图(瓦片地图)

瓷砖地图(Tile Map)是图形界面程序设计和游戏设计领域中常用的技术,也有人将其翻译成“瓦片地图”。其原理是用小的瓷砖(Tile)拼接出一张大的地图。这样做的好处很多,最明显的当然就是节省内存,大大提高OpenGL的渲染绘图性能。很多游戏开发引擎都内置了对瓷砖地图的支持,Cocos2D当然也不会例外。

?

瓷砖地图其实是二维数组,数组中的每个元素都包含地图中的某个特定区域信息。此类信息包括该区域中所显示的图像、瓷砖的碰撞属性等。

?

对于创建游戏中的大型关卡(特别是RPG角色扮演类游戏)瓷砖地图非常有用。即使游戏不是很大,如果为每个关卡创建不同的滚动背景,也需要用到瓷砖地图。

?

(12)CCParticleSystem(粒子系统类)

粒子系统是计算机图形学中用来模拟一些特定效果的技术,特别是一些模糊的现象。这些现象用传统的渲染技术难以实现。使用粒子效果可以模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或发光轨迹这样的模糊而又抽象的视觉效果。

?

在Cocos2D中提供了几个与创建和编辑粒子系统相关的类。了解并掌握了这些类之后,就可以在游戏中轻松的创建和编译粒子系统。其中主要是CCParticleSystem、CCParticleSystemQuad和CCParticleBatchNode类。此外cocos2d还内置了多种粒子特效。

?

以上概念对于cocos2d游戏开发者来说应该是非常熟悉的了,这里再次归纳一下是为了便于和Sprite Kit进行全面的对比。

?

实际上,以上的核心类就是一款cocos2d游戏的核心组织元素。

?

有了这十一大核心类,可以充分发挥开发者的创意和想象力,开发出令人唏嘘不已的游戏体验。事实上,cocos2d在过去4年内的巨大成功也要归功于这十一种利器。

?

那么,对比已经相对比较完善的cocos2d,Sprite Kit又靠什么来取胜呢?

?

?

接下来让我们一起来了解下Sprite Kit。

根据官方的文档和视频,Sprite Kit由三大部分组成,分别是Scene(场景),Actions(动作)和Physics(物理)。Scene当然是游戏场景及其中的角色,背景等;Actions则负责处理游戏角色的动作动画特效音效等,Physics则专门负责物理模拟。仅从这一点来看,Sprite Kit和cocos2d的本质是相似的。

?

当我们在Xcode中查看SpriteKit.framework的Headers时,会发现其中的类并不多,只有21个.h文件,打开SpriteKit.h就可以看到其中的代码如下:

#import

#import

#import

#import

#import

#import

#import

#import

#import

?

#import

#import

?

#import

#import

?

#import

?

#import

#import

#import

?

再加上一个SpriteKitBase.h和SpriteKit.h,一共只有21个.h文件。而cocos2d中有多少个.h文件呢?我大概数了下,至少超过250个~

?

这个该如何比较呢?既可以说cocos2d功能全面,也可以说Sprite Kit设计简洁,秉承了苹果一贯的风格。

?

好了,现在可以来看看
Sprite Kit的核心类有哪些:

?

(1)SKNode vs CCNode

SKNode对于Sprite Kit的重要性如同CCNode对于cocos2d的意义一样。cocos2d的游戏场景可以用场景节点图的形式来展现,而节点同样是Sprite Kit游戏场景的根基。

?

Sprite Kit游戏中的所有视觉元素均使用SKNode的子类来绘制。

?

SKNode的几大子类包括:

SKSpriteNode(对应CCSprite,用于绘制精灵纹理);

SKVideoNode(在cocos2d中无对应类,用于播放视频);

SKLabelNode(对应CCLabel,用于渲染文本);

SKShapeNode(在cocos2d中无对应类,用于渲染基于Core Graphics路径的形状);

SKEmitterNode(对应CCParticleSystem,用于创建和渲染粒子系统);

SKCropNode(无对应类,用于使用遮罩来裁剪子节点);

SKEffectNode(无对应类,用于在子节点上使用Core Image滤镜)。

?

类似cocos2d,SKNode也是用节点树的形式来组织的,这一点和iOS的视图层级也有相似之处。通常情况下,在一个游戏场景中,SKScene(场景节点)将作为根节点存在,而其它的内容节点都是其子节点。场景节点将负责运行一个动画循环,从而来处理其它子节点的动作,模拟物理世界,并将节点数中的内容渲染到屏幕上。

?

节点树中的每一个节点都为其子节点提供了一套坐标体系。当我们将某个子节点添加到节点树中时,可以通过设置其position和zPosition属性将其放置在父节点的坐标体系中。可以通过xScale,yScale和zRotation等属性来缩放和旋转节点。当某个节点的坐标体系被缩放或旋转时,其自身内容和所有子节点的内容也会发生同样的变化。

?

类似CCNode,SKNode自身是个抽象类,没有具体的视觉呈现。但SKNode的子类则可以分别用于绘制不同的视觉内容。

?

SKNode的frame属性可以获得节点的视觉内容的边框,通过调用calculateAccumulatedFrame方法可以获取包含该节点和其所有子节点的边框。

?

节点树上的所有节点都可以运行动作,从而可以产生动画和动作效果,添加或删除节点,播放音效或其它特定任务。在Sprite Kit中,动作(action)的重要性尤胜于cocos2d。

?

SKNode还有其它一些属性,比如设置透明度的alpha属性,设置是否显示的hidden属性等。这里就不一一列举了,开发者可以参考苹果官方文档了解更详细的信息。

?

接下来说说SKNode和CCNode不太一样的地方。在cocos2d中,有专门的CCLayer类用于接收触摸事件或加速计事件,从而处理用户交互。

?

但在Sprite Kit中并不存在一个专门的Layer类,所有的SKNode节点都可以对屏幕上的用户交互做出直接响应,这一点相对cocos2d实在是个大大的改进。我们可以转换坐标体系,根据触摸测试(点击测试)来判断用户的触摸点在哪个节点上。同时我们还可以对节点树中的节点进行交叉测试,从而来判断它们的物理区域是否重叠。当然,cococs2d中也是完全可以实现这一点的,只是多了一个中间步骤而已。

?

如果我们来仔细看看SKNode.h的源代码,会发现SKNode继承自UIResponder,并遵循NSCopying和NSCoding协议。而查看CCNode.h的源代码,会发现CCNode只是简单的继承自NSObject,不像SKNode这样一出生就肩负重任。

?

正因为SKNode继承自UIResponder,所以所有的SKNode节点其实都可以直接对用户交互作为直接响应,比起cocos2d利用CCLayer来处理交互的方式要直接一些。

?

另外,因为SKNode要遵循NSCopying和NSCoding协议,所以在自行创建SKNode的子类时,如果要给该类添加要archive的属性,就必须实现NSCoding协议。具体可以参考(
xcdoc://ios/documentation/Cocoa/Conceptual/Archiving/Archiving.html)

?

(2)SKView vs CCGLView/CCDirector

SKView继承自UIView(如果是Mac应用则继承自NSView,不过这里默认都是iOS应用,就不再赘述了)。

?

我们都知道在cocos2d中使用CCGLView,而CCGLView本身又继承自UIView,所以殊途同归。当然,cocos2d中的CCGLView是将OpenGL场景渲染进EAGL中。至于具体的细节,如果不是引擎的开发者,或者对OpenGL不感冒,也没必要深入研究。

?

Sprite Kit中的SKView类比cocos2d中的CCGLView要简单的多,它的主要作用就是作为视图容器来显示Sprite Kit的内容。而这个内容则是由SKScene提供。

?

SKView的很多作用类似于cocos2d中的CCDirector导演类。

?

通过调用SKView的prensentScene:方法就可以在视图中呈现游戏场景的内容。

?

通过调用presentScene:transition:方法则会以某种特定的场景切换效果从当前场景切换到新的场景。

?

当游戏场景被显示后,将会在场景模拟(场景中的内容动画)和内容渲染之间来回切换状态。我们可以通过设置该类的paused属性来暂停游戏场景。

?

此外,SKView还可以使用textureFromNode方法从场景内容中获取纹理图,使用Core Animation来同步渲染精灵。

?

SKView可以设置是否显示游戏的相关测试信息(showsFPS-游戏帧速,showsDrawCount-绘制数量,showsNodeCount-节点数量)。

SKView还提供了转换视图和游戏场景坐标的方法。

?

当然,如果我们对比SKView和CCDirector的属性和方法,会发现CCDirector所提供的功能更全面更强大,但也有些过于追求大而全的感觉。而SKView一如苹果一贯的产品设计风格,只提供最核心的功能,对次要功能则宁可弃之不用。好处是因为方法和属性较少,很容易掌握,而不好的地方当然就是功能没有CCDirector那么全面强大了。

?

在XXXViewController.m的viewDidLoad方法中,配置SKView的代码非常简洁明了:

//?Configure?the?view.?SKView?*?skView?=?(SKView?*)self.view;?skView.showsFPS?=?YES;?skView.showsNodeCount?=?YES;?
?

而紧接着就是创建和配置游戏场景的代码

?

(3)SKScene vs CCScene

与cocos2d中的CCScene类似,Sprite Kit中的SKScene更多起到一个容器的作用,但比起CCScene,SKScene的任务更多一些。

?

首先,SKScene是一个抽象类,因此在实际的项目中必须创建该类的子类。游戏的主要内容和逻辑都会在子类中运行。

SKScene的任务包括:

a.调用update:方法

b.在其子节点上执行动作;

c.调用didEvaluateActions方法;

d.对场景中的物体执行物理模拟计算;

d.调用didSimulatePhysics方法。

?

说到这里,就不得不说一下Sprite Kit游戏的循环。

?

?

进入游戏后,由SKView负责渲染游戏场景,在游戏的每一帧,首先在update:方法里面更新游戏中角色的信息,然后由SKScene评估并执行这些动作,接下来调用didEvaluateActions方法,再然后由SKScene模拟物理世界的变化,最后再调用didSimulatePhysics方法。然后再次由SKView渲染游戏场景,重新开始下一次的循环。

?

与cocos2d相比,这样的游戏循环逻辑更为严密清晰,初学者可能也更容易理解。

?

(4)SKSpriteNode/SKSprite vs CCSprite

SKSpriteNode的重要性从它的名字就可以看出来,没有Sprite,哪来的Sprite Kit?

?

不过与cocos2d相比,SKSpriteNode的作用更加纯粹,它只是用来绘制精灵纹理。而在cocos2d中,连CCLabel文本也是CCSprite的子类。

比cocos2d方便的是,Sprite Kit中提供了多种与SKSpriteNode具备同等地位的节点。

?

比如专门用于播放视频的SKVideoNode,cocos2d里面没有类似的类;

?

专门用于渲染文本的SKLabelNode,在cocos2d中使用CCSprite的子类CCLabelTTF等;

?

用于根据Core Graphics 路径来渲染抽象形状的SKShapeNode,想来用于制作涂鸦类的游戏自然是绝佳的,可惜cocos2d中貌似没有类似的类;

?

用于创建粒子效果的SKEmitterNode,在Cocos2d中有与之对应的类CCParticleSystem:

?

使用遮罩来裁剪子节点的SKCropNode,在cocos2d中貌似没有对应的类;

?

在子节点上使用Core Image 滤镜效果的SKEffectNode,在cocos2d中貌似没有对应的类。

?

因为这几个类在Sprite Kit中与SKSpriteNode处于同一级别,这里就一并比较了,后面不再重复。

?

(5)SKTexture vs CCTexture2D

SKTexture的作用与cocos2d中的CCTexture2D是类似的,用于创建可以被Sprite Kit对象(通常是SKSpriteNode对象)重用的纹理图像。使用纹理可以让Sprite Kit对精灵的渲染更加高效。

?

我们可以从不同的源中初始化纹理,比如bundle中的图片文件,core image filters, Quartz 2D图形,甚至是原始像素数据。在Sprite Kit中,可以使用SKTextureAtlas来创建纹理图集。

?

需要注意的是,在cocos2d中有CCSpriteBatchNode精灵表单,但Sprite Kit中只有SKTextureAtlas,两者的作用是类似的,都是使用单次OpenGL ES命令调用替代重复的OpenGL ES命令。

?

(6) SKAction vs CCAction

SKAction在Sprite Kit中的作用非常重要,和CCAction类似,同样用于创建节点动作。合理使用动作(actions)可以让游戏世界更加丰富多彩,灵活多变,充满吸引力。

?

使用SKAction可以更改节点的多个属性,如位置,旋转或缩放等。部分动作只能用于SKSpriteNode,比如更改精灵的色彩或纹理属性。

?

此外,Sprite Kit中允许创建三种复杂的动作,可以将其它动作作为子动作,分别是序列动作,组合动作和重复动作。在Sprite Kit中,序列动作,组合动作和重复动作都是可以嵌套的。

?

需要注意的是,开发者不能直接创建SKAction的子类,而是直接对目标对象调用方法或执行块语句。

?

我们都知道cocos2d中提供了多个CCAction的子类,但在Sprite Kit中只有一个SKAction,且不允许创建其子类。

?

总的来说,从创建动作的角度来看,SKAction和CCAction可以达到完全相同的效果。

?

(7)SKPhysicsBody/SKPhysicsContact/SKPhysicsJoint/SKPhysicsWorld ?vs Box2d/chipmunk

大家都知道,cocos2d并没有自己的物理引擎,而是内置了box2d或chipmunk两个第三方物理引擎。而box2d采用c++语言开发,chipmunk采用c语言开发,对iOS开发者来说多少是个麻烦事。

?

从这个角度来看,Sprite Kit可谓直接胜出。SKPhysics相关类非常简洁明了,原生Objective-C,无论从配置到使用都很简单。

?

关于这部分,可以参考苹果官方的Adventure游戏,这里也不再多说。

?

比较到这里,基本上已经涵盖了Sprite Kit绝大多数的核心类。感觉Sprite Kit的设计非常清晰简洁,而cocos2d由于属于开源项目,从结构上来说稍显复杂,但因为众多开发者的反馈和贡献,功能却比Sprite Kit要丰富很多。

(8)AV Foundation vs CocosDenshion

在cocos2d中使用cocosDenshion来播放游戏的音效和背景音乐,只需一行代码就可以搞定一切。

在Sprite Kit中需要借助AV Foundation的帮助,但功能显然要强大很多。

?

6.工具对比

用过cocos2d开发游戏的朋友都知道有不少第三方的开发工具对其进行支持,这里也简单对比一下。

?

(1)创建纹理图集

在cocos2d中常用Zwoptex或者Texture Packer,非常方便,特别是Texture Packer,可惜是付费的。

?

但如果用了Sprite Kit之后,就会发现在Xcode 5中创建纹理图集更方便,无需任何第三方工具。具体的操作可以参考官方视频。

?

(2) 创建瓦片(瓷砖)地图

在cocos2d中通常使用Tiled Map或其它第三方工具。

?

在Sprite Kit中貌似没有内置的创建工具。

?

(3)创建字体

在cocos2d中可以使用Hiero等第三方工具。

?

使用Sprite Kit开发则可以直接利用iOS 7中最新的Text Kit,显然更为强大。

?

(4)创建粒子效果

在cocos2d中可以使用Particle Designer等第三方工具,很直观,很强大。

?

在Sprite Kit中则可以直接利用Xcode 5内置的粒子编辑器,同样非常强大。

?

(5)创建游戏界面

在cocos2d中可以使用CocosBuilder等第三方工具,目前仍然在完善中。

?

在Sprite Kit中则可以直接借助Xcode 5中的Interface Builder,很直接。

?

显然,如果使用cocos2d需要大量借助第三方的开发工具,而使用Sprite Kit则可以直接利用Xcode 5和iOS 7的诸多新特性,无需学习第三方工具。

?

?

Sprite Kit和cocos2d对比小结

相信在看了以上的比较之后(再次建议看看WWDC 2013官方视频和相关的官方文档),大家对Sprite Kit已经有了初步的认识。

?

那么,究竟Sprite Kit能否替代cocos2d成为2d手机游戏开发的首选工具呢?

?

在作出自己的结论之间,先用表格的方式来做一个小小的总结。

整理完这个表格之后,下面就是我个人的结论:

?

a.Sprite Kit作为iOS 7 内置的游戏开发工具,短期内不太可能替代cocos2d-x,但很有可能完全替代cocos2d-iphone。

?

b.如果要支持跨平台开发,那么2D游戏引擎还是首选cocos2d-x,没有其它。按照苹果的风格,Sprite Kit这么霸气的工具是不可能支持Android游戏开发的。

?

c.初学手机游戏开发的,如果只想搞iOS游戏开发,那么可以直接学Sprite Kit,不必从cocos2d-iphone学起。

?

d..现有的开发者,如果只专注iOS游戏,那么完全没必要转到Sprite Kit。cocos2d的功能足够强大。

?

e.Sprite Kit的成功与否取决于iOS平台能否继续发力。

?

实战篇

忘了说这个了。为了实际比较,过段时间会做一个简单的实例,分别提供cocos2d-iphone版,cocos2d-x版和Sprite Kit版,放在这里作为参考。
iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android  第3张

iOS锻炼注意力游戏,自在正念专注力训练

自在正念专注力训练app是一款非常专业的正念专注力训练软件,是一款培养用户冥想深度和睡眠质量的思考锻炼类软件.自在正念专注力训练app可以帮助用户正确的引导如何进行冥想,更专注的进行思考,是一款非常好用的软件,感兴趣的朋友赶紧下载自在正念专注力训练app开始使用吧!
正念冥想,风靡硅谷的专注力练习!
正念,也被称为“内观禅”,是一种培养精神力的禅修方法,用以探索自我、增长智慧。在上世纪七十年代,正念以一种“去宗教化”的语言,在西方悄然应用到医学和心理学领域。经过多年的发展与科学研究,正念渐渐走入了主流当中。
正念冥想正是一项简单的、科学证实有效的大脑运动。越来越多的文献表明,神经系统具有可塑性,神经结构的变化可以通过训练实现。每天10~20分钟的练习,大脑结构将会发生积极的物理改变。
除了提升专注力,长时间规律的正念训练,还有助于治疗焦虑、失眠、抑郁症,有助于提升情绪调节能力,改进认知功能、改善人际关系,增强幸福感、怜悯心和同理心。这让正念在商界、创业公司和互联网圈都很流行。
【精选引导语】
对于初次接触正念冥想的人来说,一个好的引导至关重要。在这里,我们精选了非常适合初学者7大引导语,帮助你入门、进阶。
【精美计时器】
一个好的定时器可以让冥想效果事半功倍。自定义练习时间,优质的白噪音,再结合勿扰模式,让冥想过程全神贯注、不受干扰。
【记录时间轴】
你完成的每一次冥想、记录的每一刻感悟,都将被好好保存下来。冥想记录时间轴,帮助你回顾冥想历程,让你更有计划的坚持下去。
用正念冥想改善你的睡眠、调节情绪、缓解焦虑、增加抗压力。让正念成为一种生活方式。
呼吸,身体扫描,觉察当下,宣言,视觉化想象等海量冥想技巧,帮助你在 5 分钟内获得平静
海量自然声音和白噪音,带你感受喧闹中的宁静,无须长途跋涉,也可漫步山间小溪,甚至开始一场想象中的宇宙航行
呼吸功能可以让你在不需要引导的时候,通过关注自己的一呼一吸,觉察到自己的真实感受,从而放松下来

iOS锻炼注意力游戏,Brick Rage , 像瀑布一样激爽的俄罗斯方块,让你大呼过瘾 #iOS #Android  第4张

iOS锻炼注意力游戏,舒尔特方格注意力训练游戏

舒尔特方格注意力训练是一款相当考验脑力的益智休闲游戏。在这款游戏中玩家们将会进行超精彩的数字训练!每一个方块之上都会有着不同的数字等待着你来发现他们的内在联系,通过种种规律你要不断地转动大脑进行排列,使得数字符合规律实现闯关!
1、培养玩家注意力集中,并且让大家的思维逐渐活跃起来,让我们的大脑思考问题更加的灵活;
2、随着关卡的提升后面的数字会越来越多,九宫格,十六宫各,二十五宫格会逐渐出现;
3、我们经过长时间训练之后要达到一目十行的能力,但是这个是需要长时间锻炼才能达到的效果。
1、玩家在玩这款游戏的时候需要按照数字的大小迅速找全所有数字,中间不能出现一次失误;
2、只要中间出现大小排序错误游戏也就宣布结束,只能重新开始,所以大家在游戏的时候千万小心;
3、如果我们以找到一个数字是一秒钟这种时间来计算优异成绩,也就是说九宫格的优异成绩是九秒钟。
1、大家在游戏的时候不要为了最终的效果拔苗助长,慢慢来反复训练最后终会有成效的;
2、初学者可能会频频出现失误,这个其实是很正常的现象,除非你是一个天才。

iOS锻炼注意力游戏,?App?Store 上的“意念力蚂蚁

? 提升决策力、注意力及学习能力
– 是时候提高自己的专注力了
你的任务就是帮助蚂蚁在宝箱中变身出来的食物推到终点。通过你的专注力和放松力,推开障碍物,排除路上遇到危险,整个过程里,你需要集中注意力和排除干扰。你将和小蚂蚁一起历经春夏秋冬的场景变化,一起迎接各种趣味性的意念力挑战,如怪兽追赶、危机浮桥、蚂蚁对推、计时任务等等,让您在丰富、趣味的互动中,会持续训练的的专注和主动放松能力。
– 四季场景,超强代入感
精致的画面与萌萌哒的可爱蚂蚁,春夏秋冬四季变化的体验场景,给游戏带来了很强的季节代入感。在春暖花开的草地里;在鸟语蝉鸣的莲叶满池旁;在满地秋风落叶的树林里;还是在大雪纷飞的雪地中,你只需要集中注意力,全力向前将食物往前推,抵达终点即可。
– 这个有趣的游戏你会发现有:
? 解放双手,用意念将食物推到终点
? 你可以在四季变化中的场景体验不一样的感受
? 通过寓教于乐的方式,注意力提高了
? 独创玩法,探索意念新旅程
? 蚂蚁推食根本停不下来
? 新颖有趣的玩法,超越经典的佳作
? 神秘关卡出现女版蚂蚁的阻拦,神一般的脑波,迎接最高强度的挑战。
– 适合人群
4岁以上,学生人群,注意力不集中者
– 温馨提示
意念力蚂蚁APP是一款搭配BrainLink意念力头带系列硬件的配套应用,可以帮助你获得:
? 获取精准而完善的训练数据报告
? 查看「家长管理界面」的数据与时间管理
? 有机会参与产品开发与体验
– 通过以下方式可以找到我们
关注下方公众号、微博及官网,有更多活动资讯与新产品动态
? 微信公众号:BrainLink
? 新浪微博:@BrainLink
? 官网:http://www.macrotellect.com
如果你有任何意见或建议,请联系我们客服小伙伴们哈!
? 客服电话:(86)400 860 2689
? 意粉团开发QQ群:

您可能感兴趣的文章

本文地址:https://www.wskee.cn/19634.html
文章标签:
版权声明:本文为原创文章,版权归 专注力训练与注意力训练网 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!