2013-10-10 4 views
3

У меня есть код на игре в понг, над которым я работал: Образец кода показывает, что когда мяч попадает в нижнюю часть окна, мяч сбрасывается до середины окна. То, что я пытаюсь достичь, - это то, что я хотел бы добавить код, чтобы, если мяч попал в верхнюю часть окна, мяч снова вернется в середину. Может ли кто-нибудь помочь мне с этим?Как установить положение спрайта в центр экрана

//... 

// IF BALL GETS PAST PLAYER PADDLE AND TOUCHES BOTTOM OF SCREEN 
if (GetPosition().y - GetHeight()/2 <= 0) 
{ 
    _angle = 180 - _angle; 
    moveByY = -moveByY; 
} 

if (GetPosition().y + GetHeight()/2 + moveByY >= Game::SCREEN_HEIGHT) 
{ 
    // RESET BALL TO MIDDLE OF SCREEN AND RESET TIMER TO 0 
    GetSprite().SetPosition(Game::SCREEN_WIDTH/2, Game::SCREEN_HEIGHT/2); 
    _angle = (float)sf::Randomizer::Random(0,360); 
    _velocity = 220.0f; 
    _elapsedTimeSinceStart = 0.0f; 
} 

//... 
+0

Я забыл упомянуть, что моя игра в понг вертикальна, противник находится в верхней части окна, а игровой весло находится в нижней части окна. – user1283674

+0

Я понял это, просто скопировал код и удалил строки который отскочил назад. Я сейчас работаю над настройкой границы, чтобы весло не продолжало двигаться за пределы окна ... – user1283674

+0

Я не уверен, что я четко понимаю проблему здесь, где именно проблема и что она делает прямо сейчас, что вы не хотите, чтобы это делалось? –

ответ

1

Я понял это, добавил еще несколько условных операторов, чтобы проверить границы, если мяч попадает в топ затем сбросить мяч на середину экрана.

+1

Должна быть проверка рядом с вашим ответом - вы можете пометить ее как ответ. – escapecharacter

+0

Хорошо, я забыл сделать это - Спасибо – user1283674

Смежные вопросы