Swift - 使用atlas图集实现动画效果(SpriteKit游戏开发)


--- 神经猫类 Cat.swift ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import SpriteKit class Cat : SKSpriteNode { //神经猫的纹理集 let dbAtlas = SKTextureAtlas (named: "db.atlas" ) //神经猫的纹理数组 var dbFrames = [ SKTexture ]() override init () { //获取纹理集的第一个纹理 let texture = dbAtlas.textureNamed( "db_01" ) //获取纹理的尺寸 let size = texture.size() //执行父类的构造方法 super . init (texture:texture,color: SKColor .whiteColor(),size:size) var i: Int var tempName: String //从纹理集中获取纹理加入数组 for i=1 ; i <= dbAtlas.textureNames.count ; i++ { //%.2d表示两位整数。下面格式化完毕后便是db_01,db_02,db_03等 tempName = String (format: "db_%.2d" ,i) let dbTexture = dbAtlas.textureNamed(tempName) dbFrames.append( dbTexture ) } //设置中心点 self .anchorPoint = CGPointMake (0.5, 0.2) //播放动画 db() } required init (coder aDecoder: NSCoder ) { fatalError( "init(coder:) has not been implemented" ) } func db(){ //循环播放纹理动画 self .runAction( SKAction .repeatActionForever( SKAction .animateWithTextures(dbFrames, timePerFrame: 0.2))) } } |
--- 元件使用 GameScene.swift ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import SpriteKit class GameScene : SKScene { //利用lazy关键字可以让实例化在第一次使用时才执行 lazy var cat = Cat () //当切换到这个场景视图后 override func didMoveToView(view: SKView ) { cat.position = CGPoint (x: CGRectGetMidX ( self .frame)-10, y: CGRectGetMidY ( self .frame)-150); cat.zPosition = 20 self .addChild(cat) } //响应屏幕点击的方法 override func touchesBegan(touches: NSSet , withEvent event: UIEvent ) { } } |
Swift - 使用atlas图集实现动画效果(SpriteKit游戏开发)的更多相关文章
- Swift - 多层无缝循环滚动背景(SpriteKit游戏开发)
在游戏开发中,比如跑酷游戏.我们需要实现背景的无限循环滚动,来营造运动的效果.除了单层的背景滚动,还有视差滚动. 视差滚动是指让多层背景以不同的速度移动,形成立体的效果,从而带来非常出色的视觉体验. ...
- Swift - 多个mask的动画效果
Swift - 多个mask的动画效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // TranformFadeView.swi ...
- Swift - 用UIScrollView实现视差动画效果
Swift - 用UIScrollView实现视差动画效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // MoreInfoVi ...
- Swift 添加到TableView实现动画效果
let indexPath = NSIndexPath(forRow:0 ,inSection:0) self.tableView.insertRowsAtIndexPaths([indexPath] ...
- Swift - 跑酷游戏开发(SpriteKit游戏开发)
一,下面演示了如何开发一个跑酷游戏,实现的功能如下: 1,平台工厂会不断地生成平台,并且向左移动.当平台移出游戏场景时就可将其移除. 2,生成的平台宽度随机,高度随机.同时短平台踩踏的时候会下落. 3 ...
- Swift - 跳跃吃苹果游戏开发(SpriteKit游戏开发)
下面通过一个样例演示如何实现飞行道具的生成,以及道具碰撞拾取. 样例说明: 1,屏幕从右到左不断地生成苹果飞过来(苹果高度随机) 2,点击屏幕可以让熊猫跳跃 3,熊猫碰到苹果,苹果消失 运行效果: 样 ...
- Swift - 给游戏添加背景音乐和音效(SpriteKit游戏开发)
游戏少不了背景音乐和音效.下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效. 声音管理类 SoundManager.swift 1 2 3 4 5 6 7 8 9 ...
- Swift - 在界面上生成81个随机红,灰色圆点(SpriteKit游戏开发)
下面是生成一个“围住神经猫”游戏的初始场景: 1,界面下方会生成9*9共81个圆点,同时圆点内部添加文本标签显示索引 2,默认圆点为灰色,每行随机取两个点变为红色 3,奇数行和偶数行有一定的错位,错位 ...
- Swift - 获取屏幕点击坐标下所有对象(SpriteKit游戏开发)
对于场景内对象元件的点击响应,我们可以在场景的touchesBegan()方法中内统一处理. SKScene中touchesBegan()是响应屏幕点击的方法,在这里面我们可以先获取点击位置下所有的对 ...
随机推荐
- Android:mimeType
接收从其他应用传过来的数据,要用到清单文件 <activity android:name="com.terry.myActivity2" android:label=&quo ...
- centos下pg_dump的服务器版本不匹配问题
pg_dump: server version: 9.4.4; pg_dump version: 8.2.4 pg_dump: aborting because of server version m ...
- 高质量程序设计指南C/C++语言——C++/C程序设计入门(3)
- Oracle中奇怪的【不等于号】
Oracle中奇怪的[不等于号] 在Oracle中,不等号有三种:<>,!=,^= 例如: select * from test where name<>'xn'.返回的结 ...
- linux下C++开发工具
就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, anjuta,kd ...
- LDF文件过大的解决办法
检查扎兰屯服务器的时候,发现其中一个分区的原空间有300多个G,但只余下了80多个G.检查了一下,发现某库ldf文件过大,竟然达到了280多个G. 这如何得了,再这样下去,硬盘怎能受得了? 尝试用收缩 ...
- SQL 局域网远程备份
局域网远程备份,还真有点问题 我用的是2003,发现sql和windows兼容不太好 . 如果我在windows下面映射远程目录,sql发现不了,找不到路径,备份不了,在sql下映射远程目录,win ...
- GridView控件-01-[简单的数据显示]
GridView绑定数据分为两种,一种是多值绑定,另一种是字段绑定. 多值绑定(直接绑定到数据源就行,不需要使用字段): 前台代码: <asp:GridView ID="GridVie ...
- QScriptEngine
其实你有好多没有介绍 比如qt文字 我一直很迷惑qt的文字的长宽 qt文字的字间距 等等这些东西还有QProcess QProcess可能是qt调用c#的唯一方法了QScript要比你想象的重要,一个 ...
- CSS:重量和级联规则,确定其优先级
资源:http://www.ido321.com/1063.html 首先,给大家看一篇关于CSS优先级的演示样例:http://www.ido321.com/76.html 一.主要的优先级规则 比 ...