GameMaker:Studio 2
はじめに staticとは 関数内のローカル変数の場合 関数内のstatic変数の場合 コンストラクタでのstatic メンバ変数でのstatic コンストラクタでのstatic変数の使い方 メンバ関数でのstatic メンバ関数でのstaticの使い方 メンバ関数にstaticをつけるメリット…
はじめに C++のビルド環境について VisualStudio2022のインストール Dllプロジェクトの作成 C++で関数を実装する GML関数公開用ファイル作成 ヘッダーファイルに関数を宣言する 公開用のマクロ宣言 使用できる型 サンプル関数を宣言 ソースファイルに関数を…
はじめに 概要 導入方法 セットアップ 機能紹介 カメラ操作 カメラ追従 オブジェクトデバッグメニュー 情報を見る カメラに追従させる オブジェクトを破棄する 複数選択 その他の機能 注意点 まとめ はじめに どうも、最近GameMakerのC++拡張機能に初めて触…
はじめに 変数をコピーする関数 variable_clone 引数 戻り値 variable_cloneを使った例 多次元配列の場合 多次元配列の例 構造体の場合 コンストラクターの場合 コンストラクタの継承 構造体と配列が混ざっている場合 構造体、コンストラクタの中に配列があ…
はじめに 既に生成済みのテキストを変更する関数 layer_text_text layer_text_textを使ったサンプル まとめ はじめに UIレイヤーでよく使う要素として、テキストがあると思います。 これ UI上のテキストってテキストが固定であることもありますけど、 だいた…
はじめに 原因 原因の推測 解決法 解決法1: コピーは1回だけに済ませ、親の構造体から子の値を変更する 解決法2: 一旦複製してしまい、直接値の変更を行う まとめ はじめに GameMakerのUIレイヤーを使ってFlexPanelをコピーした時、 何故か正しく値の変更が…
はじめに 1. テンプレートのFlexPanelを構造体として取得する 2. 変更が必要なLayerElementを取得する 3. 配置先のFlexPanelを取得する 4. アイテムを複製して配置する 4.1 複製前にElementへの設定を行う 4.2 複製する 4.3 複製したFlexPanelを配置する 4.4…
はじめに アイテムUIレイヤーを作る コンテナを作る アイテムを入れるグリッドを作る アイテムUIのテンプレートを作る テンプレート用のUIレイヤーを作る アイテムUIを作る スプライトを設定 テキストの設定 アイテムUIを複製する オブジェクト実装 オブジェ…
はじめに メニューUIを作ろう Prefabを使って必要なリソースをダウンロード Prefabとは? Package Managerとの連携 UI Panels をダウンロード User Interface のダウンロード メニューUIの作成 レイヤーの作成 UI Panels Prefabからスプライトをインポート …
はじめに デフォルト引数 可変長引数 argument_count と argument配列について static変数の扱い static 変数の基本 constructorでの関数宣言 constructor 内での関数の定義 メソッドチェーン メソッドチェーンの基本 オーバーロードの擬似的な実装 オーバー…
はじめに 関数とは? 関数の作成 スクリプト関数(推奨) メソッド変数 ローカル変数の宣言 引数の扱い 戻り値のある関数 オブジェクトインスタンス内での function の定義と使い方 関数の定義方法 外部からの関数呼び出し インスタンスIDを取得して関数を呼…
はじめに FlexPanelとは? FlexPanelの親子関係について 親子関係の仕様 どんな時に役立つのか FlexPanelのPropertis Size Min Size Max Size Grow Shrink Clip Contents Position RelativeとAbsoluteの違い RelativeとStaticの違い Align Self Offset Flex …
はじめに UIレイヤーとは UI レイヤーの使い方 UI レイヤーの作成 スプライトの配置 Nine Sliceの設定 テキストの配置 オブジェクトインスタンスの配置 FlexPanel の使い方 FlexPanel とは? ボタンUIを作ってみる ボタンオブジェクトの作成 ボタンオブジェ…
はじめに GameMakerのメモリ解放について Garbage Collectionについて 明示的にメモリを解放する方法 強参照と弱参照 強参照とは 冒頭で起こった問題の解説 弱参照とは 冒頭の問題の解決方法 強参照を弱参照で受け取る方法 弱参照の挙動 冒頭の問題を解決す…
はじめに 構造体のテンプレート化 1. Vector2をコンストラクタで定義 2. Colorをコンストラクタで定義 共通機能の実装 シェーダーを使う際の例 コンストラクタを使ったシェーダー使用のコード コンストラクタを拡張する functionを使っていた場合の例 コンス…
はじめに コンストラクタとは 構造体の場合 コンストラクタの場合 コンストラクタの基本 宣言方法 メンバ変数へのアクセス 関数の宣言 staticってなんでつけるの? 継承(Inheritance) 継承とは 継承の実装 ポリモーフィズム(Polymorphism) おまけ: オブ…
はじめに exception_unhandled_handler とは? exception_unhandled_handler の使い方例 特定のオブジェクトの情報を出力する エラーメッセージをテキストファイルに保存する ファイルの保存先 特定のフォルダに保存する場合 エラー発生時の画面のスクリーン…
はじめに 構造体(Struct)とは 構造体のデータへのアクセス メンバ変数へのアクセス メンバ変数の変更方法 後から変数を追加する方法 構造体の代入、コピー 構造体を使うメリットデメリット メリット デメリット 構造体を使うと良い例 1. 関連するデータをま…
はじめに シェーダーでUVを使用する際の問題点 GameMakerのテクスチャページの仕様 Separate Texture Page を使った方法 メリット デメリット texture_get_uvs を使った方法 メリット デメリット texture_get_uvsを用いたコード シェーダー側 GML側 実践 ま…
はじめに array_create の動作 数値の配列を作成する場合 多次元配列を作成する場合 array_createを構造体で使用する場合 解決策 forループを使用した初期化 array_create_ext を使って初期化式を指定する array_create_extとは array_create_extを使ったサ…
はじめに 参照渡しだと困るパターン 配列を呼び出し元に影響を及ぼしたくない場合 array_copyを使った例 array_copyと構造体を複合した場合 なぜこのような結果になるのか 値型の配列の場合のコピー処理 参照型の配列の場合のコピー処理 二次元配列の場合 解…
はじめに 値渡しと参照渡しの基本 値渡しとは 参照渡しとは 値渡しと参照渡しとは 参照渡しの細かい仕様について 関数の引数としての参照渡し 参照の上書き コンストラクタ構造体の参照 参照渡しされた引数への代入 [余談]参照渡しと参照値の値渡し まとめ …
はじめに サンプルプロジェクト サンプル1. マウスで描いた形を三角形に分割する サンプル2. ランダムに配置した頂点から多角形を作って三角形に分割する サンプル3. マウスで描いた形でオブジェクトを切る 記事の紹介 Ear Clipping Algorithmについて 多角…
はじめに 現状の問題 解決方法 三角形をキャッシュするときにさらに条件をつける つまりどういうことか? 三角形ABHの場合 三角形DEHの場合 内角が180°を超えているかの確認方法 条件の更新 手法の流れの解説 1. 再度多角形ABCDEFGHについて考える 2. 三角形…
はじめに 現状の問題 解決方法 三角形をキャッシュするときに条件をつける フローチャートの更新 手法の流れの解説 1. 多角形ABCDEFを用意する 2. 頂点Aから開始するので三角形ABFについて考える 3. 三角形ABFは頂点Dを含んでいるのでキャッシュしない 4. 頂…
はじめに 多角形を描画するための関数 サンプルコード なぜ三角形なのか? 多角形を三角形に分割する方法 Ear Clipping Algorithmの手順 Ear Clipping Algorithmの手法 1.左回りに頂点を持つ図形を用意します。 なぜ左回りなのか? 2.まずは頂点Aについて考…
はじめに SSaveとは SSaveを用いたセーブデータ管理の実装 1. SSaveを継承したクラスの定義 2. データの保存と取得方法 データの保存 Save処理 全体の流れ 3. データの取得 Load処理 データ保護レベルの設定 各保護レベルの解説 1. SSAVE_PROTECTION.NONE 2.…
はじめに 初期化 基本処理 イージングタイプ指定 ループ指定 アニメーションの結合 同時にアニメーションさせる:Join関数 待機処理を行う:Wait関数 コールバック関数を実行する:CallFunction関数 全体のシーケンスをループさせる:SetUpdateType関数 その他の…
はじめに 線形補間とは? x座標を線形補間する** Createイベント Stepイベント イージングとは? イージングのコードサンプル Ease In Sineのサンプル Ease In Sine関数 Createイベント Stepイベント Ease Out Bounceのサンプル Ease Out Bounce関数 Create…
1. はじめに 2. 準備 スプライトの作成 タイルセットの作成 タグの設定(重要) 3. オブジェクトとコード タイル管理オブジェクトのコード プレイヤーのコード 4. 実践 5. 複数のタイルとレイヤーで行う 6. オブジェクトとの比較 タイルセットを使うメリット …