07 2018 档案
摘要:GameplayKit是一个面向对象的框架,为构建游戏提供基础工具和技术。 GameplayKit包含用于设计具有功能性,可重用架构的游戏的工具,以及用于构建和增强诸如角色移动和对手行为的游戏玩法特征的技术。
阅读全文
摘要:有时候学习如何应用第三方库是非常重要的,因为我们不用再自己重复造轮子,在这里,我们就把原先利用重力感应来操控飞机改为用游戏摇杆joystick来操控,具体的操作如下
阅读全文
摘要:
因为我们须用节点spritenode.copy()把其它Scene(CircleScene.sks)里的节点拷贝一份,并把拷贝的这一份节点加到当前的scene(GameScene.sks)里,还有一个重要的注意点,就是如果要在GameScene.sks取得 Overlay内的红色节点的准确坐标,须用convert把copy到fgNode的节点上的红色节点坐标转为GameScene的坐标(let pos = fgNode.convert(sprite.position, from: sprite.parent!))
阅读全文

摘要:Spritekit提供了一个默认的物理模拟系统,用来模拟真实物理世界,可以使得编程者将注意力从力学碰撞和重力模拟的计算中解放出来,通过简单地代码来实现物理碰撞的模拟,而将注意力集中在更需要花费精力的地方。现在,让我们来学习这个系统的使用吧。
阅读全文
摘要:
1、MainScene.sks -- 用户打开APP时一开始看到的画面,等待用户点击"Play"按钮;
2、GameScene.sks -- 游戏进行中的场景画面,用于创建无限循环背景Endless、监测SpriteKit物理碰撞、应用CoreMotion加速计,判断游戏的业务逻辑;
3、LoseScene.sks -- 游戏结束时的场景画面,记录当届分数,记录最高分并应用UserDefaults储存分数在手机沙盒当中,点击"Tap to play"按钮回到GameScene游戏场景画面;
阅读全文

摘要:
如何适配不同的iPhone、iPhoneX及iPad的屏幕尺寸,如何适配不同的iPhone、iPhoneX及iPad的屏幕尺寸呢?
我们开发一个App的时候, 通常希望它在 iPhone, iPad, Mac上同时能运行, 尤其是游戏。
这样就需要我们考虑不同设备不同的分辨率,但处理起来比较麻烦,比如说,按照官方的做法,我们需要提供诸如 ifiero@1x,ifiero@2x,ifiero@3x, 这样不同尺寸的图片,那如何简便的适配设备不同的分辨率呢,我们的做法是, 固定一个大小, 向下兼容不同的设备。
即场景中的所有图片, 都按照屏幕大小为 2048 * 1536 来绘制。 也就是说, 我们的背景图的大小是 2048 * 1536, 其他图片也是依照这个比
阅读全文

摘要:
/// 查找所有命名为ground的精灵节点
enumerateChildNodes(withName: "//ground") { (node, _ ) in
/// 如果当前的节点 + scene.size.with < 则移动节点
if node.position.x + self.size.width < camera.position.x {
node.position.x += self.size.width * SCENE_NUMBERS /// 更新节点的位置
}
}
阅读全文

摘要:
本节主要讲解如何创建无限循环Endless的星空背景(如下图)、玩家飞船发射子弹,监测子弹击外星敌机的SpriteKit物理碰撞并消灭敌机,以及应用iOS的CoreMotion加速计移动飞船躲避外星敌机(加速计须用真机测试)。
阅读全文
摘要:Spritekit提供了一个默认的物理模拟系统,用来模拟真实物理世界,可以使得编程者将注意力从力学碰撞和重力模拟的计算中解放出来,通过简单地代码来实现物理碰撞的模拟,而将注意力集中在更需要花费精力的地方。现在,让我们来学习这个系统的使用吧。
首先需要认识两个类,一个是场景scene的属性类SKPhysicsWorld,这个类基于场景,只能被修改但是不能被创建,这个类负责提供重力和检查碰撞(碰撞需要实现SKPhysicsContactDelegate代理协议),另一个就是SKPhysicsBody类,你可以对你的SKNode节点添加物理体属性,来让他们可以参与物理模拟的相关计算。
阅读全文