Cities BoxをC++で再現中

with コメントはまだありません

正直に言うと、もう数ヶ月間HSPを触っていなくて、ほとんど忘れてしまっています。

HSPのリハビリも大切ですが、今年に入ってからずっとMacで開発していたこともあり、

やっぱりWindowsとMac、両方で動くプログラムが作りたくなってくるわけです。

そこで、C++でCities Boxを再現してしまおうと思い付き、勢いに任せてC++で開発をはじめました。

「Cities Box.cpp」という名前で開発しています。

 

開発環境はC++ 17で、OpenSiv3D 0.4.1を使用しています。

 

こちらがメニュー画面。デザインはHSP版と変わっていませんが、せっかくなので後日変えようと思います。

ボタン類はまだ準備していません。HSPと違ってOpenSiv3Dにはボタンは最初から用意されていません。

追記:ボタンは用意されていました

以前もOpenSiv3Dでボタンを自作したことがあるので、それを流用する形になると思います。

 

アドオンの画像をとりあえず表示させた様子がこちらになります。

OpenSiv3Dには画像の透過色(例えば黒など)を指定し、その色だけを透過して表示するという機能はありませんが、

各ピクセルの透過度を指定することはできるので、透過色があるピクセルに透過度を設定する関数を作ることで、

透過色を透過させた画像をバッファに書き込み表示させています。

 

C++は便利ですね。特に、クラスとか構造体とか、連想配列があるのはかなりありがたいです。

アドオンファイルや画像は、ディレクトリ内にある全てのファイルを検索し、自動的に読み込みます。

HSPでは画像を一つ読み込むごとにバッファ番号とファイル名を指定しなければなりませんでしたが、それも必要なくなりました。

今回は連想配列を利用することで、画像名と予め設定したタグを指定すれば、バッファから簡単に画像を表示させることができるようになりました。

 

今後の課題点としては、入力ボックスをどうするかですね。

OpenSiv3Dには入力ボックス機能が標準で備わっていないので、自作する必要がありそうです。

訂正:OpenSiv3Dでも入力ボックスに対応していました。ありがたい…!

今回はWindowsとMacで動くマルチプラットフォームを目指していますので、WinAPIは使えません。

できることが増え、便利になった代わりに、自分で作らなければならない部分も増えそうです。

Leave a Reply