Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
C++とDXライブラリで LTタイマーを作った話 Sora Arakawa (arkw) 2021/11/04 静大情報LT大会@オンライン 「#技育CAMP」でツイートすると 画面上部に表示されます!
Slide 2
Slide 2 text
自己紹介 Sora Arakawa(arkw) • 静岡大学 情報学部 行動情報学科 B2 • 趣味:プログラミング、デザイン、etc… • Alexaスキル開発のバイトをしています (時給915円) • 愛知県岡崎市出身→静岡県浜松市在住 • https://arkw.net/
Slide 3
Slide 3 text
突然ですが…
Slide 4
Slide 4 text
LTタイマーを作りました
Slide 5
Slide 5 text
LTタイマー • 常に最前面表示 • 時間を1分単位でセット(0分~99分) • スタート/ストップボタンを長押しでリセット
Slide 6
Slide 6 text
C(C++)を学習したい!
Slide 7
Slide 7 text
私の言語学習法 • 入門書は買わない • 入門サイトは1から全部やらない • 適当にGUIのソフトを1本作る • 仕様やAPIはググる
Slide 8
Slide 8 text
C++のGUIライブラリ #とは
Slide 9
Slide 9 text
DXライブラリ
Slide 10
Slide 10 text
DXライブラリ(DxLib) • 2001年に山田巧氏が開発したゲームエンジン • DirectXが簡単に扱えるようになっている • 文献が豊富 • オープンソース 表記不要で使用可(例外有り) • 対応OSが多い(Windows、iOS、Android、PlayStation Vita、 PlayStation 4、Nintendo Switch etc…)
Slide 11
Slide 11 text
DXライブラリの機能 • 2Dグラフィック • 3Dグラフィック • サウンド • ムービー • 各種入力 • TCP/IP通信 etc…
Slide 12
Slide 12 text
開発環境 • Windows 10 64Bit • Visual Studio Community 2019 • GitHub Desktop • DXライブラリ Ver.3.22e
Slide 13
Slide 13 text
DXライブラリのダウンロード • https://dxlib.xsrv.jp/dxdload.html からDXライブラリをダ ウンロードする • 必要な機能と開発環境に応じたファイルをダウンロード • 今回は「3Dモデル機能&ソフトウエアレンダリング機能無し パッケージ」を選択
Slide 14
Slide 14 text
DXライブラリのインポート • プロジェクト毎に必要な作業 • https://dxlib.xsrv.jp/dxuse.html を参照 $(ProjectDir)DxLib
Slide 15
Slide 15 text
データ量を減らす • 「~_vs2015_x86_MT.lib」と「~_vs2015_x86_MTd.lib」以外 のlibファイルを全て消す • これだけで90%減量できます(536MB→55.6MB)
Slide 16
Slide 16 text
リソースの作成 • 対応画像形式:BMP、JPEG、PNG、TGA、DDS、ARGB、TIFF • 対応音声形式:WAV、MP3(Windowsのみ)、OGG、Opus
Slide 17
Slide 17 text
コーディング • 省略 • 関数リファレンスと各関数のサンプルコードは https://dxlib.xsrv.jp/dxfunc.html
Slide 18
Slide 18 text
LTタイマーの開発に必要な処理 ウインドウ表示(デフォルトはフルスクリーン) ChangeWindowMode(TRUE); バックグラウンド動作を許可 SetAlwaysRunFlag(TRUE); 最前面表示 SetWindowPos(GetMainWindowHandle(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
Slide 19
Slide 19 text
フレームレートの話 • フレームレートは画面の周波数に依存 • 固定FPSにするコードはネットに転がっている • LTタイマーは30FPS固定
Slide 20
Slide 20 text
まとめ • DXライブラリとC/C++でツールを開発 • 必要なことは全て公式サイトに載っている • 詰まったらググれ • GitHubでソース管理するならデータ量の削減が必須
Slide 21
Slide 21 text
まとめ • GitHubリポジトリ https://github.com/arkwnet/LTTimer
Slide 22
Slide 22 text
ご清聴ありがとうございました