博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-2 创建熊猫类
阅读量:5755 次
发布时间:2019-06-18

本文共 2226 字,大约阅读时间需要 7 分钟。

原文:

当我们创建好项目文件后我们就可以开始一步一步的按照我们之前列入的清单来编写我们的游戏。现在就让我们来创建一个熊猫这个类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 = skyColorpanda.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) }

 

我的微信公众号

转载地址:http://rvckx.baihongyu.com/

你可能感兴趣的文章
IOS 响应事件传递nextResponder
查看>>
Mysql拒绝远程访问的解决方法
查看>>
【MySQL运维】MySQL多实例部署案例
查看>>
一种码位倒置算法
查看>>
linux 设备驱动
查看>>
MySQL 5.5 on CentOS/RHEL 6.7
查看>>
SQL Server 2017 AlwaysOn on Linux 配置和维护(13)
查看>>
Linux下Mysql二进制安装过程
查看>>
我的友情链接
查看>>
孤独的走过年轻
查看>>
关于ios中的setNeedsDisplay和setNeedsLayout
查看>>
C 文件读写
查看>>
【C#】TreeView应用
查看>>
How to convert Windows 7 on MBR/BIOS to GPT/UEFI
查看>>
我的友情链接
查看>>
>hibernate-session中的方法
查看>>
Advanced+Apple+Debugging(9)
查看>>
linux 病毒virus解毒
查看>>
linux下一键编译搭建mysql服务器脚本
查看>>
jqprint导入jqgrid表格时,内容溢出的原因以及解决方法
查看>>