2012-05-21 57 views
1

截圖:http://imgur.com/kNASp顯示一個大圖像中的ImmediateLayer

編輯 - 在試圖更好地說明這個問題,看來在近期層大的圖像被剪切到ImmediateLayer的大小。

在示例圖像中,有兩個ImmediateLayers。左手大小顯示的圖像大於ImmediateLayer的大小,並在旋轉已翻譯時出現剪切。在右側,圖像的低分辨率版本被放大並顯示在相同的位置。正常曝光。

在後臺顯示圖像的原始用戶版本,顯示其全部加載,並且僅在ImmediateLayer中顯示時才被剪切。

所以,不是旋轉問題,而是一個圖像可以顯示並在ImmediateLayer中翻譯而不被剪裁的問題?

ORIGINAL -

在PlayN,我想渲染到修剪ImmediateLayer時旋轉圖像。我可以通過在渲染時設置表面的旋轉來旋轉圖像,但這會導致圖像被剪切然後旋轉。所以,一張明星影像會在其旋轉到位之前剪掉它的點。

這個循環代碼是否正確並修剪一個錯誤?背景

surface.save(); 

surface.rotate(rotation); 

surface.drawImage(star, 0, 0); 
surface.restore(); 

位,用於使用ImmediateLayer的原因是爲了有2個玩家分屏視圖,並排側。

回答

0

@samskivert - 運行您的示例代碼並將其與截圖進行比較我注意到我有完全不同的結果 - 我根本沒有剪裁。

將項目的playn依賴項從1.2改爲1.3。1,因此到LWJGL解決了這個問題:

http://imgur.com/hqile

完全相同的代碼,錯誤的依賴。感謝您的幫助,深入瞭解問題的最後部分,並感謝您爲Playn打好了這麼多好工作!

1

編輯:

你顯然做錯了什麼。我添加了一個通過旋轉和翻譯將圖像繪製到剪裁的ImmediateLayer中的示例,它的工作原理很好。檢查出this example,並希望它會照亮你做錯了什麼。

Example of rotated and translated image drawing into clipped layer

ORIGINAL:

你能後的截圖展示了錯誤?

除定義裁剪區域的ImmediateLayer的邊界之外不發生裁剪(並且您應該確定而不是旋轉ImmediateLayer本身)。

因此,無論您是旋轉Surface變換然後繪製圖像,都無關緊要。如果旋轉圖像的某些部分超出了ImmediateLayer的邊界,那麼這些部分將被裁剪。但是,即時圖層邊界內的所有內容都將按照正常方式繪製。

+0

原始問題已更新,包括屏幕截圖和進一步說明。 – AiTuDou