特定の場所でオブジェクトを移動する方法。例えば、cocos2dの特定の場所でオブジェクトを移動する方法
。 1つの小さな棒(幅= 50、高さ= 10)を有する。プランジャのように手動で移動しなければならない。私はx座標(x = 20(始点)からx = 50(終点)まで)で移動したいので、y座標上を移動しません。しかし、移動していない病棟では50から10に移動します。 コーディング: -
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (isPlaying) {
UITouch *touch = [[event allTouches] anyObject];
touchPosition = [touch locationInView:touch.view];
if (CGRectContainsPoint(para3.boundingBox,touchPoint)
isDragging = YES;
touchOffset = para3.position.y - touchPosition.y;
}
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if (isPlaying) {
UITouch *touch3 = [[event allTouches] anyObject];
float distanceMoved =
([touch3 locationInView:touch3.view].y + touchOffset) -
para3.position.y;
float newY = para3.position.y + distanceMoved;
if (newY > 67 && newY < 99)
para3.position = CGPointMake(newY , para3.position.y );
//para3.contentSize/2
if (newY >67)
para3.position = CGPointMake(67, para3.position.y);
if (newY < 99)
para3.position = CGPointMake(99, para3.position.y);
}
}
CocosとUIViewの異なる座標系を探す必要があります。したがって、ポイントをlocationInViewから変換する必要があります。私は正確に覚えていない。しかし、CCDirectorはこのメソッドを実装するクラスです。 ;-)私はこれが助けられたことを願っています。 –
para3.position = cpp(x、y);あなたはcpp(x、y)を使う必要があります。 CGPointMake(x、y)の代わりに。を使用してcocos2d – 0xDE4E15B
私のせい、ccp(x、y); – 0xDE4E15B