オブジェクトは 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
- 買った直後・スタートアップ画面とライセンス認証など
- ライセンス認証後、環境にまつわる設定を変更
- コードエディタの設定、予測変換の反応速度など
- プロジェクトの新規作成、文字と画像を表示してみる