2013-10-10 141 views
3

我在我一直在研究的pong遊戲上有一些代碼: 代碼示例顯示當球擊中窗口底部時,球重置到窗口的中間。我想要實現的是,我希望能夠添加一些代碼,以便如果球擊中窗口的頂部,球將重置回中間。 任何人都可以幫助我嗎?如何將精靈的位置設置爲屏幕中心

//... 

// 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