11.
적 비행기 여러 대를 가로로 나란히 배치
화면 너비 : 768, 비행기 가로크기 : 150
=> X좌표 : 3.0f + 가로*0.5f + i*(150.0f + 3.0f)
GameLayer.h
std::vector<Enemy*> m_enemies;
GameLayer::Init()
for( int i=0; i < NUM_OF_ENEMIES; ++i ) {
Enemy* pEnemy = Enemy::create(m_pBatchNode, zEnemy);
CCSize contentSize = pEnemy->getContentSize();
pEnemy->setPosition(ccp(3.0f + contentSize.width*0.5f +
i*(150.0f+3.0f),
m_winSize.height – contentSize.height*0.5f));
m_enemies.push_back(pEnemy);
}
12.
적 비행기가 화면 아래로 사라지면 즉시 위에서 다시 등장
bool GameLayer::init()
{
pEnemy->setVisible(false);
}
void GameLayer::update(dt)
{
MoveBackground(dt);
SpawnEnemies();
}
// 적 비행기 생성 for루프에 추가
13. void GameLayer::SpawnEnemies()
{
// 모든 이동이 끝날 때까지 대기
for( int i=0; i < m_enemies.size(); ++i )
{
Enemy* pEnemy = m_enemies[i];
if( pEnemy->isVisible() ) return
}
for( int i=0; i < m_enemies.size(); ++i )
{
Enemy* pEnemy = m_enemies[i];
CCSize contentSize = pEnemy->getContentSize();
// 초기화
pEnemy->stopAllActions();
pEnemy->setVisible(true);
pEnemy->setPosition(CALC_ENEMY_POS(i, contentSize));