我在寫一個cocos2d-x應用程序。我有一個小精靈在上面有一個小精靈。這些精靈代表屏幕上的一個邏輯對象,它被轉換爲整個對象。現在,當物體被觸摸時,我需要發現哪些小精靈被觸摸。如何檢測兒童精靈的觸摸
問題在於,雖然父Sprite以當前的方式給我提供了所有信息(包圍盒,縮放,旋轉等),但子精靈始終保留其原始數字,儘管與父母一起轉換,我無法弄清楚爲兒童計算「真實」維度的正確方法。
,因爲它看起來對我來說,有兩個事實使所有的困難:
- 孩子邊框具有其相對於父初始邊框報道其初始尺寸。
- 我無法計算父母的旋轉後的初始邊界框(參見下圖),因此我無法計算出現在父母精靈的左下角,我需要它作爲子變換的關係點。
下面是這種情況的繪圖:
因此,要總結,以檢查觸摸是否打孩子的精靈,我需要計算的當前邊框孩子,根據父母的轉變。我可以計算孩子的縮放比例和旋轉角度,但我不知道它應該相對於父對象的位置,因爲父對象的邊界框與開始時的邊界框非常不同。添加奇怪的錨點到故事中,它變得更加複雜。完美的解決方案是獲取原始精靈的頂點而不是邊界框。可能嗎?
任何想法?我錯過了什麼嗎?
從我所看到的,孩子邊框,我得到的是不是真正的邊框,但原來的一個,在所有轉換之前。 – FireAphis
@FireAphis這很奇怪。在我的應用程序中,我有一個鐘錶,這是鐘面的一個孩子,鐘錶的旋轉和定位點都改變了,但我沒有任何使用上述代碼檢測觸摸的問題。您可以查看https://play.google.com/store/apps/details?id=com.giggleup.ITTAFree –