根据触摸事件旋转对象

时间:2015-10-05 17:08:22

标签: ios swift

因此,作为一个有趣的小游戏的想法的一部分,我需要一个中间的对象(在纵向视图中)当我触摸屏幕的左侧时向左旋转并在我触摸屏幕的右侧时向右旋转屏幕。

这就是字面意思。

但我想使用swift而不是Objective-C ...我找到的所有教程都是obj-c,因此我不了解如何在GameScene.swift文件中实现编码。

提前致谢!

2 个答案:

答案 0 :(得分:2)

Wm.p1us说的是正确的,这是他建议的代码。

   var myImage: SKSpriteNode!

   class GameScene: SKScene {
        override func didMoveToView(view: SKView) {

            anchorPoint = CGPointMake(0.5, 0.5)

            myImage = SKSpriteNode(imageNamed: "myImage")
            addChild(myImage)

   }

   override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

            let touch = touches.first as UITouch!
            let location = touch.locationInView(self.view)

            myImage.removeAllActions()

            if location.x < frame.size.width/2 {
                // left hand side touched, rotate left

                let rotateLeft = SKAction.rotateByAngle(CGFloat(M_PI)*2, duration: 1)
                myImage.runAction(SKAction.repeatActionForever(rotateLeft))

            } else {
               // right hand side touched, rotate right

                let rotateRight = SKAction.rotateByAngle(-CGFloat(M_PI)*2, duration: 1)
                myImage.runAction(SKAction.repeatActionForever(rotateRight))

            }

        }
    }

答案 1 :(得分:0)

我认为这将是SpriteKit。所以你需要:

1)在屏幕中央添加一个SpriteNode

2)定义触摸位置

3)并且如果frame.size.width&gt;或者&lt;触摸的x轴上的位置,因此您需要通过创建SpriteNode运行一些动画。

所以这很简单,但你需要编写一些代码来获得更详细的帮助。