Swift开发Sprite Kit游戏实践(二):让敌人们动起来
来源:互联网 发布:中班美工区域材料图片 编辑:程序博客网 时间:2024/06/06 17:14
- 让敌人们动起来
先对“敌人”的代码进行微调,使它们在出现之前,完全隐藏在屏幕后(而非仅仅隐藏一半)。从天而降的设定为游戏增加了难度,也增添了乐趣。
那么首先要做的就是更新spawnEnemy()那一行代码,敌人sprite的position编写如下:
enemy.position = CGPoint(x: frame.size.width + enemy.size.width/2, y: frame.size.height * random(min: 0, max: 1))
现在,用更多action让敌人从屏幕一端移动到另一端,游戏变得更有趣了。
将这一行代码添加到spawnEnemy()末尾:
enemy.runAction( SKAction.moveByX(-size.width - enemy.size.width, y: 0.0, duration: NSTimeInterval(random(min: 1, max: 2))))
此处稍作解释:
敌人sprite运行一个SKAction。
SKAction包含一个moveByX() method,用于控制敌人在X轴上移动的固定距离。将整个屏幕画面设置为左移(-size.width),还要设置完整尺寸的sprite (-enemy.size.width)。
SKAction有个规定sprite移动速度的时间参数;此处设定SKAction后,每1-2秒就改变一个随机值,加快了敌人的移动速度。
编写完成后运行,结果应该是敌人移动到了屏幕另一端,然后完全消失。如下所示:
物理移动sprite
游戏的设定是:不点击屏幕时,monkey会落下来;点击时,monkey会跳起。
这里用SKAction移动monkey,就像之前移动敌人一样。推荐用Sprite Kit内置的物理引擎,更加简单。
好,现在来试试看。还是GameScene.swift,在didMoveToView(_:)后添加如下代码:
player.physicsBody = SKPhysicsBody(circleOfRadius:player.frame.size.width * 0.3) player.physicsBody?.allowsRotation = false
第一行为monkey创建了一个physics body,在物理引擎的作用下,monkey因引力和其他外力而落下”。
注意:physics body(物理实体)的形状是圆的,仅跟monkey的形状近似而已。无需做到精确,只要凑效就好。同时将physics body设定为不旋转。
编写完成后运行,就能看到monkey在屏幕上时而落下,时而消失,很酷吧?
转自:http://www.csdn.net/article/2015-05-26/2824772-sprite-kit-for-kids-with-swift/2
- Swift开发Sprite Kit游戏实践(二):让敌人们动起来
- Swift开发Sprite Kit游戏实践(一)
- Swift开发Sprite Kit游戏实践(三):物理推力与碰撞检测
- Swift开发Sprite Kit游戏实践(四):背景音乐与Game Over
- ios游戏开发 Sprite Kit教程(二)
- Sprite Kit Swift游戏开发新手指导手册(1)
- Sprite Kit Swift游戏开发新手指导手册(2)
- Sprite Kit Swift游戏开发新手指导手册(3)
- Sprite Kit Swift游戏开发新手指导手册(4)
- Sprite Kit Swift游戏开发新手指导手册(5)
- android--游戏开发--让人物动起来
- 安卓游戏开发------让游戏人物动起来(游戏帧动画的处理 )(一)
- Sprite Kit编程指南(9)-Sprite Kit最佳实践
- Sprite Kit编程指南(9)-Sprite Kit最佳实践
- Sprite Kit编程指南(9)-Sprite Kit最佳实践
- Sprite Kit编程指南(9)-Sprite Kit最佳实践
- Sprite Kit编程指南(9)-Sprite Kit最佳实践
- ios游戏开发 Sprite Kit教程(一)
- xml学习笔记
- 辛星浅析You don't have permission to access / on this server.的解决办法
- GCD
- 利用无效字节码指令引发逆向工具崩溃(二)
- 第六章:with、正则、变量
- Swift开发Sprite Kit游戏实践(二):让敌人们动起来
- 漠河身份证号码户籍地址信息查询
- 程序员专属谜语 你能猜中几个?
- 生活的每一刻属于有准备的人
- 创建table并赋值
- 黑马程序员——————多态性——vptr和vtable
- hdoj1156_rownie Points II(线段树)
- esriControlsMousePointer常量
- Linux文件特殊权限