我試圖擴展我在使用cocos2d時的知識,並且我有兩個問題:1.什麼是CGRects的目的和2.如果它用來使精靈碰撞,我該怎麼做?在cocos2d中更好地理解CGRect
回答
CGRect是一個C結構,被定義爲Core Graphics(因此CG)的一部分,即它是一個「數據」容器,沒有什麼比這更簡單了。它實際上是由另外兩個C結構組成的,CGPoint爲原點,CGSize爲大小,正如你毫無疑問所意識到的那樣。
在Mac上的Core Graphics(Quartz)中,座標系是左下角,定義了原點,同樣適用於OpenGL,因此也適用於Cocos2d。在iOS上它是左上角。例如,視圖層次結構(查看UIView文檔中的框架和界限)通常取決於您所在的位置。
但是,這對CGRect沒有任何影響,該結構不執行座標系統,只定義具有原點和大小的數據類型。對於定義爲與iOS上使用的座標系相同的座標系統,這同樣適用 - 期望的是,您在使用時一致,當然是
並回答第二個問題,下面是示例代碼碰撞檢測。
NSMutableArray *projectilesToDelete = [[NSMutableArray alloc] init];
for (CCSprite *projectile in _projectiles) {
NSMutableArray *monstersToDelete = [[NSMutableArray alloc] init];
for (CCSprite *monster in _monsters) {
if (CGRectIntersectsRect(projectile.boundingBox, monster.boundingBox)) {
[monstersToDelete addObject:monster];
}
}
for (CCSprite *monster in monstersToDelete) {
[_monsters removeObject:monster];
[self removeChild:monster cleanup:YES];
}
if (monstersToDelete.count > 0) {
[projectilesToDelete addObject:projectile];
}
[monstersToDelete release];
}
for (CCSprite *projectile in projectilesToDelete) {
[_projectiles removeObject:projectile];
[self removeChild:projectile cleanup:YES];
}
[projectilesToDelete release];
爲了更好地理解整個概念,這裏是一個由ray的優秀教程的鏈接。 http://www.raywenderlich.com/25736/how-to-make-a-simple-iphone-game-with-cocos2d-2-x-tutorial
這裏有些東西是用括號括起來的。另外,您可以將代碼壓縮到:CGRect targetRect = target.boundingBox;這也將確保它可以與任何anchorPoint一起工作,您明確假定anchorPoint爲0.5,0.5 – LearnCocos2D
@ LearnCocos2D,我只是將ray的示例代碼中的碰撞檢測代碼片段用來顯示碰撞的樣子。它並不意味着什麼。這個問題非常模糊,沒有真正的代碼幫助請求。它只是問它是如何完成的。所以我把那部分放在那裏展示。也放置了進一步研究的鏈接。 –
- 1. Cocos2d CGRect邏輯
- 2. 更好地理解JavaScript
- 3. 更好地理解phantom.exit的()
- 4. 更好地理解編譯
- 5. 更好地理解錯誤
- 6. 用Cocos2d繪製CGRect
- 7. 更好地理解SimpleAdapter的ViewBinder
- 8. 更好地理解這個python代碼
- 9. 試圖更好地理解指針
- 10. 更好地理解extern「C」函數
- 11. 更好地理解Struts2的行爲
- 12. 有助於更好地理解聯接
- 13. 更好地理解內存版本
- 14. 更好地理解getline()和cin
- 15. 爲了更好地理解regionprops
- 16. 使用Google Places更好地理解Api
- 17. 主幹 - 更好地理解模板
- 18. 試圖更好地理解ng-if
- 19. 更好地理解屬性聲明
- 20. 從Mysql到Android更好地理解base64
- 21. 更好地理解__str__用法
- 22. 更好地理解jquery與enquire.js
- 23. 更好地瞭解在軌
- 24. 理解JVM更好
- 25. 的CGRect精靈問題在cocos2d-的Android
- 26. 果醬:更好地使用Cocos2d-x v.2或Cocos2d-x v.1?
- 27. 更好的理解服務
- 28. 更好的理解範圍
- 29. 防僞 - 更好地理解它的工作原理
- 30. 更好地理解用於php和javascript的Web代理
使用此鏈接https://www.cocoanetics.com/2010/07/cgrect-tricks/ – Sport