ゲーム作りは楽しい

なんか書く

2024-01-01から1年間の記事一覧

【備忘録】EditorGUI リンクタグクリック時の処理

EditorGUI.hyperLinkClicked EditorGUI-hyperLinkClicked - Unity スクリプトリファレンス <a>タグで囲ったテキストのクリック時の処理を登録できる。 なお、hrefはデフォルト登録されているので実装は不要。 対応しているレイアウト EditorGUILayout.TextField</a>…

もう10年プログラミングやってるのに、キャリッジリターンを知らなかった

改行コードでLFとかCRLFとか嫌と言うほど見てきたけど 雰囲気でやってるから… だって、使ったことなかったんだもん #include <iostream> #include <chrono> #include <thread> int main() { int total = 100; for (int i = 0; i <= total; ++i) { if (i > 0) { std::cout << "\033[F"; </thread></chrono></iostream>…

ブレゼンハムのアルゴリズムもgeneratorで実装すると楽だ

Bresenham's Line Algorithm ペイントソフトの直線ツールみたいな、ドットの直線をかくようなアルゴリズムがある ja.wikipedia.org こういうのもgeneratorだと書きやすいな 実装例 #include <Siv3D.hpp> #include <experimental/generator> template<class T> using generator = std::experimental::gener</class></experimental/generator></siv3d.hpp>…

【備忘録】ペイントソフトってデフォルトの合成どうなってるんだろ

備忘録です float alphaSrc = srcColor.a; float alphaDst = dstColor.a; float a= alphaSrc + alphaDst * (1 - alphaSrc); float r = (srcColor.r * alphaSrc + dstColor.r * alphaDst * (1 - alphaSrc )) / a; float g = (srcColor.g * alphaSrc + dstColo…

ニアイコールを書くのが面倒くさかったから作ったクラス

はじめに 浮動小数点数型を使っていると、ニアイコールの判定をしたいことが多いですが、それを書くのが面倒くさかったので ラッパークラスを作りました。 普通はこういう関数とか作っちゃえば十分なんだけどね if (NearlyEquals(a, b, epsilon)) { // Somet…

constexprで評価できるかどうか判定するメタ関数

はじめに C++23やC++26で多くの関数がconstexpr対応しましたが、 コンパイラが対応済みかは話が別… そこでこの関数はconstexpr評価できるかどうかを調べるメタ関数が作れそうか調べておりました。 メタ関数 #include <type_traits> template<auto Lambda> struct is_constexpr { privat</auto></type_traits>…

【Git】コンフリクトしたら conflict 歌いたかった

はじめに git merge で コンフリクトしたら conflict歌いたくないですか? 色々調べているのですが、たぶんコンフリクトにフックする方法はないので 仕方ないから、コンフリクト後のコミット時にフックで妥協します。 ↑いい方法があったら教えてください。 G…

【C++】コンパイル時 1+1は?みそスープ

1+1がみそスープであることは、コンパイル時にも計算できます。 #include <string_view> consteval bool operator ==(int i , std::string_view str) { return i == 2 && str == "みそスープ"; } consteval bool operator !=(int i , std::string_view str) { return !(i </string_view>…

呼ばれるたびにGet Wildが流れ出すゲッター

こんなゲッターは嫌だ // 男 class Man { public: Man(float height, float weight, int32 wild) : m_height(height) , m_weight(weight) , m_wild(wild) {} // 身長取得 [[nodiscard]] float getHeight() const { return m_height; } // 体重取得 [[nodisca…

ジョンネイピアに感謝しながら相乗平均を計算した

ちょっと相乗平均(幾何平均)を求める必要があったのだが 最初は脳死で定義通りのプログラムを書いた ※例のコードでは空配列の考慮は省略 template<class R> double GeometricMean(const R& ar) { double product = 1; for (const auto& v : ar) { product *= v; } ret</class>…

どっかでみたようなローディングのサークル

# include <Siv3D.hpp> void Main() { Window::Resize({ 300, 300 }); const Vec2 center = Scene::CenterF(); while (System::Update()) { constexpr Duration periodSec = 2s; const double rotateRate = s3d::Periodic::Sawtooth0_1(periodSec * 0.75); const double</siv3d.hpp>…