2011-05-13 88 views
3

所以我和我的夥伴正在試圖製作一款玩家與電腦玩的pong遊戲,但我們無法弄清楚如何讓電腦失去。如何讓電腦在乒乓球比賽中輸球?

我們已經完成了基本的工作,它工作正常,但電腦從未失去。而且我們也嘗試使用睡眠來減慢電腦的兜售速度,但是一旦槳板移動緩慢,球也會移動緩慢。

任何意見將有所幫助! 謝謝

回答

1

我認爲電腦從來不會輸,因爲它「知道」球將要去哪裏。在這種情況下,爲什麼你不能在一定比例的時間內把它放到錯誤的地方?

同樣,如果你只是想減慢速度,而不是睡覺,你可以散佈「不要去任何地方」的「移動」以及朝着它認爲合適的地方移動。因此,不是「下降1,下降1,下降1」,您可以有「下降1,下降0,下降0,下降1,下降0,下降0 ...」或沿着這些線條。

1

我認爲有這樣的遊戲網站https://gamedev.stackexchange.com/這樣的問題。但我的答案是嘗試循環AI蝙蝠的最高速度。並使蝙蝠位置短。 (只有到了球的位置作出反應,一旦它在它的一半。)

5

而且我們還利用慢波睡眠嘗試下來 計算機兜售,但 每當槳移動緩慢, 球也移動緩慢。

您需要使其移動速度較慢,每移動一次移動它的距離越短。

0

當您使用睡眠時,整個程序停止幾毫秒。 你有遊戲循環嗎?如果是這樣,請嘗試減小平移量,並且不要忘記將加速度向量標準化。

cpuPadlle.Position += amount * acceleration; 

在哪裏:[0..1]

  • 加速度

    • 量是2D矢量
  • 4

    在原來的傍遊戲,槳葉是完全同步拿球,就是每當球落下時,球拍也是如此。顯然,這會使遊戲無法通過,因此開發人員使用的解決方案是每隔幾個循環跳過一次更新週期。

    用外行人的話說,除了第五,十,十五等,除了第五,十,十五等之外,在每一幀上,你都要調整槳的位置以跟隨球。通過這樣做,你的槳似乎很好地跟隨着球,一種延遲的反應。

    +1

    來源:賽車橫樑。不幸的是,我不記得跳過幀的確切幀數,但是您仍然需要進行調整。 – 3Doubloons 2011-05-13 14:48:15

    1

    計算機必須犯錯失去。問題是,錯誤必須是現實的。如果錯誤看起來過於人爲,那麼玩家在一段時間後會失去興趣。人類必須相信錯誤的原因是他的好戲。

    1. 計算機可能會遲到發生反應遲。我的意思是,當人類擊球時凍結。如果人類用邊擊球,這可能會發生。

    2. 故意慢下來是不現實的。但是有時候電腦可能會慢一點,同時防守一個會彈跳的球。

    3. 當球與蝙蝠中部碰撞時,電腦可能會對錯誤的一面作出明顯反應(例如,向上而不是向下)。

    4. 計算機可能會在錯誤的地方等待一個球(關閉1),特別是如果球會彈跳。