2015-01-13 3 views
0

У меня есть игра, в которой я использую UISwipeGestureRecognizer для перемещения экрана. Я пытаюсь понять, как сделать так, чтобы изображение, которое я просматриваю, не может сместиться с экрана. Я просмотрел интернет и не смог ничего найти.Сохранение изображения на экране в Swift

Вот мой метод салфетки:

func swipedRight(sender: UISwipeGestureRecognizer) { 
    timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("moveBackground"), userInfo: nil, repeats: true) 

    if imageView.frame.origin.x > 5000 { 
     imageView.removeFromSuperview() 
    } 
} 

Вот мой метод moveBackground:

func moveBackground() { 
    self.imageView.frame = CGRect(x: imageView.frame.origin.x - 100, y:  imageView.frame.origin.y, width: 5500, height: UIScreen.mainScreen().bounds.height) 
} 

Единственное, что я пытался до сих пор, чтобы проверить, если вид находится в определенном положении и удалите его, если это так, но это не сработало. Я добавил этот код к методу салфетки.

+0

Где код для перемещения вида и что вы пытались ограничить положением? – Wain

+0

Вы хотите оживить представление назад после того, как вы переместили его, проверив? – rakeshbs

ответ

0

Будет очень полезно, если вы разместите свой код класса здесь, чтобы мы могли более конкретно помочь вам.

Кстати, вы должны проверять позицию объекта каждый раз, когда функция вызывается, прежде чем переместить ее, учитывая ее размер.

Допустим, у вас есть игра в карточные игры, и вы проводите карточку вдоль доски. Чтобы избежать считывания карты с доски (с экрана), вы должны сделать что-то вроде этого:

// I declare the node for the card with an image 
var card = SKSpriteNode(imageNamed: "card") 

// I take its size from the image size itself 
card.physicsBody = SKPhysicsBody(rectangleOfSize: card.size) 

// I set its initial position to the middle of the screen and add it to the scene 
card.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2) 
self.addChild(card) 

// I set the min and max positions for the card in both X and Y axis regarding the whole scene size. 
// Fit it to your own bounds if different 
let minX = card.size.width/2 
let minY = card.size.height/2 
let maxX = self.frame.size.width - card.size.height/2 
let maxY = self.frame.size.width - card.size.height/2 

// HERE GOES YOUR SWIPE FUNCTION 
func swipedRight(sender: UISwipeGestureRecognizer) { 
    // First we check the current position for the card 
    if (card.position.x <= minX || card.position.x >= maxX || card.position.y <= minY || card.position.y >= maxY) { 
     return 
    } 
    else { 
     // ... 
     // YOUR CODE TO MOVE THE ELEMENT 
     // ... 
    } 
} 

Я надеюсь, что это помогает! С уважением.

+0

Я не использую набор спрайтов, чтобы сделать свою игру. – Wiem

 Смежные вопросы

  • Нет связанных вопросов^_^