- 博客(22)
- 资源 (8)
- 收藏
- 关注
原创 SceneKit:简单的3D游戏场景搭建
SceneKit是Apple用来开发休闲3D游戏的框架,不同于底层的OpenGL库,你仅仅需要很少的代码就可以快速看到实际的3D场景效果.下面简单的聊聊搭建一个3D游戏场景需要做的事情.首先你必须用其他3D建模工具生成你需要的3D模型,后缀为dae或者scn,应该还附带一张纹理图片.可以将3D模型文件连同纹理图片导入Xcode,以下是一个例子可能有些童鞋不知道如何打开场景图(scene graph)
2016-06-30 20:18:58
8367
1
原创 SpriteKit给游戏弹跳角色添加一个高度标示器
这是一个类似于跳跃涂鸦的小游戏,主角不断吃能量球得到跳跃能量向更高的地方跳跃,如果图中碰到黑洞就挂了…在游戏调试过程中如果能实时知道主角的高度就好了,这将有助于程序猿动态的判断游戏胜败逻辑.你可以用print将高度显示在控制台中,不过这观看起来可不是太方便,索性就让我们把高度标示和游戏主角自己紧密结合起来吧! ;]因为在SpriteKit中任何SKNode对象及其子对象都可以包含孩子,它们可以和父节
2016-06-28 15:29:24
3540
1
翻译 SpriteKit:检测当新场景显示以后
Detecting When a New Scene Is PresentedSprite Kit在SKScene类中提供2个可以重载的方法用来检测当一个场景过渡出去或过渡进来的时候.第一个方法是SKScene的willMoveFromView()方法,该方法在一个SKScene被view删除时调用,为了重载该方法,你可以添加如下代码到你的SKScene实现中去:override func will
2016-06-27 12:16:45
2197
翻译 SpriteKit:在场景过渡中暂停动画
Pausing Scenes During a Transition你应该意识到两个重要的SKTrnsition属性在场景之间的过渡中.它们是pausesIncomingScene和pausesOutgoingScene,这些属性是bool类型,分别用来暂停入口和出口场景的动画.如果你想要在场景过渡中继续运行场景的动画,你只需要在显示场景之前将对应的属性设置为false.这两个属性的默认值都是tru
2016-06-27 12:10:31
2108
原创 SKSpriteNode对象初始化在iPhone 6 plus中显示不正确的分析及解决
一个SpriteKit项目在其他设备上运行都无问题(无论是真机或是模拟器),但是在iPhone6 Plus上会出现精灵对象纹理被过度放大的现象:从上图中大家可以看到无论是主角或是道具球都过大了.看了一下精灵图片是放在atlas纹理集文件夹中的:可以看到PowerUp和Player都有对应缩放的版本:Player.png,Player@2x.png以及Player@3x.png.在各个图片的属性中检查
2016-06-23 17:53:22
4709
原创 SpriteKit物理引擎碰撞中5个重要信息
我们知道在SpriteKit物理引擎实际是基于Box2D!在SpriteKit中当你设置好适当的碰撞参数后,通过遵守SKPhysicsContactDelegate,你可以选择实现2各碰撞回调方法:didBeginContactdidEndContact方法中会传递一个参数,其类型为SKPhysicsContact,其中含有5个非常重要的碰撞信息,下面分别介绍一下:bodyA 类型为SKPhy
2016-06-21 10:09:35
3782
原创 Xcode无法安装基于ruby的插件问题的解决
Xcode有时需要安装一些第三方插件,很多插件是基于ruby的,确切的说是基于ruby gem的!但是在国内有一个很尴尬的情况,就是官方的gems网站:https://rubygems.org的安全连接往往很不稳定,导致出现以下情况:sudo gem install cocoapodsPassword:ERROR: Could not find a valid gem 'cocoapods'
2016-06-17 08:54:40
4879
翻译 SpriteKit关于SKScene中的渲染Loop
在本节中,我将来说明一下SKScene在SKView显示之后发生了神马.在更传统的iOS app中,你可能只会渲染view的内容仅仅一次,然后它将保持静态直到view的模式发生了显示的改变,这对于商业app很好,但是游戏app会潜在发生连续不断的改变.因为这个动态的因素,SpriteKit会连续不断的更新scene和它的内容,这种连续更新称之为渲染循环(rendering loop):如上图所示,每
2016-06-16 12:31:59
5352
原创 Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎
CocoaPod是一个用ruby实现,用于方便的管理Xcode中第三方插件的管理器.用它我们可以很方便的安装和升级插件而不用担心破坏原有的项目.而pop是一个用于实现App中动画的引擎,它是由Facebook开源的,如果本猫没记错的话 ;]下面简单聊聊如何在最新的Xcode中安装pop首先你必须在mac上安装ruby,无论你使用rvm还是从源代码自己编译生成.接着打开终端输入如下指令:sudo ge
2016-06-15 10:40:14
4708
原创 第三方开源动画库EasyAnimation中一个小bug的修复
看过iOS动画之旅的都知道,其中在最后提到一个作者写的开源动画库EasyAnimation(以下简称EA).EA对CoreAnimation中的view和layer动画做了更高层次的包装和抽象,使得我们可以大大减少编写代码的行数.不过在玩耍EA时发现了点小问题,在使用链式串行调用中其中的某一段若为弹簧动画,则该动画后面的其他动画都无法再运行了.以下是测试代码:@IBAction func actio
2016-06-14 10:31:16
3563
原创 一张图带你看懂SpriteKit中Update Loop究竟做了神马!
1首先Scene中只有开始一点时间用来回调其中的update方法 ;]2然后是Scene中所有动作的模拟3接下来是上一步完成之后,给你一个机会执行一些代码4然后是Scene模拟其中的物理世界5在第4步完成后,照例给你一个机会做一些操作6Scene应用其中精灵上的一些限制7在应用限制之后给你一个执行的机会8全部Update都已完成,你可以在这里做最后的调整.比如修正精灵的位置,大小等9SKView最终
2016-06-13 21:05:23
3781
原创 CCSpriteBatchNode中存放元素的一点理解
该对象只能包含基于CCSprite的对象,并且该要求适用于一切子孙对象.即加入CCSpriteBatchNode的任何对象都必须是CCSprite或其子类.比如CCSpriteBatchNode包含Fire对象,而Fire对象继承于CCSprite类;如果Fire有子对象,则要求他们也必须继承于CCSprite,依次类推.不过貌似最新的Cocos2D中该类用的地方越来越少了,而且在SpriteKit
2016-06-12 14:57:05
2799
原创 Swift如何取得View所属的ViewController
从VC取得View很容易,但有些情况下我们需要从View反向获取VC.不过在一些特殊的场合,Cocoa库帮我们想的很周到,比如在自定义View过渡动画的时候:func animateTransition(transitionContext: UIViewControllerContextTransitioning) {}系统在回调我们的animateTransition方法时,会传入一个contex
2016-06-11 09:38:43
6912
原创 将String转换为其表示的路径画到屏幕上
关于这个问题,我已经在另一篇blog中有所提及:CoreText精彩文字轮廓绘制动画的一点改进不过原有的转换代码使用Obj-C写的,在这里我们尝试将其转换为Swift语言,然后利用它实现一个测试小程序.首先贴出原来Objc的代码:- (void) setupTextLayer{ if (self.pathLayer != nil) { [self.penLayer remo
2016-06-09 15:13:39
5369
原创 Cocoa层粒子发射器动画添加多个cell的一种重构
在iOS动画之旅第19章中最后的挑战中需要我们在雪花例子发生器中添加多个雪花贴图,也就是多个cell,因为我们不可能将每个cell的参数都重新写一遍,所以有必要写一个helper方法来做这件事:func getCellByImgName(name:String)->CAEmitterCell{}将原来viewDidLoad方法中与cell相关的代码拷贝进来,但除了几处小的修改:let emitter
2016-06-08 14:11:04
1088
原创 Swift中如何转换不同类型的Mutable指针
在Swift中我们拥有强大高级逻辑抽象能力的同时,低级底层操作被刻意的限制了.但是有些情况下我们仍然想做一些在C语言中的hack工作,下面本猫就带大家看一看如何做这样的事.hacking is happy!!! ;]如标题所说,现在我有一个Int变量x,我想取得它的地址,然后转换为Char类型的地址,然后将改地址的内容+1,如果用C语言来表示就是:int x = 121,*pi = &xchar
2016-06-07 17:22:49
3311
原创 Cocoa中层(layer)坐标系的极简理解
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)Cocoa层的坐标系一直理解的不清晰,现在把它整理总结一下:1: layer在super layer中的位置由frame属性来确定,而bounds属性的原点永远是(0,0),因为bounds相对的layer自己.2: layer还有一个po
2016-06-06 08:04:40
5207
原创 git中status指令总是提示内容被修改的解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)最近在用git提交项目修改时发现一个问题,就是多次git add .后,使用status指令总是提示:XXX目录:git modified content untracked content将该目录先移动到别处再拷回也不行,也确定没有进程在修改该目录中的内容
2016-06-05 09:27:40
5763
原创 CoreText精彩文字轮廓绘制动画的一点改进
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)原文在:http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/原理说明在:http://www.codeproject.com/Articles/109729/L
2016-06-04 08:11:31
5562
原创 Cocos2D与SpriteBuilder的问题在哪提问
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)我们知道Cocos2D的教程中文版的非常少,注意我没有说Cocos2D-X哦 ;]不过国外还是有不少人用Cocos2D的,在此本猫将自己积累的一些Cocos2D比较活跃的论坛地址贴出来,以便大家交流和提问:首先是SpriteBuilder的论坛:http:/
2016-06-03 19:42:54
4496
1
翻译 CoreAnimation动画结构变量
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。 如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!结构实例在swift中是第一类的居民.事实上,它与类实例变
2016-06-02 12:01:33
796
原创 CoreAnimation中layer动画闪烁的原因及解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)网上有一段Core Animation层动画的例子,是将view中的云朵从左向右移动,直到移出屏幕,这时再将云朵移到最左端然后重复移动动画.所有动画在layer上完成,不过有个小问题,就是第一次每朵云动画完成时,会在其原位置处有一个闪烁,然后才会移动到屏幕最
2016-06-01 10:21:17
4643
SwiftUI 超酷炫动画示例大合集
2024-01-08
MacOS 和 iOS 内核 xnu 可编译源代码
2024-01-08
SwiftUI 各种界面、自定义视图、动画以及设计哲学示例合集
2024-01-08
SwiftUI 示例 iFonts 应用完整项目源代码
2024-01-08
SwiftUI 英雄动画(HeroAnimations)演示代码
2024-01-08
iOS 15.4 真机调试支持包(可支持最新的iOS 15.4.1系统)
2022-04-03
SwiftUI编程实现不同TabView标签页中任意导航层级视图之间相互跳转的演示代码
2022-04-03
UnlockerEx
2008-04-27
unlocker_new
2008-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人