看板 Ruby 關於我們 聯絡資訊
雖然沒有人回答 但是我終於找到問題答案了 我繪圖時是使用SDL::Surface.trnasform_blit 我再它包裝成SDL::Surface#draw (反正要貼的Screen也就那麼一個...) 把圖拆開畫和拼起來感覺差不多 不過這就是重點... 今天在偶然中使用了Ruby-prof來測程式的表現 發現SDL::Surface#transform_surface佔了執行的40%以上 (其他40%是Delay 20%主程式 所以...) 而不是SDL::Surface.transform_blit這個方法 也就是說這個方法裡有玄機 於是我找到了Ruby/SDL的Gem資料夾 在lib的sdl.rb中 有句很重要的transform_surface 代表了會產生新的物件 而且是每次要transform_blit時都會重新產生 於是對於大的圖檔就要花上更多時間來產生物件 (應該是要用才會alloc吧 我有弄錯嗎?) 所以改成只用一次的transfor_surface 再搭配上SDL::Surface.blit就大幅改善效能 (本來一圈24ms 現在只要6ms...) 各位要小心函式庫本身的小缺陷... 還有80:20法則... 話說用Ruby刻一個RPG遊戲會很怪嗎? 不是用RGSS而是從無到有這樣... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.228.150.59
icycandle:不會怪呀,可以走跟RGSS不同的路,如果你真的有想法的話 10/17 09:57
sand1050:話說用Ruby 只是.rb檔 似乎還要靠一些語言加載.rb檔 10/17 21:17
sand1050:運行 10/17 21:17
godfat:我覺得用 ruby 非常理想呀,只是現實可能有不少要克服的 :s 10/17 21:54
ryudo:Rpg maker 10/23 20:44
david50407:SDL 效率不會太差嗎? 10/27 00:45
david50407:我現在有再寫一個ruby的遊戲引擎的project 最後選了OGL 10/27 00:46
AIGecko:指的是OpenGL嗎?其實SDL繪圖效率真的很糟... 10/27 15:37
AIGecko:程式瓶頸點竟然是Blit...前幾名也都是SDL的函式 10/27 15:38
AIGecko:(SDL.delay消耗了一半XD 不過Blit佔了剩下40%以上...) 10/27 15:42