文档章节

tvOS游戏开发系列(SpriteKit)之准备工作(一)

大茶园丁
 大茶园丁
发布于 2015/11/21 14:36
字数 869
阅读 127
收藏 0

准备工作

从Apple TV 4开始,我们可以给tvOS开发应用和游戏了。苹果公司从Xcode 7开始也增加了tvOS SDK,顺带添加了电视机和遥控的模拟器,因此并不需要Apple TV的真机就可以开发许多程序了。不过如果要使用遥控器上带的加速度计、3D陀螺仪等传感器就只能真机了。

在开始写代码之前我们先得了解一下Apple TV的操纵方式。作为一个智能机顶盒,显然不能像iOS设备一样直接通过触摸屏幕进行交互,甚至不能像Mac一样配备有键盘和鼠标这样的快速输入设备,而只能使用已经精简到只有六个按钮和一个触控板的遥控器了。这样的交互直观性很差,用户学习成本较高。

  • 不能像iOS设备一样直接触摸点击
  • 不能像Mac一样使用鼠标直接选取

如果使用真机的话,需要一个支持HDMI的显示设备(电视机、显示器或投影仪等),并且保证遥控器充满电了。Apple TV遥控器通过红外通信,因此需要注意不能被挡住。

遥控器的使用

Apple TV的遥控器分为两个部分:触控板和按键。其中触控板支持触摸、按压、滑动手势等操作。

  • 触摸:轻触触控板,引发触摸事件,一些继承自UIResponder的类的对象能过接收到touchesBegantouchesEnded等消息。需要注意的是,每次触摸的起点都是屏幕的正中央,而与触控板上的位置无关
  • 按压:按压触控板,触发按键事件(Select, 选择),一般用于选中或者开始一件事。
  • 滑动手势(Swipe):一般用于切换界面上的焦点位置。

遥控器菜单按钮的六个键分别有不同的功能,其中编程时常用的只有三个:

  • Menu:系统将Menu作为返回键,我们在应用中一般也应该统一这种操作模式。
  • 休眠:点击后会到主屏幕,如果长按会弹出休眠菜单。
  • Play/Pause:播放暂停按钮。
  • Siri:语言控制。
  • 音量:调节音量大小。

模拟器遥控器

毕竟每次都用真机进行调试不是很方便,因此苹果给我们提供了模拟器(包括遥控器)。但是模拟器上的一些操作并不方便,它又提供了一些键盘快捷方式。

  • Option键:触摸事件,按住Option键触发触摸事件,直接用鼠标点击遥控器触控板触发按压事件。
  • ESC:返回键。

在开发之前最好是先用系统的一些应用或者直接在真机上熟悉一下遥控器操作这种交互模式。在刚开始使用的时候,由于没有手机这么直观,会非常不方便。

© 著作权归作者所有

共有 人打赏支持
大茶园丁
粉丝 57
博文 15
码字总数 21159
作品 0
长沙
私信 提问
戴维营教育iOS/tvOS移动开发公开课第一期

iOS系统是iPhone和iPad所使用的操作系统。它拥有优异的性能,流畅的体验。iOS应用和游戏开发一直占据移动互联网的最前端,开创了一个新的时代。10月30日苹果上线了Apple TV 4。这是一个使用改...

大茶园丁
2015/11/25
691
0
戴维营教育iOS/tvOS移动开发公开课第一期

iOS系统是iPhone和iPad所使用的操作系统。它拥有优异的性能,流畅的体验。iOS应用和游戏开发一直占据移动互联网的最前端,开创了一个新的时代。10月30日苹果上线了Apple TV 4。这是一个使用改...

大茶园丁
2015/11/25
0
0
iFIERO - (一) 宇宙大战 SPACE BATTLE — 场景SCENE、SpriteKit精灵、PARTICLE粒子及背景音乐

开始游戏教程前,首先介绍一下SpriteKit是什么? SpriteKit提供了一个图形渲染和动画的基础结构,你可以使用它让任意类型的纹理图片或者精灵动起来。SpriteKit使用渲染循环,利用图形硬件渲染...

布袋
2018/07/02
0
0
10个最佳的 Swift 教程实例

Swift 是一门相对比较新的编程语言,深受广大苹果社区开发者的喜爱。在短短不到一年的时间,很多很多开发者已经转向使用 Swift 编程语言了。苹果开发者们接受 Swift,纯粹是因为 Swfit 更加先...

noeticforce
2015/12/09
16.1K
6
iOS和tvOS游戏按需加载资源简介

戴维营教育翻译:感谢Davis Allie的An Introduction to On-Demand Resources on iOS and tvOS 介绍 与iOS 9和watchOS 2一起,苹果引入了一套新的内容分发API,以便节约设备空间,这就是按需加...

大茶园丁
2015/12/01
415
2

没有更多内容

加载失败,请刷新页面

加载更多

Spring学习记录

Java类定义配置 @Configuration //标记为配置类@ComponentScan //标记为扫描当前包及子包所有标记为@Component的类@ComponentScan(basePackageClasses = {接口.class,...}) //标记为扫描当...

CHONGCHEN
今天
1
0
如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
3
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部