使用SpriteKit创建类似于Tiny Wings的水平地形

时间:2014-07-24 02:14:59

标签: ios sprite-kit

我想在SpriteKit中创建一个类似于Tiny Wings游戏中的纹理地形。使用cocos2d,我能够关注Ray W的教程并获得我想要的外观......

http://www.raywenderlich.com/32954/how-to-create-a-game-like-tiny-wings-with-cocos2d-2-x-part-1

是否使用SpriteKit绘制点以使三角形填充重复纹理(或类似的东西)?

提前致谢。

2 个答案:

答案 0 :(得分:2)

是的,你可以用精灵套装创造一个像小翼一样的游戏

  1. 使用http://dazchong.com/spritekit/工具创建serval CGMutablePath它是一个在线SKPhysicsBody路径生成器,并将它们保存在NSMutableArray数组中,假设您的游戏中只有一个级别用于多个级别创建多个NSMutableArray数组,并且多个随机保存CGMutablePath项目

  2. 确保所有CGMutablePath都有静态物理体,现在不要让它动态

    在init函数中,按照第一条路径结束第二条路径的开始的顺序逐个添加所有路径,依此类推,你可以形成一个巨大的serval路径循环,它们相互连接。

    没有更多的路径,因为太多的物理身体让你的游戏变得缓慢

  3. 现在更新内部功能将数组的所有项目从右向左移动  当你到达NSMutableArray数组的最后一项时,在循环算法的乞讨时再次添加它。

    -(void)update:(CFTimeInterval)currentTime {
    
    }
    
  4. 制作一只小鸟并给它一个动态的物理身体

    设置小鸟的碰撞和接触类别以及你的循环路径

  5. 现在在didBeginContact函数中,您可以获得您的小鸟和路径之间的联系。现在您可以应用一点Impulse或者您可以获得contact.collisionImpulse在您的鸟和路径之间应用该值应用于您的鸟游戏

    -(void)didBeginContact:(SKPhysicsContact *)contact
    {
       //contact
       CGPoint contactPoint=CGPointMake(0, 0);
    }
    

答案 1 :(得分:0)

所以我需要使用(或者至少我想到的)是顶点着色器,但Spritekit目前不支持这些。现在,我只能找到片段着色器。

但是我确实看到你可以创建一个SKShapeNode并设置它的纹理属性。唯一的问题是没有选择" tile"整个SKShapeNode的图像。

我确实发现这似乎解决了这个问题(尽管我还没有尝试过)。 https://gist.github.com/man1/413642637ebd0b00fe2b

看起来像是一个很好的解决方法!

最后,我决定将Cocos2d用于此项目,因为它支持顶点着色器和片段着色器。经过一些试验和错误,我得到了很好的工作。