내 외계인은 X 축을 따라 화면 하단에 무작위로 생성됩니다. 화면 왼쪽 상단으로 대각선으로 이동합니다.
대신 화면 오른쪽에서 Y 축을 따라 무작위로 나타난 다음 오른쪽에서 왼쪽으로 직선으로 이동하고 싶습니다.
이를 위해 다음 코드를 어떻게 변경할 수 있습니까? 저는 여기 초보자입니다 ... 가능하면 도와주세요 :
if (curTime > _nextAlienSpawn)
{
float randSecs = [self randomValueBetween:0 andValue:13];
_nextAlienSpawn = randSecs + curTime;
float randY = [self randomValueBetween:0 andValue:winSize.height];
float randDuration = [self randomValueBetween:30 andValue:60];
alien = [_aliens objectAtIndex:_nextAlien];
_nextAlien++;
if (_nextAlien >= _aliens.count) _nextAlien = 0;
[alien stopAllActions];
alien.position = ccp(winSize.width+alien.contentSize.width, randY);
alien.visible = YES;
[alien runAction:[CCSequence actions:
[CCMoveBy actionWithDuration:randDuration position:ccp(- winSize.width-alien.contentSize.width, -500)],
[CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)],
nil]];
}
문제는 앱이 가로 모드에서 실행되고 있지만 항상 세로 좌표를 참조 하는 창 좌표를 사용하고 있다는 것 입니다. 이 스택 오버플로 질문 은 현재 겪고있는 문제를 해결합니다!
그 대답에서 새 자식 뷰를 만들고 해당 뷰가 올바르게 회전하여 X와 Y가 창이 아닌 뷰에 상대적이되도록해야하는 것처럼 들립니다 . 그러면 코드가 위에있는대로 작동합니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다