Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
C++とDXライブラリでLTタイマーを作った話
Sora Arakawa
November 04, 2021
Technology
0
94
C++とDXライブラリでLTタイマーを作った話
サポーターズ学生ライトニングトーク ~2021秋の終り編~
Sora Arakawa
November 04, 2021
Tweet
Share
More Decks by Sora Arakawa
See All by Sora Arakawa
ヤフオクで原付買った話
arkw
0
67
パソコンの消費電力と省エネ化のおはなし
arkw
0
100
"成果物"を作ろう(提案)
arkw
0
70
Python(+α)でスマートプラグを制御してみた
arkw
0
130
学情絶叫ウェブシステムGX
arkw
0
68
Googleの新デザイン言語 Material You
arkw
0
68
Amazon Echo Show向けウェブアプリの開発
arkw
0
220
HTML5 Canvasによる2Dウェブゲーム開発
arkw
0
54
1500円で始める自宅ウェブサーバ
arkw
0
280
Other Decks in Technology
See All in Technology
合同IT企業説明会から学ぶエンジニア向けの広報戦略
nagutabby
1
230
漫画で使えそうな背景画像をblenderを使って作ってみた!
nokonoko1203
1
280
Sysdig Secure/Falcoの活用術! ~Kubernetes基盤の脅威モデリングとランタイムセキュリティの強化~
owlinux1000
0
240
第22回 MLOps 勉強会:みてねのMLOps事情
tonouchi510
1
970
Amplifyで Webアプリケーションの 堅固な土台をサクッと構築する方法
kawasakiteruo
0
220
LINSTOR — это как Kubernetes, но для блочных устройств
flant
0
3.2k
Settlement simulation testing to ensure correct settlement processing
applepine1125
2
1.2k
Dangerous attack paths: Modern Development Environment Security - Devices and CI/CD pipelines
rung
PRO
0
120
ReverseETLでユーザーに価値を届ける基盤を実現した話
hakky
0
350
私のAWS愛を聞け!ここが好きだよAmazon FSx for NetApp ONTAP
non97
0
770
MySQL v5.7 勉強会/study-mysql-ver-5-7
andpad
0
2k
Trusted Web プロトタイプ
finengine
0
330
Featured
See All Featured
Designing Experiences People Love
moore
130
22k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
A designer walks into a library…
pauljervisheath
196
16k
Web Components: a chance to create the future
zenorocha
303
40k
Unsuck your backbone
ammeep
659
55k
Scaling GitHub
holman
451
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
21
1.4k
GraphQLとの向き合い方2022年版
quramy
16
8.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
Debugging Ruby Performance
tmm1
65
10k
Building Flexible Design Systems
yeseniaperezcruz
310
34k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.3k
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
ご清聴ありがとうございました