Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
C++とDXライブラリでLTタイマーを作った話
Search
Sora Arakawa
November 04, 2021
Technology
0
380
C++とDXライブラリでLTタイマーを作った話
サポーターズ学生ライトニングトーク ~2021秋の終り編~
Sora Arakawa
November 04, 2021
Tweet
Share
More Decks by Sora Arakawa
See All by Sora Arakawa
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
130
技術島の指定ツール「LaTeX」で同人誌を作ろう
arkw
2
140
ポスト・パソコン時代のジャンク遊び スマートデバイス編
arkw
0
110
ジャンカーよ、車も買え ~10分でわかる!? 中古車選び入門~
arkw
1
98
arkw vs. サーバ移転 -2024年1月版-
arkw
0
280
なれる! 村上さん Misskeyサーバ構築入門
arkw
0
500
Cloudflare Tunnelで自宅サーバを公開してみた
arkw
0
1.4k
5分でわかる!? 7セグメントLED制御
arkw
0
69
ヤフオクで原付買った話
arkw
0
210
Other Decks in Technology
See All in Technology
Асинхронная коммуникация в Go: от понятного к душному. Дима Некрасов, Otello, 2ГИС
lamodatech
0
2.2k
雑に疎通確認だけしたい...せや!CloudShell使ったろ!
alchemy1115
0
230
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
5
1.3k
計装を見直してアプリケーションパフォーマンスを改善させた話
donkomura
1
130
使えるデータ基盤を作る技術選定の秘訣 / selecting-the-right-data-technology
pei0804
9
1.4k
RubyKaigi NOC 近況 2025
sorah
3
1k
Новые мапы в Go. Вова Марунин, Clatch, МТС
lamodatech
0
2.1k
製造業向けIoTソリューション提案資料.pdf
haruki_uiru
0
270
自動化の第一歩 -インフラ環境構築の自動化について-
smt7174
1
130
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
7.1k
クラウドネイティブ環境の脅威モデリング
kyohmizu
2
420
Google Cloud Next 2025 Recap アプリケーション開発を加速する機能アップデート / Application development-related features of Google Cloud
ryokotmng
0
250
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
245
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Building Applications with DynamoDB
mza
94
6.4k
Code Reviewing Like a Champion
maltzj
523
40k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Documentation Writing (for coders)
carmenintech
71
4.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
C++とDXライブラリで LTタイマーを作った話 Sora Arakawa (arkw) 2021/11/04 静大情報LT大会@オンライン 「#技育CAMP」でツイートすると 画面上部に表示されます!
自己紹介 Sora Arakawa(arkw) • 静岡大学 情報学部 行動情報学科 B2 • 趣味:プログラミング、デザイン、etc…
• Alexaスキル開発のバイトをしています (時給915円) • 愛知県岡崎市出身→静岡県浜松市在住 • https://arkw.net/
突然ですが…
LTタイマーを作りました
LTタイマー • 常に最前面表示 • 時間を1分単位でセット(0分~99分) • スタート/ストップボタンを長押しでリセット
C(C++)を学習したい!
私の言語学習法 • 入門書は買わない • 入門サイトは1から全部やらない • 適当にGUIのソフトを1本作る • 仕様やAPIはググる
C++のGUIライブラリ #とは
DXライブラリ
DXライブラリ(DxLib) • 2001年に山田巧氏が開発したゲームエンジン • DirectXが簡単に扱えるようになっている • 文献が豊富 • オープンソース 表記不要で使用可(例外有り)
• 対応OSが多い(Windows、iOS、Android、PlayStation Vita、 PlayStation 4、Nintendo Switch etc…)
DXライブラリの機能 • 2Dグラフィック • 3Dグラフィック • サウンド • ムービー •
各種入力 • TCP/IP通信 etc…
開発環境 • Windows 10 64Bit • Visual Studio Community 2019
• GitHub Desktop • DXライブラリ Ver.3.22e
DXライブラリのダウンロード • https://dxlib.xsrv.jp/dxdload.html からDXライブラリをダ ウンロードする • 必要な機能と開発環境に応じたファイルをダウンロード • 今回は「3Dモデル機能&ソフトウエアレンダリング機能無し パッケージ」を選択
DXライブラリのインポート • プロジェクト毎に必要な作業 • https://dxlib.xsrv.jp/dxuse.html を参照 $(ProjectDir)DxLib
データ量を減らす • 「~_vs2015_x86_MT.lib」と「~_vs2015_x86_MTd.lib」以外 のlibファイルを全て消す • これだけで90%減量できます(536MB→55.6MB)
リソースの作成 • 対応画像形式:BMP、JPEG、PNG、TGA、DDS、ARGB、TIFF • 対応音声形式:WAV、MP3(Windowsのみ)、OGG、Opus
コーディング • 省略 • 関数リファレンスと各関数のサンプルコードは https://dxlib.xsrv.jp/dxfunc.html
LTタイマーの開発に必要な処理 ウインドウ表示(デフォルトはフルスクリーン) ChangeWindowMode(TRUE); バックグラウンド動作を許可 SetAlwaysRunFlag(TRUE); 最前面表示 SetWindowPos(GetMainWindowHandle(), HWND_TOPMOST, 0, 0,
0, 0, SWP_NOSIZE | SWP_NOMOVE);
フレームレートの話 • フレームレートは画面の周波数に依存 • 固定FPSにするコードはネットに転がっている • LTタイマーは30FPS固定
まとめ • DXライブラリとC/C++でツールを開発 • 必要なことは全て公式サイトに載っている • 詰まったらググれ • GitHubでソース管理するならデータ量の削減が必須
まとめ • GitHubリポジトリ https://github.com/arkwnet/LTTimer
ご清聴ありがとうございました