簡體   English   中英

使用OpenGL在iPhone上對圖像進行碰撞檢測

[英]Collision detection with images on the iPhone using OpenGL

我正在為iPhone開發2D游戲(有點像自上而下的太空射擊游戲),使用的引擎與OpenGL ES上的cocos2d非常相似(雖然不完全一樣)。 我試圖弄清楚如何進行碰撞檢測。

我的游戲的所有飛船都是圖像,並且游戲會將圖像作為紋理加載到屏幕上。 我已經進行了非常非常簡單的檢測,即基本上只獲取圖像的矩形並檢查是否發生碰撞並可以很好地進行檢測。

但是,當然,飛船並不能完全占據整個矩形,因此那里有空白。 所以我的問題是我應該如何考慮空白? 我是否需要存儲船只的矩陣? 還是有另一種方法? 我也聽說過可能使用Chipmunk物理引擎進行碰撞檢測嗎? 那將如何工作?

(1)關於花栗鼠,簡短的回答是, 是的,您應該立即下載花栗鼠,向家伙捐款,然后開始學習

處理大約一天的時間,基本上可以回答您的所有問題。 如果您想使用物理游戲,則需要參與其中。

(2)您詢問使用近似值(“僅”矩形)代替形狀更精確的東西(如太空飛船)。 實際上,您可能會驚訝地學習到,這就是我們從小就玩過的所有著名大牌游戲中通常所采用的方式! 確實,有時您可能只使用DOT(!)來檢測沖突。

您在生產中可能要做的是嘗試一個更復雜的模型,並玩幾個小時然后看看,實際上它比簡單的點或矩形模型要好得多。

如果您確實想制作一個更復雜的模型,請制作一個 使用當前系統從三個或四個矩形中構建它。 嘗試“彼此對抗”,讓他們“先檢查一個大的”,以查看它們是否彼此靠近(某種簡單的空間哈希)。

您會發現,當您使用Chipmunk(當您現在知道要在閱讀此消息后必須立即開始)進行操作時,只需以相同的乏味方式進行構建即可。 這不是魔術子彈。 但是,如果您要使用“更復雜的模型”,則最好使用花栗鼠標准的東西來進行工作-它會做得越來越快。 有很多東西要學習,你應該跳下去!

(3) Unity不僅僅適用於3D最后,如果您想以長大的方式做到這一點,則必須使用Unity3D,它可以讓您訪問芯片組上的金屬元素,即Nvidia物理。 請注意,統一也非常適合2D游戲-您只需單擊一個按鈕就可以統一使用2D投影(如果一個2D游戲的制作方法與此完全相同,則許多品牌名稱)。

如果使用該方法,則可以(如果需要)使用“絕對精確”的物理模型,對模型的每個角點和縫隙進行建模。

這樣做的缺點是什么? 啊哈……好吧,您需要游戲中所有物品的一流3D模型! (就像您看到它們建立在您最喜歡的Pixar藍光附帶的“我們如何制作電影”的特殊功能中一樣。)為此,您需要諸如autodesk,maya之類的東西。 您很可能會從數字道具商店購買一些現成的模型(無需制作“椅子”,因為它已經完成了1000次,您可以花10美元購買一個)。

(Unity3D完全免費可以使用幾個月,您可以看看它是否可以賺錢。)

順便說一句,在花栗鼠方面---您只可以使用容易使用的Corona,而您完全可以毫不費力地內置類似於花栗鼠的物理原理! 與撰寫此電子郵件相比,您可以在更短的時間內完成整個游戲。 您可能已經在出售您的游戲,並在思考下一個游戲。 或者,您可以使用“ Cocos”,它確實內置了類似花栗鼠的物理庫..我個人(只是我)我不喜歡也不願意碰cocos-但是當然很多游戲都在使用它。

(對我來說,使用cocos是“傻瓜”產品似乎毫無意義,當您可以繼續使用Corona,這是“傻瓜”產品時,卻非常容易使用,堅固程度提高了1000倍,也許字面上是完成產品並開始賺錢的速度提高了10倍。)

諾埃爾總結:

因此,從某種意義上講 ,如果您想進行詳細的彎角和縫隙碰撞,則使用Unity3D (以及計算機芯片上實際的nvidia物理)是最終的解決方案。 只需一步,花栗鼠就可以准確地在2D物理的ifone / ipad上使用 -正好在我們熟知的所有著名游戲中都使用。 您需要學習一些知識,以期做到這一點-這很有趣。 最后,繼續前進,如果需要,可以使當前模型更復雜 -通過添加更多矩形來滾動自己的模型

第四點,一定要記住,在游戲,驚人的,你可以經常用非常簡單的物理閃避 (通常更簡單!比一個矩形-只是一個該死的點-即簡單地測量中心之間的距離) 第五在完成了測試更詳細的物理的全部工作之后,您將彼此進行測試 ,並找出可以擺脫的最簡單的物理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM