jak przenieść obiekt w określonych lokalizacjach.jak przenieść obiekt w określonych lokalizacjach w cocos2d
na przykład. Mam jeden mały pasek (szerokość = 50, wysokość = 10). Muszę ręcznie przesunąć to jak tłok. chcę poruszać się tylko w x kordinacie (granice to x = 20 (punkt początkowy) do x = 50 (punkt końcowy)) bez ruchów na współrzędnych y. ale porusza się 50 do 10 po tym, jak nie ma ruchu. kodowania: -
- (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);
}
}
Musisz szukać różnych układów współrzędnych Cocos i UIView. Więc musisz przekonwertować punkt z locationInView. Nie pamiętam dokładnie. Ale CCDirector jest klasą, która implementuje te metody. ;-) Mam nadzieję, że to pomogło. –
para3.position = cpp (x, y); Musisz użyć cpp (x, y); zamiast CGPointMake (x, y); używając cocos2d – 0xDE4E15B
moja wina, ccp (x, y); – 0xDE4E15B