FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SDL2を使うことを止めてSFMLを使いだした話など


 気づけば早くも3月になったので
今年もこんな感じで、もう4月になった、もう5月になった、
といった感じになっていくんでしょうか


 最初に、あまり下の話に関係ないことですが、
SDL2関係のライブラリの公式ページ一式と、
Unity公式ページと、SFMLライブラリ公式ページをブログとリンクしました



 さて、今回の記事はSFMLというライブラリについて思ったことです

 まず、どうしてSFMLを使っているのか、ということについては
下のQiitaの記事を参照してもらうとして、
【SFML.netを使ってみた】

 SFML使ってみた感覚としては、これがかなり使いやすい
まず、ウィンドウ表示までで、約10行か15行程度!
 これがSDL2だと、SDL2の初期化してからウィンドウ表示し、最後にSDL2の終了処理の実行、
と結構長くなってしまいます。SDL2だとウィンドウ表示に、およそ20行か25行ほどかかります

 画像表示もSFMLなら楽
読み込んだImageからTextureを作り、それをSpriteのコンストラクタの引数にして、
ウィンドウの描画に、そのSpriteを指定すれば描画ができます
 SDL2だと、画像読み込み処理や描画処理だけでなく、事前にRendererを作る処理も書く必要があります

 音再生処理の実装も楽
SDL2だと、音再生ファイル読み込みや音再生はもちろん、事前にオーディオを開いておく処理を実装する必要があるのですが
これがちょっと面倒かつややこしい
 SFMLだと、音ファイル読み込みと音再生処理の実装だけでOK

 キーボードなどの入力検知も楽
 SFMLのキーボード入力検知は、SDL2と違ってポインタ知識は不要
(SDL2だと、キーボード入力検知用ポインタ配列の番地を参照して検知する。
生ポインタなので、間違って代入をやってしまう危険がある)
 SDL2だとジョイスティック検知が、ゲームパッドの種類によっては、
動作するのかしないのか、する場合はどんな風に動作するのか、というところがわからず、
うまくいきません
(少し前に作ったSDL2を使ったゲームパッド動作確認用ゲームで試したらボタンも十字キーも反応しない・・・)
(さらに、ゲームパッドの軸の検知用テストコードを書いて試してみたら、なぜかX軸の番号が0がでY軸番号が4なのは意味不明・・・)
 それに比べると、SFMLでのゲームパッド検知処理は簡単にできました
軸の入力処理の取り方が非常にわかりやすくてよい
 ちなみにゲームパッド動作検証にエレコムのスーファミ風ゲームパッドを使いました
これです
 ゲームパッドにはいくつか種類があるので、他のパッドで同じように動作するかどうかまではわからないですが

 といった具合に、SDL2よりもSFMLのほうがコードを短く書いていけるって感じですね
SDL2と違って、関数の引数や戻り値が分かりにくいという箇所がないっぽいし、
ポインタを覚えなくてもできるってところでしょうか?
(SDL2を何回か使っていたので、決してポインタがわからないということはないです)

 ただ、SFMLの難点はですね、

 一部の拡張子のファイルを読み込もうとするとエラーが出る
(確認できたものとして、読み込めない拡張子は、ico、mid、mp3がある)
(確認できたものとして、読み込める拡張子は、png、wav、ogg、ttfがある)

 上記のため、アイコン用のicoファイルをpngに変換しておく必要がある、
さらに、midファイルをoggに変換するのも必須

 画像の色違いを作るのがやや面倒かも?
SDL2だと8ビット画像ならばSurfaceのピクセルデータの色配列を変えることで色を変えることができます
生ポインタを使うので危険ですが
 SFMLにはSDL2でいうSurfaceがありません

 テキスト表示がやや難あり
Textオブジェクトを使うと簡単にきれいに揃った文字列の表示ができますが、これはメモリを食いやすいし、
拡大するとアンチエイリアスがかかってぼやけて表示されてしまいます
 フォントから生成したテクスチャを使う場合は、結構面倒です
それでもSDL2で同様の処理を実装するよりも楽な感じがしますが・・・

 といった感じで、いくつか欠点もある感じですが、
どれも自力でなんとかなるって感じでしょうか
 SDL2を使うよりもずっと楽って気がします



 最後に、あまり上の話に関係ないことですが、
最近ふとweb上で動作するゲームとか作りたいと思って、
それについて、SFMLでウェブ実行する方法とか検索してみたけれど、
これがよくわからない
 でも、Html5とJavaScriptを書くとかヤだよ面白いけど
少し前にJavaScript書いてて本当にかなり面白かったんだけどねえ・・・

 ウェブ実行コンテンツ作るなら、Unityというのもあるけど、
どうやったらいいかわからなくて、以前コレをやろうとしてすぐ挫折、を何回か繰り返して
結局今やってないな
 操作がめんどうな感じだし、操作関連だけでもよくわからない部分多いし、
プログラムの組み方もよくわからん感じだし、でUnityを使いこなせる気がしなくて
Unityを使いこなせたとしたなら、SFMLよりずっと楽だと思えるかもしれないけど、
そこまで使いこなせる気がしないとゆーかなんというか・・・
 ただ、Unityに移行したなら、ブラウザゲームとか作ってみたい


 また、やたら長い文章を・・・
スポンサーサイト

SFML.netについてわかってきたこと

SFML.netをちょっと触ってみて、
少しわかったことなどをQiitaに書いてみました

Qiitaのページ

まだわからないことだらけなんで、
今後SDL2から移行するかどうかはまだ決めてない
プロフィール

みにおん

Author:みにおん
c#でゲームを作る人です
web小説なども書いています

低学歴で馬鹿なのパート従業員
ですが、よろしく

相互リンク・ブロとも募集中です
コメントなどご自由にどうぞ

ホームページを見る
Twitter(個人ページ)
PIXIV(個人ページ)

○自作ゲーム一覧
ふりーむ
フリーゲーム夢幻
100%ふりげストア

・web小説
最後の時の夢

最新記事
最新コメント
月別アーカイブ
カテゴリ
ブロとも一覧
検索フォーム
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示
リンク
アクセスランキング
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。