Cocos2d iphone 适用于iPad的cocos2d吉他弦

Cocos2d iphone 适用于iPad的cocos2d吉他弦,cocos2d-iphone,guitar,Cocos2d Iphone,Guitar,我开始与Cocos2D合作,到目前为止学到了很多。但我找不到如何模拟ccDrawLine,使其行为类似于吉他弦,也就是说,当触摸ccDrawLine时,它会播放声音并将ccDrawLine移动到用户触摸它的位置。我没有使用Cocos2D的经验,但模拟吉他弦的过程可能是这样的: 画你的线 在字符串周围添加有效的“触摸区域”(因为小字符串可能不够厚,无法可靠地记录触摸) 当您在触摸区域的边界内检测到触摸时,请设置线条动画以模拟strum,并播放声音(并将其淡出,以模拟振动的减缓) 另一个需要考虑

我开始与Cocos2D合作,到目前为止学到了很多。但我找不到如何模拟ccDrawLine,使其行为类似于吉他弦,也就是说,当触摸ccDrawLine时,它会播放声音并将ccDrawLine移动到用户触摸它的位置。

我没有使用Cocos2D的经验,但模拟吉他弦的过程可能是这样的:

  • 画你的线
  • 在字符串周围添加有效的“触摸区域”(因为小字符串可能不够厚,无法可靠地记录触摸)
  • 当您在触摸区域的边界内检测到触摸时,请设置线条动画以模拟strum,并播放声音(并将其淡出,以模拟振动的减缓)
另一个需要考虑的是重叠声音的可能性。如果用户快速触碰同一个字符串怎么办?在新声音开始之前,上一个声音应该停止。或者,更自然的是,当用户的手指仍在琴弦上时,不应播放声音,而应仅在用户“拨动”琴弦(即结束触摸)后发出声音

我不确定Cocos2D是否有自己的触摸事件处理程序(我想会),但这篇文章可能会有所帮助:


编辑:事实证明,Cocos2D确实有自己的触摸事件处理程序。请参阅:

我将使用一个免费且简单的矢量艺术工具(如Inkscape)来实现这一点。它将允许您制作一些不同厚度/纹理的逼真字符串。将字符串作为不同的精灵导入应用程序。Cocos2d有很多选项可以轻松检测“isTouchOnNode”之类的东西,这非常适合您的场景。具体来说,它可以实现简单的触摸检测和节点选择

我目前无法访问Xcode,因此这可能不是逐字的代码:

/* if you use Kobold2d */

CCSprite* Gstring = [CCSprite spriteWithFile:@"Gstring.png"];
KKInput* input = [KKInput sharedInput];
if ([input isAnyTouchOnNode:Gstring touchPhase:KKTouchPhaseAny])
{
// play a sound.
// this code will become extremely complicated
// if you want a realistic sound
}
请记住,如果你打算制作一个声音/音乐密集型应用程序,cocos2d可能不是最好的引擎。它有一个来自CocosDenshion的非常基本的“SimpleAudioEngine”,它的设计不是为了处理吉他可以发出的许多重叠声音