Недавно я пытался создать игру с маленькой понг-игрой с UIKitDynamics. Мне удалось создать основную игру. Теперь я хочу добавить дополнительную механику.Изменить размер UIView с UICollisionBehavior
Например, поведение, уменьшающее размер весла. Я добавил NSTimer, который делает подобное действие. Но я заметил, что CollisionBehavior весла не изменяет размер одновременно с веслом.
Вот мой код:
func decreaseBarSize() {
player1Bar.bounds = CGRect(x: player1Bar.frame.minX, y: player1Bar.frame.minY, width: player1Bar.bounds.width - 1, height: player1Bar.frame.height)
player1Bar.layoutIfNeeded()
animator.updateItemUsingCurrentState(player1Bar)
}
А вот функция лопастного-контроль:
func moveBar() {
if player == .Player1 {
let barFrame = player1Bar.frame
switch self.direction {
case .Right:
if Int(barFrame.maxX) < superviewWidth - 10 {
player1Bar.frame = CGRect(x: barFrame.minX + 1, y: barFrame.minY, width: barFrame.width, height: barFrame.height)
}
break
case .Left:
if Int(barFrame.minX) > 10 {
player1Bar.frame = CGRect(x: player1Bar.frame.minX - 1, y: barFrame.minY, width: barFrame.width, height: barFrame.height)
}
break
default:
break
}
animator.updateItemUsingCurrentState(player1Bar)
} else if player == .Player2 {
let barFrame = player2Bar.frame
switch self.direction {
case .Right:
if Int(barFrame.maxX) < superviewWidth - 10 {
player2Bar.frame = CGRect(x: barFrame.minX + 1, y: barFrame.minY, width: barFrame.width, height: barFrame.height)
}
break
case .Left:
if Int(barFrame.minX) > 10 {
player2Bar.frame = CGRect(x: barFrame.minX - 1, y: barFrame.minY, width: barFrame.width, height: barFrame.height)
}
break
default:
break
}
animator.updateItemUsingCurrentState(player2Bar)
}
}
Кто-нибудь идея, чтобы понять, что?
Большое спасибо!