JavaScriptでゲーム制作③ ~プレイヤーキャラを作る~
JavaScriptでゲーム制作② ~ゲーム画面を作る~でゲーム画面ができました。
次はプレイヤーキャラを作ります。
■プレイヤーキャラ
①でお伝えした通り、今回はカゴを動かしてリンゴを取るゲームです。
プレイヤーキャラはカゴです。
上の画像を右クリックして[名前を付けて画像を保存...]を選択、basket.pngという名前でデスクトップに保存します。
"<script></script>"に下記のプログラムを追加します。
//かご
const basket = PIXI.Sprite.from('basket.png');//画像
basket.width = 64;//幅
basket.height = 34;//高さ
basket.x = 96;//x座標
basket.y = app.view.height - basket.height;//y座標
basket.anchor.set(0.5);//中心点。0が左端、0.5が中央、1が右端
app.stage.addChild(basket);
basketという入れ物(変数)にカゴの画像basket.pngを入れます。PIXI.Sprite.from()で画像を入れることができます。
幅と高さに画像の幅、高さを設定します。
x座標は96と固定にします。y座標はゲーム背景の高さからカゴの高さを引いた位置にします。
basket.anchorとは画像の中心点のことで0が左端、0.5が中央、1が右端を表します。
今回は0.5(中央)にします。
最後にapp.stageに追加します。stageとはプレイヤーキャラなどを配置する舞台のことです。
■プレイヤーキャラの表示を確認する
それではブラウザでプレイヤーキャラを確認してみましょう。
index.htmlをChromeブラウザにドラッグアンドドロップします。
そうすると背景だけでプレイヤーキャラが表示されないと思います。
最近のブラウザは自分のPCの画像を表示することを禁止しています。セキュリティに危険があるためなのですが、これではゲームを確認できないので下記のやり方で表示させます。
1.デスクトップを右クリック⇒[新規作成(X)]⇒[ショートカット(S)]を作成する
2.リンク先に下記を設定。※<ユーザー名>には自分のユーザー名を入力してください。
[次へ]ボタンをクリック。
"C:\Program Files\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files file:///C:\Users\<ユーザー名>\Desktop\index.html
3.ショートカット名を入力して[完了]ボタンをクリック
これでショートカットが出来上がります。
ショートカットをダブルクリックすると、プレイヤーキャラが表示されます。
■プレイヤーの動き
次にプレイヤーキャラを操作できるようにしましょう。
プレイヤーは下図にあるように4つの位置を移動するように作ります。
"<script></script>"に下記のプログラムを追加します。
//カゴの操作
document.addEventListener('keydown',
function (key){
// 左キー
if (key.keyCode === 65 || key.keyCode === 37) {
if ( (basket.position.x - ( basket.width / 2 )) > 96) {
basket.position.x -= 96;
}
}
// 右キー
if (key.keyCode === 68 || key.keyCode === 39) {
if ( (basket.position.x + ( basket.width / 2 )) < 384 ) {
basket.position.x += 96;
}
}
}
);
・document.addEventListenerは何か入力されたり、内容が変化したりなど”イベント”が
発生した時の動きを設定するものです。'keydown'はキー入力を表します。
・function (key){}でキー入力の制御内容を記述します。keyは入力されたキーの情報です。
PCおよびテンキーの左キーはそれぞれ65と37という値がkeyCodeに入ってきます。
その値の時にプレイヤーのx軸を左に動かします。
ただし①がx:96なのでそれ以下の値は操作できないようにします。
それが"if ( (basket.position.x - ( basket.width / 2 )) > 96)"の部分です。
・PCおよびテンキーの右キーはそれぞれ68と39という値がkeyCodeに入ってきます。
その値の時にプレイヤーのx軸を右に動かします。
ただし④を超えた右には操作できないようにします。
それが"if ( (basket.position.x + ( basket.width / 2 )) < 384 )"の部分です。
それでは、ブラウザで確認してみましょう。左右に移動できるようになっていると思います。
これでプレイヤーキャラを作成できました。
次はプレイヤーのカゴがキャッチするリンゴの動作を作成します。
Discussion