Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 我如何通过SpriteKit像Cocos2D一样扭曲/剪切雪碧?_Cocos2d Iphone_Sprite Kit - Fatal编程技术网

Cocos2d iphone 我如何通过SpriteKit像Cocos2D一样扭曲/剪切雪碧?

Cocos2d iphone 我如何通过SpriteKit像Cocos2D一样扭曲/剪切雪碧?,cocos2d-iphone,sprite-kit,Cocos2d Iphone,Sprite Kit,在Cocos2D-x中,CCNode类提供了“skewX”和“skewY”,让我对sprite进行一些变形,但是,我在SpriteKit的SKNode中找不到类似的映射 我的游戏使用Flash移植骨架动画,其中精灵的定位、缩放、旋转和剪切配置将分解为游戏引擎的部分。除了剪切,所有其他配置都有在SpriteKit中完成的解决方案 不,你不能 SKNode没有skew*属性。并且只允许使用片段着色器。这意味着你可以随意改变每个像素的颜色,但你不能改变精灵的形状 所以我建议你用,等等来代替Sprite

在Cocos2D-x中,CCNode类提供了“skewX”和“skewY”,让我对sprite进行一些变形,但是,我在SpriteKit的SKNode中找不到类似的映射

我的游戏使用Flash移植骨架动画,其中精灵的定位、缩放、旋转和剪切配置将分解为游戏引擎的部分。除了剪切,所有其他配置都有在SpriteKit中完成的解决方案

不,你不能

SKNode没有skew*属性。并且只允许使用片段着色器。这意味着你可以随意改变每个像素的颜色,但你不能改变精灵的形状

所以我建议你用,等等来代替SpriteKit


另一个选项是UIView

可以使用CGAffineTransform、CoreImage过滤器和SKEffectNode实现倾斜效果

let transform      = CGAffineTransform(a: 1, b: 0.1, c: -0.3, d: 1, tx: 0, ty: 0)
let transformValue = NSValue(cgAffineTransform: transform)

let transformFilter = CIFilter(name: "CIAffineTransform")!
transformFilter.setValue(transformValue, forKey: "inputTransform")

let effectNode = SKEffectNode()
effectNode.addChild(sprite) // <-- Add sprite to effect node

effectNode.filter = transformFilter
effectNode.shouldRasterize = true
effectNode.shouldEnableEffects = true
let transform=CGAffineTransform(a:1,b:0.1,c:-0.3,d:1,tx:0,ty:0)
让transformValue=NSValue(cgAffineTransform:transform)
让transformFilter=CIFilter(名称:“CiAffiNetTransform”)!
transformFilter.setValue(transformValue,forKey:“inputTransform”)
让effectNode=SKEffectNode()

effectNode.addChild(sprite)//我不认为sprite工具包可以做到这一点,但我希望看到有人提供解决方案这可能是带有自定义着色器的doe