2013-05-28 47 views
0

我製作了一個2D項目,其中包含大量的貼圖精靈和一個玩家精靈。我試圖讓相機跟隨播放器,而且大部分都在工作。但是,有一個問題:
如果您轉到地圖邊緣,它會正常滾動,但不是黑色背景,而是在地圖邊緣而不是背景(黑色)上顯示精靈副本。如果我將一些方塊留空,當它移動時會顯示之前存在的方塊的副本,它也有同樣的問題。(pygame)空方塊顯示以前那裏的副本,而不是背景

相機的工作原理是這樣的:

  • 選擇精靈,應該是可見
  • sprite.visible = 1他們,sprite.visible = 0所有其他精靈
  • 設置位置的所有精靈的sprite.rectcoords - offset
  • 更新屏幕(我使用flip(),因爲相機每轉動一圈,所以整個屏幕必須每轉更新一次)

全部DirtySpritesdirty = 2

有誰知道爲什麼它顯示副本的邊緣而不是背景的精靈?

幫助,將不勝感激!

回答

1

除非您手動清除屏幕表面,否則翻轉將不會更改其內容。

因此,如果您忽視繪製到某個位置,它將保持不變。

如果你想擺脫這種通常被稱爲「鏡像大廳」的效果,你將不得不跟蹤屏幕的哪些部分尚未被繪製,並自己繪製。

在您的地圖輪廓周圍定義背景精靈並阻止您的相機過分偏離可能更容易。

由於您使用「髒/乾淨」的方法只重繪了已更改的內容,因此您將無法在繪製相框之前填充整個屏幕表面,因爲這會吸引保持不變的任何內容自上一幀以來。

+0

謝謝!與背景精靈的方法工作,並沒有太多額外的工作。 – Lokkij