2018/02/19(月) [n年前の日記]
#1 [dxruby] DXOpalでタイルマップBG描画その3
DXOpal で、1チップ 64x64 ドットのタイルマップBGを描画した場合は 60FPSが出たのだけど。32x32ドットのタイルチップならどうなるのか気になったので試したり。
ちなみに、 _以前作成したlove2d用のサンプル のマップデータが、1チップ 32x32ドットだったので、ソレを使用。
_DXOpal fake draw_tile (1 chip : 32x32 ver.)
640x480のウインドウサイズ、1チップ 32x32ドット、レイヤーは2枚の状態だけど。なんだかビミョーな結果になった。ちなみに OSは Windows10 x64。
Firefox ESR だけは、CPUを1コア使い切ってしまって、60FPSが出ない。タスクマネージャで確認すると、4コアCPU上でCPU使用率が25%を超えてるから、おそらく1コアを使い切ってる。
つまり、Firefox を使うと、1チップが 32x32ドットのタイルマップBGは、手元の環境でも処理が重過ぎて、60FPSで描画できない模様。
1チップ 64x64ドットにすれば改善するけど、それはそれで、ちょっと大き過ぎるのだよなあ。48x48 なら、どうなるのだろう…。
ちなみに、 _以前作成したlove2d用のサンプル のマップデータが、1チップ 32x32ドットだったので、ソレを使用。
_DXOpal fake draw_tile (1 chip : 32x32 ver.)
640x480のウインドウサイズ、1チップ 32x32ドット、レイヤーは2枚の状態だけど。なんだかビミョーな結果になった。ちなみに OSは Windows10 x64。
browser | CPU usage (%) | 60FPS |
---|---|---|
Firefox ESR 52.6.0 x64 | 22 - 27 | failure |
Google Chrome 64.0.3282.167 x64 | 13 - 18 | success |
Microsoft Edge 41.16299.248.0 | 13 - 19 | success |
Vivaldi 1.14.1077.50 x86 | 13 - 18 | success |
Firefox ESR だけは、CPUを1コア使い切ってしまって、60FPSが出ない。タスクマネージャで確認すると、4コアCPU上でCPU使用率が25%を超えてるから、おそらく1コアを使い切ってる。
つまり、Firefox を使うと、1チップが 32x32ドットのタイルマップBGは、手元の環境でも処理が重過ぎて、60FPSで描画できない模様。
1チップ 64x64ドットにすれば改善するけど、それはそれで、ちょっと大き過ぎるのだよなあ。48x48 なら、どうなるのだろう…。
◎ Tiledのエクスポートしたjsonについて。 :
昨日までは、Tiled上で、タイルレイヤーのみを使うマップデータを作成して使っていたけど。love2d のサンプルで使ったマップデータはオブジェクトレイヤーも含んでいたので、そのまま読み込むとエラーが出て、ちょっとハマった。
各レイヤーは、「"type" : "tilelayer"」といった具合に、そのレイヤーの種類を示す情報も持っているので、レイヤー群を順々に調べていく時に、タイルレイヤー以外は見ないようにしておく必要がある。とメモ。
各レイヤーは、「"type" : "tilelayer"」といった具合に、そのレイヤーの種類を示す情報も持っているので、レイヤー群を順々に調べていく時に、タイルレイヤー以外は見ないようにしておく必要がある。とメモ。
res["layers"].each do |layer| next if layer["type"] != "tilelayer" # ...もちろん、実際のゲーム制作では、敵セットテーブルや地形アタリの指定等をするために、えてしてオブジェクトレイヤー情報も使うことになるだろうけど…。
[ ツッコむ ]
以上です。