オブジェクトは GameMaker:Studio で最も重要なリソースです。

このエントリーをはてなブックマークに追加


    GameMakerStudio_create_resources_icons_progress_object

スプライトはオブジェクトが用いる外観であり、オブジェクトが無ければただ作っただけのスプライトでは表示することが出来ません。

スプライトフォントも作っただけでは使えません。イベントアクションからフォントを指定する必要があって、やっぱりオブジェクトが必要になります。

ではオブジェクトとは何なのか

プログラム言語でオブジェクトの概念使ってプログラムする人はレベル的に中級以上かららしいので、言語的な知識とか経験が初級以下の人だとオブジェクトを言葉や定義だけで簡単に理解するのはまだ難しいかもしれません。

特にオブジェクトインスタンスの違いは実際に経験しないと理解しづらい。

GMS のオブジェクトとインスタンスをそれぞれ一言で表現するのなら、

  • オブジェクトタイプ/type)です。
  • インスタンス実体データ/Data)です。

オブジェクトは設計図なので実体は持たず、オブジェクト(設計図/クラス型)を元にしてインスタンスが作られます。

インスタンスのことを便宜上オブジェクトと呼んでる場合もありますが、インスタンスとはオブジェクトを元に作られた(実体/データ)のこと。

「実体というからにはどこかに存在してるんだろ?」という疑問に対しては、コンピュータ上のメモリにデータとして存在してます、と答えられます。だからインスタンスをたくさん作れば作るほどメモリをモリモリ消費する。

今回参考にした YoYoGames のドキュメントでも語られていますが、普段ルームに配置して視覚的に確認できるのがオブジェクトを元に作られたインスタンス( copies or clones )です。

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

次のページへ

“超”初心者用チュートリアル:記事一覧

Leave a Reply

Your email address will not be published. Required fields are marked *