我试图扩展我在使用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