• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

enum 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 SpriteKit

enum 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 SpriteKit

class 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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
1、WWDC2014 详解OSX/iOS8/Swift语言发布时间:2022-07-13
下一篇:
[SwiftUI]一、基础控件-(3)Text视图的段落属性发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap