cách di chuyển đối tượng ở các vị trí cụ thể.cách di chuyển đối tượng tại các vị trí cụ thể trong cocos2d
để biết ví dụ. có một thanh nhỏ (chiều rộng = 50, chiều cao = 10). tôi phải di chuyển như pit tông này bằng tay. tôi muốn di chuyển chỉ trong x cordinates (giới hạn là x = 20 (điểm bắt đầu) đến x = 50 (điểm kết thúc)) không di chuyển trên tọa độ y. nhưng nó di chuyển từ 50 đến 10 sau khi các phường không di chuyển. mã hóa: -
- (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);
}
}
Bạn phải tìm các hệ tọa độ khác nhau của Cocos và UIView. Vì vậy, bạn cần phải chuyển đổi điểm từ locationInView. Tôi không nhớ chính xác. Nhưng CCDirector là lớp thực hiện phương pháp này. ;-) Tôi hy vọng điều này đã giúp. –
para3.position = cpp (x, y); Bạn phải sử dụng cpp (x, y); thay vì CGPointMake (x, y); sử dụng cocos2d – 0xDE4E15B
lỗi của tôi, ccp (x, y); – 0xDE4E15B