当我们创建好项目文件后我们就可以开始一步一步的按照我们之前列入的清单来编写我们的游戏。现在就让我们来创建一个熊猫这个类Panda.swift。我们将采取分解的方式,一步一步的完成Panda.swift的编写

首先,我们要导入SpriteKit框架

import SpriteKit

接着我们创建一个枚举值,用来记录熊猫的不同状态,分别是跑,跳,二段跳,打滚。

enum Status:Int{
case run=1,jump,jump2,roll;
}

注意:

在Swift中,当给枚举的首个名称设置整型值时,接下来的名称会自动顺序填充。例如上面的run=1之后,jump就为2,jump2就为3,roll就为4

然后我们要让Panda这个类继承自SKSpriteNode

class Panda : SKSpriteNode

这时候,Panda.swift的完整代码应该是这样的。

import SpriteKitenum Status:Int{
case run=1,jump,jump2,roll;
}class Panda : SKSpriteNode{}

完场了以上步骤之后,我们先来实现一个简单地功能,让熊猫显示在场景中。我们只需要在构造器中给Panda的父类也就是SKSpriteNode的构造器传入3个参数。分别是文理(texture)默认颜色(color),默认尺寸(size)。那么我们要做的是先写一个常量用来获取跑这个动作的文理集合

let runAtlas = SKTextureAtlas(named: "run.atlas")

接着在构造器中用跑这个动画的第一张文理作为默认的文理。

let texture = runAtlas.textureNamed("panda_run_01")

然后用这个纹理的尺寸作为Panda类的默认尺寸

let size = texture.size()

再用SKColor.whiteColor()获取白色的色值

最后用这些作为参数传给Panda的父类也就是SKSpriteNode的构造器。

super.init(texture:texture,color:SKColor.whiteColor(),size:size)

这时候完整的代码应该是这样的

import SpriteKitenum Status:Int{case run=1,jump,jump2,roll;
}class Panda : SKSpriteNode {let runAtlas = SKTextureAtlas(named: "run.atlas")//构造器override init(){let texture = runAtlas.textureNamed("panda_run_01")let size = texture.size()super.init(texture:texture,color:SKColor.whiteColor(),size:size)}required init(coder aDecoder: NSCoder) {fatalError("init(coder:) has not been implemented")}
}

当我们写完了上面的代码,我们就要在游戏场景GameScene.swift中将熊猫显示出来。那我们就先要在场景类中声明一个变量,类型是我们刚刚创建的Panda。

lazy var panda = Panda()

注意:

用lazy属性可以让变量在第一次使用的时候才实例化,这可以让场景类在创建的时候减少开销。

然后在didMoveToView方法中写入如下代码就能够将熊猫显示在屏幕上了。

let skyColor = SKColor(red:113/255,green:197/255,blue:207/255,alpha:1)//场景的背景颜色
self.backgroundColor = skyColor
panda.position = CGPointMake(200, 400)//给熊猫定一个初始位置
self.addChild(panda)//将熊猫显示在场景中

按下command+r键,运行一下看看效果

恭喜你,我们勇敢的迈出了第一步。此时我们的场景类中的完整代码应该是这样的:

import SpriteKitclass GameScene: SKScene,ProtocolMainScene {lazy var panda = Panda()
override func didMoveToView(view: SKView) {//场景的背景颜色
let skyColor = SKColor(red:113/255,green:197/255,blue:207/255,alpha:1)        self.backgroundColor = skyColor//给熊猫定一个初始位置panda.position = CGPointMake(200, 400) //将熊猫显示在场景中self.addChild(panda)
}

我的微信公众号

我写的破书:《Swift语言实战晋级》http://item.jd.com/11641501.html

转载于:https://www.cnblogs.com/sandal1980/p/4276841.html

Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-2 创建熊猫类相关推荐

  1. swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法

    原文:swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法 在上个小节,我们完成了平台的产生.那么我们来实现一下让平台移动.平台的移动,我们只需要在平台工厂类中写好移动的方法,然 ...

  2. 《Splunk智能运维实战》——第1章 游戏时间——导入数据 1.1 简介

    本节书摘来自华章计算机<Splunk智能运维实战>一书中的第1章,第1.1节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默 ...

  3. Python小游戏——外星人入侵(保姆级教程)第一章 03设置飞船图片 04创建Ship类

    系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类--管理飞船行为的类 目录 系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类--管理飞船行为的类 一.设 ...

  4. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)

    面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...

  5. IOS开发入门之一——Swift语言基础

    需要iOS视频资料可以加我微信: 1914532832  验证信息请注明:IOS开发 很多新人对IOS开发很迷茫,不知道从何下手?看完本系列,你将会觉得IOS入门其实很简单.要学习IOS开发,当然是先 ...

  6. 买了一本老镇的swift语言实战晋级

    为什么80%的码农都做不了架构师?>>>    买的老镇的<<swift语言实战晋级>>书刚到,发现没有51CTO的100金币学习卡. 转载于:https:/ ...

  7. swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程

    swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 1.2.3  注册非免费苹果账号swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 免费的苹果账号在 ...

  8. Swift游戏实战-跑酷熊猫 01 创建工程导入素材

    原文:Swift游戏实战-跑酷熊猫 01 创建工程导入素材 在这节里,我们将建立一个游戏工程,并导入一些必要的素材,例如序列帧动画文件,声音素材文件.动画文件我们使用atlas形式.在打包发布或者模拟 ...

  9. Swift游戏实战-跑酷熊猫 12 与平台的碰撞

    原文:Swift游戏实战-跑酷熊猫 12 与平台的碰撞 这节主要实现熊猫和平台的碰撞,实现熊猫在平台上奔跑 要点 对平台进行物理属性设置 //设置物理体以及中心点 self.physicsBody = ...

最新文章

  1. 使用Docker搭建svn服务器教程
  2. C# 对get和set的理解
  3. 单片机小白学步系列(二十) IO口原理
  4. 再问数据中台 - 数据中台建设的最大的挑战是什么
  5. iPhone 12发布当天,罗永浩开“旧机发布会”:香得不行!
  6. idea 修改html 不重启,解决idea spring boot 修改html等不重启即时生效的问题
  7. 毕设项目,系统搭建笔记文档
  8. 重绘(redraw或repaint),重排(reflow)
  9. 25.TCP/IP 详解卷1 --- SNMP:简单网络管理协议
  10. jquery实现返回顶部的效果
  11. 基于Javaweb实现小区物业管理系统
  12. 数学建模更新10(蒙特卡罗模拟)
  13. 一步步破解app协议第二步(审计代码)
  14. 为什么SSD目标检测算法对小目标检测的效果不好
  15. esxi 部署模板_vSphere通过模板批量部署虚拟机
  16. 踫撞检测 之一 — 关于分离轴理论的解释(Separating Axis Theorem (SAT) Explanation)(完整翻译)
  17. 光纤收发器tx和rx的区别?
  18. 桃园三结义c语言程序,三国典故:桃园三结义
  19. [luogu]P1852跳跳棋
  20. iphone和mac互传文件_隔空投送,让你的苹果设备随时随地和别人互传文件!

热门文章

  1. “树人杯”辽宁科技大学第三届校园程序设计大赛
  2. python123第九周测验答案2020_知到智慧树2020艺术概论章节测验答案
  3. LVS——DR模式(负载均衡)
  4. linux下在线新增大文件系统划分,linux - 文件系统(fdisk)
  5. dante pam mysql_FreeBSD下安装dante(sockd)并使用pam-pwdfile进行认证
  6. polybase配置 sql_在 Windows 上配置 PolyBase 横向扩展组
  7. ios 获取是否静音模式_高效人士进阶-IOS
  8. SQL 优化极简法则,你掌握几个?
  9. NFT平台Polkamon将于3月31日在Polkastarter进行IDO
  10. DeFi信用合作社Xend Finance将于今日23时通过Balancer LBP开启公募