JavaScriptのオブジェクトとは
JavaScriptでは、文字列、数値、配列、関数などすべてがオブジェクトとして扱われます。オブジェクトは、プロパティ(属性)とメソッド(関数)を持つ特殊なデータ型です。さらに、開発者は独自のオブジェクトを定義・生成することも可能です。
プロパティへのアクセス
プロパティはオブジェクトに紐付けられた値です。ドット記法を使用してアクセスできます。
objectName.propertyName
例:
let text = "Welcome to JS";
let length = text.length;
この場合、length の値は 15 になります。
メソッドの呼び出し
メソッドはオブジェクトに対して実行可能な処理です。以下の構文で呼び出します。
objectName.methodName()
例:
let text = "javascript";
let upperText = text.toUpperCase();
結果として、upperText には "JAVASCRIPT" が代入されます。
カスタムオブジェクトの作成方法
JavaScriptでは自作オブジェクトを作成できます。主に以下の2つのアプローチがあります。
リテラル表記によるオブジェクト生成
最もシンプルな方法です。波括弧を使ってキーと値のペアを定義します。
let user = {
name: 'Taro',
level: 5,
health: 100,
isActive: true,
introduce: function() {
console.log(`I'm ${this.name}, level ${this.level}`);
}
};
console.log(user.name); // 出力: Taro
user.introduce(); // 出力: I'm Taro, level 5
コンストラクタ関数によるオブジェクト定義
関数を利用してテンプレート化されたオブジェクトを作成できます。
function Character(name, job, strength, mana) {
this.name = name;
this.job = job;
this.strength = strength;
this.mana = mana;
this.attack = function() {
return `${this.name} attacks with power ${this.strength}!`;
};
}
// インスタンスの生成
let hero = new Character('Luna', 'Warrior', 80, 30);
console.log(hero.attack()); // 出力: Luna attacks with power 80!
オブジェクトの参照渡しとミュータビリティ
JavaScriptのオブジェクトは可変であり、代入時に実体ではなく参照が渡されます。そのため、一方の変数での変更が他方にも影響します。
let player = { id: 1, score: 200, alive: true };
let tempRef = player;
tempRef.score = 500;
console.log(player.score); // 出力: 500
上記のように、tempRef を通じた変更が元の player オブジェクトにも反映されます。
シンプルなブラウザゲームの開発手順
JavaScriptを用いたミニゲーム制作の一般的な流れを紹介します。
1. ゲーム設計
まず、どのようなジャンルのゲームを作るかを決定します。たとえばパズル、RPG、クリック型ゲージ管理など。それに応じて必要な要素を洗い出します。
2. 機能のリストアップ
実装すべき主要機能を明確にします。例:
- UIの表示制御(HTML/CSS連携)
- スキルや行動選択のロジック
- イベント発生の条件分岐システム
- キャラクターのステータス管理(HP、レベルなど)
- localStorageを使ったセーブ・ロード機能
3. リソースの準備
必要に応じてアイコン、ボタン画像、背景などのアートリソースを収集または作成します。フリー素材サイトを利用すると効率的です。
4. 実装とテスト
コードを段階的に書いていき、その都度動作確認を行います。特にオブジェクト指向の考え方を活かして、キャラクターやアイテムをクラス(またはコンストラクタ)で管理すると拡張性が高まります。
5. バグ修正と最適化
予期しない動作やエラーを見つけ次第、即座に対応します。ブラウザの開発者ツール(ConsoleやDebugger)を活用しましょう。