オブジェクトは GameMaker:Studio で最も重要なリソースです。
スプライトはオブジェクトが用いる外観であり、オブジェクトが無ければただ作っただけのスプライトでは表示することが出来ません。
スプライトフォントも作っただけでは使えません。イベント>アクションからフォントを指定する必要があって、やっぱりオブジェクトが必要になります。
ではオブジェクトとは何なのか
プログラム言語でオブジェクトの概念使ってプログラムする人はレベル的に中級以上かららしいので、言語的な知識とか経験が初級以下の人だとオブジェクトを言葉や定義だけで簡単に理解するのはまだ難しいかもしれません。
特にオブジェクトとインスタンスの違いは実際に経験しないと理解しづらい。
GMS のオブジェクトとインスタンスをそれぞれ一言で表現するのなら、
オブジェクトは型(タイプ/type)です。
インスタンスは実体(データ/Data)です。
オブジェクトは設計図なので実体は持たず、オブジェクト(設計図/クラス型)を元にしてインスタンスが作られます。
インスタンスのことを便宜上オブジェクトと呼んでる場合もありますが、インスタンスとはオブジェクトを元に作られた(実体/データ)のこと。
「実体というからにはどこかに存在してるんだろ?」という疑問に対しては、コンピュータ上のメモリにデータとして存在してます、と答えられます。だからインスタンスをたくさん作れば作るほどメモリをモリモリ消費する。
今回参考にした YoYoGames のドキュメントでも語られていますが、普段ルームに配置して視覚的に確認できるのがオブジェクトを元に作られたインスタンス( copies or clones )です。
以下引用:Defining Objects よりNow, I say “based on” because you don’t actually place objects directly into the game rooms, but rather you place instances of these objects which are basically copies (or clones if you prefer) of the object resource.
一言メモこの場で語られているのはあくまでも GMS におけるオブジェクトとインスタンスの説明だという点にご注意ください。 各開発言語によってオブジェクトの概念とか説明は違います。 独習する場合オブジェクトやインスタンスをキーワードに検索しても、クラスベースとプロトタイプベースで概念が違うため逆に混乱します。GMS はクラスベース寄りです。 クラスベースの C++ や Java ではクラスが型、メモリ上に確保された実体をオブジェクトもしくはクラスのインスタンスと説明されます。 プロトタイプベース の JavaScript では定義済みもしくはコンストラクタ関数かオブジェクト初期化子でオブジェクトを定義し、全てのオブジェクト=「もの」がインスタンスとして扱えます。参考URL:ウィキブックス / JavaScript-Object参考URL:MDN : Working with Objects
- 買った直後・スタートアップ画面とライセンス認証など
- ライセンス認証後、環境にまつわる設定を変更
- コードエディタの設定、予測変換の反応速度など
- プロジェクトの新規作成、文字と画像を表示してみる
