最近,我一直在努力在線搜索將十六進制字串轉換為十六進制實際值的方法。例如,"0xffffffff" -> 0xffffffff。加載JSON檔案(不能直接存盤十六進制)后,存盤的整數值,4294967295,"0xffffffff"通過使用以下示例代碼成功轉換回:
hex_str = "0x" << 4294967295.to_s(16) #--> "0xffffffff"
真正令人沮喪的是,我似乎無法找到一種 Ruby 方法來重新創建該十六進制值而不是String資料型別......我真的希望我沒有忽略任何東西。我使用非字串十六進制的原因是將它們用于 Gosu 著色符號。我不想用古藪的Color類(輸入RGB值[255, 255, 255]),因為它極大地減緩了性能時,許多矩形quad_draw()在游戲中產生的物件(它下降到約42 fps從60 fps當600rects繪制)。60 fps當我用十六進制實際值(不是字串資料型別)進行硬編碼時,程式確實運行了,所以我相信以這種格式使用這些值是可行的方法。這是我正在尋找的東西:
hex_int = hex_str.some_function_to_hex #--> 0xffffffff
任何想法將不勝感激。如果您可以分享一種可以直接轉換4294967295為的0xffffffff方式,那將是一個獎勵!在此先感謝大家!:)
uj5u.com熱心網友回復:
您可以直接將整數傳遞Gosu::Color.new給創建顏色
3.0.0 :002 > Gosu::Color.new(4294967295)
=> #<Gosu::Color:ARGB=0xff_ffffff>
或者 Gosu::Color.argb
3.0.0 :003 > Gosu::Color.argb(4294967295)
=> #<Gosu::Color:ARGB=0xff_ffffff>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358266.html
上一篇:Rails服務器在起點出現錯誤
