2013-10-23 57 views
0

我有一個UIImageview包含一個圓圈(障礙),然後另一個UIImageview包含另一個圖像(我的角色)。當我的圈子擊中我的角色時,遊戲結束。UIimageview適合圓形

我的問題發生在遊戲結束時碰到我的圓圈內的UIImageview框,而不是UIImageview框內的圓圈。

我能想到的解決方案是:

  • 請取整到我的圈子UIImageview
  • 以某種方式檢測我的人物像素和圓圈像素之間的碰撞,而不是UIImageviews

幫助和想法將非常感激。我是一個xcode的初學者。

謝謝!

+0

圓的計算交叉位置。如果它的頂部,底部,左側,右側與中央角色死亡,並且如果它在左上角,右上角,左下角,右下角,則角色不會死亡。人物似乎在跳躍在圓形物體上方。 –

+0

你可以延續這個,所以我可以試試看嗎? – Phil

回答

6

夫婦不同的技術:

1)的UIView#layer.cornerRadius - 實現超級簡單,只需設置一個屬性。但對於諸如表格視圖之類的滾動元素來說真的很糟糕。

2)UIImageView作爲一個面具 - 也很容易實現。基本上用中間的一個透明圓形制作一個正方形圖像,並用新的UIImageView將它放在視圖頂部。如果你的圓形設計有一些反射或造型,這可能會讓你的生活更輕鬆。

3)自定義繪圖 - 製作UIView子類並覆蓋drawRect以繪製圖像並將其裁剪爲圓形路徑。

希望有幫助!

編輯:

你可以閱讀這個答案。

1)Fill an UIBezierPath with a UIImage

2)iOS: Inverse UIBezierPath (bezierPathWithOvalInRect)

3)How to mask a square image into an image with round corners in the iPhone SDK?

+0

感謝您的幫助。我是否需要導入才能使用UIView#layer.cornerRadius?我也會這樣實現它: ** circle.layer.cornerRadius = 10; ** ** circle.layer.masksToBounds = YES; ** – Phil

+0

是的,您必須導入QuartzCore框架,只要使用必須使用CALayers和核心動畫。你可以在這個鏈接上找到關於圖層的很棒的教程:-http://www.raywenderlich.com/2502/calayers-tutorial-for-ios-introduction-to-calayers-tutorial – Bhavesh

+0

閱讀你發佈的指南後以前(我在某種程度上閱讀和理解)我發現很難將圖層的想法與我之前在屏幕上移動圓圈的代碼結合起來。「** circle.center = CGPointMake(circle.center.x - 9,circle.center.y); **」。我是否需要完全重寫我的移動代碼以適應新的圖層? – Phil