在通知栏上玩游戏,Steve iOS 游戏实现思路
来源:互联网 发布:python 数组类型转换 编辑:程序博客网 时间:2024/06/08 09:16
最近有一款游戏特别的火爆,叫做Steve ,一种可以在通知中心直接玩的游戏。作者的脑洞也是非常的大,实在让人佩服。其实实现起来也简单,就是用到了iOS8新特性 app extension(Today extension),我们先来看看Steve 这图的效果。
我打算把一个曾经很火爆的开源游戏移植成控制中心的游戏。没错就是它FlappyBird 传送门
首先我们来看以下效果。
extension 支持以下几种
- Action 扩展 - 点击 Action 按钮后通过判断上下文来将内容发送到应用
- Today 扩展 - 通知中心的 "Today" 的面板中添加一个 widget
- Share 扩展 - 点击分享按钮后将网站或者照片通过应用分享
- Photoshop edit 扩展 - 编辑系统照片的扩展
- Document 扩展 - 提供和管理文件内容
- Custom Keyboard - 替代系统键盘的扩展自定义键盘或输入法
我们需要 创建Today extension,,today extension 就是在下拉通知栏下面添加应用扩展。如下图所示。
1. 新建工程
创建工程。
2. 新建一个Today Extension targets ,如下图所示
可以看到工程中多了扩展项目,扩展项目下有一个MainInterface.storyboard ,这个 .storyboard的就是要展示在Today 通知中心的内容(突然感觉整个世界都清晰了,直接在这个ViewController放内容就行了嘛)。扩展项目编译后,会生成一个.appex后缀的包文件,这个是独立于主工程的扩展应用。可以理解为两个应用,因为沙盒机制数据不能交互。
如果需要扩展和主应用进行数据的交互,我们需要创建一个共享的数据区域,我们在Capabilities 勾选 App groups 功能,并且创建一个app group(注意这个操作需要在主Target 和 extension Target 都需要构想,并且使用同一个app group), 这样就可以进行数据的交互了,具体操作如下所示
//设置共享的数据 在主 target里面 let shareUserdefault = NSUserDefaults(suiteName:"group.comtomNC") // name 填写 刚刚创建 App Group shareUserdefault?.setObject("pass this value to extension", forKey: "shareValue")
// 在extension target里面获取 数据 let shareUserdefault = NSUserDefaults(suiteName:"group.comtomNC") // name 填写 刚刚创建 App Group shareUserdefault?.objectForKey("shareValue") //获得这个数据
然后我们下载 一个开源的FlappyBird,把必要的工程文件和资源拷入到 扩展工程中。
然后我们需要把 MainInterface.storyboard的rootViewController类改为,FlappySwift 工程的rootViewController(也就是 GameviewController 这个类), 还有一点需要注意,要把ViewController.view 属性设置为 SKView 如下图所示
然后我们来编译运行,撸起,直接上效果图(可以看到技术还是可以的。注意在真机上运行的时候 会出现内存不足的问题,跑不起来,现在只能在模拟器运行,具体today extension 支持最大内存多少我没具体测过,以后有机会再补充吧) 大家可以点击这里获得 DEMO 连接
参考资料
notification today widget 参考文章 喵神这一篇文章更加详细的介绍了 Notification today widget
作者: HuminiOS-极光
原文: http://www.jianshu.com/p/fd739e972e20
- 在通知栏上玩游戏,Steve iOS 游戏实现思路
- 在通知栏上玩游戏,Steve iOS 游戏实现思路
- 游戏中每日刷新实现思路浅析
- 纸牌游戏思路
- 游戏开发学习思路
- 游戏写作思路
- libgdx 游戏设计思路
- 三消游戏思路
- Unity3D游戏中Android和iOS本地推送通知
- Unity3D游戏中Android和iOS本地推送通知
- Unity3D游戏中Android和iOS本地推送通知
- 在游戏中对A-Star算法应用思路
- 写下来回头看,在游戏中隐藏线程思路r3
- J2ME 手机游戏粒子系统实现的1个思路
- AS3.0 2D游戏人物影子实现思路
- iOS ”打仙人掌“游戏一---游戏玩法实现
- 开发在ios平台开发游戏了
- 开发Android和iOS游戏在菲律宾
- myeclipse安装反编译插件
- 【java】 String str = "test"; 与 String str = new String("test"); 的区别
- ESP8226模块使用笔记
- WinCE系统下,调用系统里控制面板的小工具
- 2017年5月15日
- 在通知栏上玩游戏,Steve iOS 游戏实现思路
- HTTP Status 405
- NDK学习(1)
- 软件体系结构设计|描述与架构风格
- 169. Majority Element
- win10磁盘占用100%导致经常性卡顿问题的解决!
- golang动态规划求解最大连续子数组和
- ns2报错
- cocos lua 突出显示某个物体