Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Cocos2d-创建可碰撞的精灵?_Iphone_Cocos2d Iphone - Fatal编程技术网

Iphone Cocos2d-创建可碰撞的精灵?

Iphone Cocos2d-创建可碰撞的精灵?,iphone,cocos2d-iphone,Iphone,Cocos2d Iphone,大家好,我是cocos2d的新手,如果这是一个简单的问题,我很抱歉。我想创建一个精灵,当它们相互碰撞时会发生碰撞 例如,一个雪碧,雪碧茶,在屏幕上的固定位置。另一个精灵spriteB正在屏幕上移动。SpriteB将与spriteA碰撞。如果这没有意义或者你不明白,告诉我,我会进一步解释。感谢您的帮助。谢谢大家! 从技术上讲,当两个精灵相互作用,或至少共享一个公共点时,它们就会发生碰撞。我被你的问题弄糊涂了。您是在询问如何使精灵在屏幕上移动的方向,还是在询问如何处理实际碰撞(例如,如果碰撞,则调用

大家好,我是cocos2d的新手,如果这是一个简单的问题,我很抱歉。我想创建一个精灵,当它们相互碰撞时会发生碰撞


例如,一个雪碧,雪碧茶,在屏幕上的固定位置。另一个精灵spriteB正在屏幕上移动。SpriteB将与spriteA碰撞。如果这没有意义或者你不明白,告诉我,我会进一步解释。感谢您的帮助。谢谢大家!

从技术上讲,当两个精灵相互作用,或至少共享一个公共点时,它们就会发生碰撞。我被你的问题弄糊涂了。您是在询问如何使精灵在屏幕上移动的方向,还是在询问如何处理实际碰撞(例如,如果碰撞,则调用方法)

尝试使用花栗鼠或Box2d物理系统。这些都包含在Cocos2d中,并通过物理模拟进行工作,该模拟随着屏幕上图形的每次更改而更新

物理模拟将告诉您两个对象是否重叠,并将提供诸如重量、滑动度(摩擦力)、速度和方向等物理属性,从而产生反弹、滑动、真实速度损失和碰撞时方向变化等反应

如果您是物理模拟新手,下面是一个30秒的总结:

  • 在物理模拟中创建表示每个图形精灵的“实体”
  • 实体的定义通常比图形更简单,例如圆形、方形或简单多边形
  • 为了准确地更新屏幕上的图形,首先要建立像素与米的比率。仪表是物理模拟中使用的概念(即组合)测量
  • 每次物理模拟“滴答”时,您都会相应地更新屏幕上的图形
  • 因此,如果物理模拟中的实体移动1米,则可以将像素精灵变换为32像素
下面是一个关于使用Box2d进行碰撞检测的好教程。


享受

其实很简单:

  • 只需安排一个计时器:[自我安排:@selector(checkForCollision:)]

  • 指定方法:-(void)checkForCollision:(ccTime)dt{}

  • 在花括号中,使用CGRectMake为每个精灵生成CGRECT

  • 然后在相同的方法中,只需调用:if(CGRectIntersectsRect){}


  • 那容易

    这是一个应该在评论中而不是在回答中提出的问题,因为您没有指定答案。他在问如何处理这次碰撞。