2011-01-13 26 views
6

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. alt text 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); 
    } 
} 
+0

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. –

+1

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

+0

lỗi của tôi, ccp (x, y); – 0xDE4E15B

Trả lời

2

Tôi hy vọng tôi đã hiểu vấn đề này một cách hoàn hảo. Những gì tôi đã làm trong kịch bản như vậy là bao gồm khung Chipmunk trong Trò chơi của tôi và sau đó làm cho Pít tông và pháo của tôi là đối tượng Vật lý. Khi đã xong, tốc độ và hướng (tức là góc của đạn) có thể được điều khiển thông qua các phương thức "ApplyImpulse" của khung công tác. Tốc độ và góc sẽ bị kiểm soát bởi Vật lý riêng của mình một lần tôi sẽ cung cấp các giá trị ban đầu ....

Các vấn đề liên quan