2009-08-13 92 views
3

我使用Löve2D來編寫小遊戲。 Löve2D是Lua的開源遊戲引擎。我遇到的問題是,當您在非整數位置繪製時,某些抗鋸齒過濾器會自動應用於您的精靈。在Löve2D中關閉抗鋸齒功能

love.graphics.draw(sprite, x, y) 

因此,當x或y不是圓形(例如,x = 100.24)時,精靈顯得模糊。當精靈大小不均勻時會發生同樣的情況,因爲(x,y)指向精靈的中心。例如,大小爲31x30的精靈將再次出現模糊,因爲它的像素被繪製在非整數位置。

由於我使用的是像素藝術,我想避免這種方式,否則藝術就會被這種效果所破壞。我目前使用的解決方法是通過調用math.floor()來拋出代碼來強制座標輪迴,並強制所有的精靈通過添加一行或一列透明像素與paint程序, 如果需要的話。

是否有一些命令可以禁用我可以在程序啓動時調用的抗鋸齒功能?

回答

2

如果有人有興趣,我一直在問及其他場所中發現了什麼,我問的是已經申請爲特徵:http://love2d.org/forum/tracker.php?p=2&t=7

所以,愛情的當前版本,我使用( 0.5.0)仍然不允許禁用抗混疊過濾器,但該功能已經在引擎的SVN版本中。

+0

我會考慮將這個答案(或其他人之一)作爲正確的答案,以便訪問該問題的人更容易看到:) – Codahk 2012-01-15 11:45:22

4

如果關閉消除鋸齒功能,您只會得到別名,因此名稱!你爲什麼在非整數位置上畫圖,並且你希望對這些小數部分做些什麼? (將它們舍入到最接近的值?截斷它們?如果它們是負數,怎麼樣?)

就我個人而言,我會離開低級圖形並更改代碼以使用訪問器來執行舍入或舍位的x和y你需要的。這可以保證您的像素圖素最終繪製在整數邊界上,同時保持您以後可能需要的抗鋸齒功能。

3

另一個可能的解決方法可能是使用math.floor()將整數作爲一個廉價的解決方法來舍入。