Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
C++とDXライブラリでLTタイマーを作った話
Search
Sora Arakawa
November 04, 2021
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
C++とDXライブラリでLTタイマーを作った話
サポーターズ学生ライトニングトーク ~2021秋の終り編~
Sora Arakawa
November 04, 2021
More Decks by Sora Arakawa
See All by Sora Arakawa
OSもどきOS
arkw
0
770
オープンソース電車運転ゲーム「もっと! 地下鉄 大名古屋」の紹介
arkw
0
57
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
580
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
770
お前も同人作家にならないか? 技術系同人誌制作入門
arkw
3
150
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
1.5k
技術島の指定ツール「LaTeX」で同人誌を作ろう
arkw
2
490
ポスト・パソコン時代のジャンク遊び スマートデバイス編
arkw
0
260
ジャンカーよ、車も買え ~10分でわかる!? 中古車選び入門~
arkw
2
250
Other Decks in Technology
See All in Technology
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
390
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
110
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
230
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
380
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.2k
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
540
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
1
1.1k
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
300
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
820
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
540
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
360
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
300
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
30 Presentation Tips
portentint
PRO
1
410
From π to Pie charts
rasagy
1
380
Exploring anti-patterns in Rails
aemeredith
4
520
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
380
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
710
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
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
ご清聴ありがとうございました