はかせのラボ

私の頭の中を書いていく雑記ブログです

C++

DirectX オプションユニット作成 ~長押しで挙動を変える~

あいさつ 前回の長押し判定の問題点 解決方法 長押し時の処理 オプションユニットが前方に集まる 自機の移動速度が遅くなる 実行結果 あとがき あいさつ どうも、はかせです。 今回はちょっと前に作った長押し判定を使って オプションユニットと自機の挙動を…

DirectX オプションユニット作成 ~プレイヤーに追従~

あいさつ 実装 あとがき あいさつ どうも、はかせです。 今回からオプションのユニットを作っていきます。 オプションは弾幕シューティングで自機の周りにいて一緒に攻撃してくれるやつです。 実装 とりあえず自機の周りにいて一緒に攻撃してくれるところま…

DirectX 長押しと連打の判別

あいさつ 実装理由 実装方法 あとがき あいさつ どうも、はかせです。 今回はキーの長押しと連打の判別です。 実装理由 色々脱線してて忘れてるかもしれませんが私は今弾幕シューティングを作っています。 みなさんは弾幕シューティングと聞いて何が思いつき…

DirectX スコア機能実装

あいさつ 実装方法 あとがき あいさつ どうも、はかせです。 今回は今まで作ってきたタスクシステムという名の オブザーバーパターンを使ってスコア機能を作りました。 実装方法 まずは久しぶりの動画です。 画面左上に注目です。 youtu.beSCOREという文字の…

C++ ダックタイピングとインターフェース

あいさつ ダックタイピングとは 使用例 もう少し親切に教えてほしい あとがき あいさつ どうも、はかせです。 今回はダックタイピングについてです。 ダックタイピングとは 特定メソッドを持っているか否かで判定しもっていたら呼ぶ機能です。どんな型でどう…

C++ タスクシステム⑬ ~はかせはカスタムデリータを覚えた~

あいさつ なぜできなかったのか コードが長い・・・ エイリアステンプレート 実行 あとがき あいさつ どうも、はかせです。 昨日カスタムデリータが使えないorz という旨の記事を出しました。その問題がようやく解決できたので記事にします。 なぜできなかっ…

C++ タスクシステム⑫ ~本プロジェクトへ移植したいが壁にぶつかる~

あいさつ unique_ptrのカスタムデリータがわからない あとがき あいさつ どうも、はかせです。 今回は今まで作ってきたもの(Subjectとか)を 本プロジェクトへ移植します。ただ今回の記事は○○できましたではなく、 ○○できなくて困ってます系記事です。 unique…

C++ タスクシステム⑪ ~メソッドチェーンに挑戦~

あいさつ メソッドチェーンとは メソッドチェーンの利点 あとがき あいさつ どうも、はかせです。 今回はメソッドチェーンに挑戦してみたいと思います。 メソッドチェーンとは メソッドを連鎖的に呼び出すことです。 class TestMethodChain { public: TestMe…

C++ タスクシステム⑩ ~ReactiveProperty~

あいさつ ReactivePropertyとは 実装方法 オペレータのオーバーロード C++は組み込み型の初期化をしてくれない 実装 あとがき あいさつ どうも、はかせです。 今回はReactivePropertyの実装をしていきます。 ReactivePropertyとは 変数+Subjectのようなもの…

C++ タスクシステム⑨ ~能動的に動くSubject~

あいさつ 実装方法 あとがき あいさつ どうも、はかせです。 今回は前回予告した 「能動的に動くSubject」の実装をしていきます。 実装方法 基本は前回作ったSubjectです。 前回はmainで行っていたSubjectの操作を クラス内に隠蔽することでmain側の操作なく…

C++ タスクシステム⑧ ~オブザーバーパターン参戦!~

あいさつ オブザーバーパターン 実装 値の通知 使い方 あとがき あいさつ どうも、はかせです。 前回までデリゲート+コルーチンでタスクを作ろうとしてました。 ただ要は処理を登録して任意のタイミングで発火できれば良いのでは? という考えに至りました。…

C++ タスクシステム⑦ ~クラステンプレート型推論~

あいさつ クラステンプレート推論 やり方 あとがき あいさつ どうも、はかせです。 今回はクラステンプレートの引数リストの推論です。 クラステンプレート推論 私がずっとめんどくさいうまくする方法はないかと考えていたことです。 要は Task<int> task(....); </int>…

C++ タスクシステム⑥ ~管理に詰まる~

あいさつ 困っていること 今のところ考えている解決策 テンプレートをやめる スレッドを使う あとがき あいさつ どうも、はかせです。 今回はコルーチンの管理に詰まって困っている話です。 困っていること ①テンプレート伝搬 私はコルーチンの管理を下図の…

C++ タスクシステム⑤ ~エラー&エラー~

あいさつ いざ本プロジェクトへ コンパイラオプション 使う前に簡単にデリゲートを 合わせてみよう このエラーはなんだ? エラー原因 あとがき あいさつ どうも、はかせです。 前回ハッカソン話をして英気を養ったので今回からは また開発やっていきますよ。…

C++ タスクシステム④ ~非同期コルーチン~

あいさつ Coroutine traits Awaiter await_ready() await_suspend() await_resume() await_transform() 実行結果 あとがき 参考 あいさつ どうも、はかせです。 今回はコルーチンの非同期版を作ってみたいと思います。 Coroutine traits 前回も紹介したコル…

C++ タスクシステム③ ~コルーチン~

あいさつ Corutine traits promise_type get_return_object() initial_suspend(),final_suspend() yield_value, return_value coroutine_handle コンストラクタ プラスアルファ あとがき 参考 あいさつ どうも、はかせです。 今回はコルーチンの続きです。 …

C++ タスクシステム② ~コルーチン~

あいさつ コルーチンとは 実装方法 std::experimental::generatorを使う あとがき 参考 あいさつ どうも、はかせです。 タスクシステム開発2日目です。 今日はコルーチンの勉強です。 コルーチンとは 処理の中断と再開が出来るメソッドです。 これを使えばタ…

C++ タスクシステム①

あいさつ タスクシステム 設計 実装 あとがき あいさつ どうも、はかせです。 今回からちょっと本プロジェクトから離れて タスクシステムの開発を行っていきたいと思います。 (もちろん一定値出来たら本プロジェクトにコミットしますよ) タスクシステム ゲー…

DirectX ボム実装④

あいさつ 進捗 実装方法 あとがき あいさつ どうも、はかせです。 今日も今日とて体調は優れません。 相変わらず体がだるいですし頭が回ってない気がします。ただもうこの状態になって約一週間。 さすがに慣れました。 そして慣れて多少どうにかなるというこ…

DirectX ボム実装③

あいさつ 進捗 あとがき あいさつ どうも、はかせです。 相変わらず体調が微妙です。 良くもなく悪くもなく・・・どっちかにしてください。 今日はボム実装の続きです。 進捗 今日なんか異様にだるくてダウンしてましたorzそれでもなんとかやってたのですが…

DirectX ボム実装②

あいさつ なんの設計? 何が問題なの? どういう風に解決するの? あとがき あいさつ どうも、はかせです。 なんかわからないんですが、体調がすこぶる悪いです。 熱とかはないんでインフルではないと思ってます。 最近寒暖差が激しかったりとかで体調が崩れ…

DirectX ボム実装①

あいさつ 実装したこと 実装方法 あとがき あいさつ どうも、はかせです。 今回から弾幕シューティングとはいえばのボムの実装をしたいと思います。今回はボムとしての必要最低限の実装が出来ました。 実装したこと ・Xキーを押してボムを使用 ・敵の弾の消…

C++ フォルダ配下のファイル一括読み込み②

あいさつ 対してすることもなかった・・・ ちょっと起こったこと あとがき あいさつ どうも、はかせです。 一気に冷え込みましたね。 私はいつにも増して凍えております。 今回は前回作った機構を本プロジェクトに入れてみようと思います。 対してすることも…

C++ フォルダ配下のファイルの一括読み込み①

あいさつ 使用API 実装 あとがき 参考 あいさつ どうも、はかせです。 最近ゲームで取り扱うファイルが増えてきて管理が大変になってきました。 なのでフォルダから一括読み込みをしたいと思います。 今回はフォルダ配下のファイルパスの取得までやります。 …

DirectX シューティングゲーム開発続行決定

あいさつ 続行理由 今後の方針 あとがき あいさつ どうも、はかせです。 12月頭ぐらいの記事で今後どうするか考えます~ って言っていた弾幕シューティングの開発を続行することにしました。 今回は理由と方針について書きます。 続行理由 クオリティが低す…

DirectX C++の文字列

あいさつ C++文字 C++文字列 LPとかCとか あとがき あいさつ どうも、はかせです。 今回はしばらくぶりのC++です。ここ数日あーでもない、こーでもないと 悪戦苦闘していたのでまとめておこうと思います。 C++文字 C++には文字を扱う型が3種類あります。(多…

DirectX リフレッシュレートとFPS ~実装編~

あいさつ FPS固定方法 Sleepを使う Timer割り込みを使う Vsyncを使う 解決方法 あとがき あいさつ 12月に入りなぜか気温が上がりましたね。 ただなにやらちょっとしたら一気に冬が来るらしいので コタツが欲しいはかせです。 今回はFPS固定の実装です。 FPS…

DirectX リフレッシュレートとFPS ~理屈偏~

あいさつ リフレッシュレート FPS 違いは? 画面 フレーム なんでこんな話を? あとがき あいさつ どうも、はかせです。 今回はリフレッシュレートとFPSについてです。 リフレッシュレート 1秒間に何回画面が切り替わるかの値です。 60Hzなら60回、120Hzなら…

DirectX データ読み込み実装

あいさつ やることのおさらい 実装 あとがき あいさつ 前回やるやる詐欺をしてしまったはかせです。 今回はちゃんとやります。 やることのおさらい この記事でデータの読み方がわかりました。 hakase0274.hatenablog.com今回はこれでやったことを私のシュー…

DirectX データ読み込み

あいさつ なぜデータ読み込み? データ読み込み実装 ソースコード あとがき あいさつ 11月最終日、皆様いかがお過ごしでしょうか。 私はいつも通り開発しております。はかせです。 今回はCSVデータを読み込んでみたです。 なぜデータ読み込み? ゲームは大量…