当前位置: 首页 > news >正文

SpriteKit 技巧之添加背景图片

作者:Arthur Knopper,原文链接,原文日期:2017/01/17
译者:Crystal Sun;校对:walkingway;定稿:CMB

Sprite Kit 是硬件加速的动画系统,为创建 2D 游戏进行了专门的优化。在本节教程中,将使用 Game 模板来添加一张背景图片。本节教程使用的是 Xcode 8.2.1 和 iOS 10.2。

打开 Xcode,选择 iOS -> Application -> Game 模板。

Product Name 使用 SpriteKitBackgroundTutorial,填写自己的 Organization Name 和 Organization Identifier,Language 一栏选择 Swift,Game Technology 一栏选择 SpriteKit,Devices 一栏选择 iPhone。

本节教程需要一张图片作为背景图,从这里下载图片,添加到工程中,确保在添加时选择 “Copy items if needed” 选项。

在 Xcode 的 Game 模板中,已经做了很多初始化的工作。在 Sprite Kit 框架中,每个场景(scene)控制 App 的一屏(screen)。找到 GameViewController.swift 文件,在 GameViewController 类里,已经定义好了 viewDidLoad 方法,在这个方法里创建场景,呈现 GameScene 对象。将 viewDidLoad 方法代码更改成如下所示:


override func viewDidLoad() {
    super.viewDidLoad()
        
    let scene = GameScene(size:CGSize(width: 1080, height: 1920))
        
    let skView = self.view as! SKView
    scene.scaleMode = .aspectFill
    skView.presentScene(scene)
}

找到 GameScene.swift 方法,已经定义好了 GameScene 类,在 didMove 方法中,实现自定义的代码。删除 GameScene 类里面所有的代码,然后添加 didMove 方法:


class GameScene: SKScene {
    
    override func didMove(to view: SKView) {
        let background = SKSpriteNode(imageNamed: "background.jpg")
        background.position = CGPoint(x: size.width/2, y: size.height/2)
        addChild(background)
    }
}

Sprite Kit 框架有个指定的类来创建控制 sprite(精灵)(译者注:sprite 是计算机图形学的专有名词,意为包含于场景中的二维图像或动画),就是 SKSpriteNode 类。在该节点(node)下,图片加载完成。接下来,将图片添加到场景中。最后,删除 GameScene.sks 和 Action.sks 文件,目前不需要这两个文件。

运行工程。

可以从 github 上下载 SpriteKitBackgroundTutorial 教程的源代码。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg。

相关文章:

  • 实验九 三层交换机配置路由DHCP中继(二)
  • ILMerge合并多个DLL
  • htmlunit爬取js异步加载后的页面
  • ruby gem 0.9.4的问题
  • Innodb与Myisam引擎的区别与应用场景
  • Linux中有两类函数库,分别是静态库和动态库
  • 记忆模糊的知识点5-22
  • 深入说明HDR技术
  • 免费产品体验码已发放完毕,实物礼品已备好?
  • wdcp服务器/虚拟主机管理系统1.1发布
  • VMware ESXi 和 VMware Server 有什么区别
  • mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
  • 802.11无线网络部署方案对比分析
  • RHEL中FQDN解析顺序。
  • @Autowired标签与 @Resource标签 的区别
  • [LeetCode] Wiggle Sort
  • “大数据应用场景”之隔壁老王(连载四)
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【Linux系统编程】快速查找errno错误码信息
  • Apache Zeppelin在Apache Trafodion上的可视化
  • js作用域和this的理解
  • MobX
  • mysql_config not found
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • spark本地环境的搭建到运行第一个spark程序
  • tensorflow学习笔记3——MNIST应用篇
  • Vue 2.3、2.4 知识点小结
  • vue 配置sass、scss全局变量
  • vuex 笔记整理
  • Webpack 4 学习01(基础配置)
  • 从零搭建Koa2 Server
  • 大主子表关联的性能优化方法
  • 动态规划入门(以爬楼梯为例)
  • 回顾2016
  • 简单实现一个textarea自适应高度
  • 来,膜拜下android roadmap,强大的执行力
  • 前端面试之CSS3新特性
  • 入口文件开始,分析Vue源码实现
  • 设计模式走一遍---观察者模式
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 最简单的无缝轮播
  • 我们雇佣了一只大猴子...
  • ​queue --- 一个同步的队列类​
  • ###STL(标准模板库)
  • $jQuery 重写Alert样式方法
  • (145)光线追踪距离场柔和阴影
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (HAL库版)freeRTOS移植STMF103
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (万字长文)Spring的核心知识尽揽其中
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)memcache、redis缓存