jsbreakouts.orgの全体的なデザインに従って、Phaserを学ぶのに役立つブレークアウトクローンの再作成に取り組んでいます。とにかく、私は開始画面を設定しました。スタート画面からは問題なくゲーム状態に移行できます。私のゲーム状態では、バックグラウンドとパドルを問題なくロードできます。パドルは、想定されているようにマウス入力に応答します。Phaserを使用してスプライトシートからスプライトをロードするとき
しかし、ボールは何らかの理由でロードされません。ボールはスプライトシートから来ています。シートの各ボールは16x16で、そのうち5枚があります。私はそれらのうちの1つにアニメーションを付けることはできませんが、ロードすることさえできません。
ボールスプライトシートは、パドルと同じディレクトリにあります。私は他のコードをオンラインで見てきました。私が知る限り、正しいことをしています。しかし、それは動作していません。
私は間違っていますか?ここで
は私のゲームの状態コードです:
var paddle;
var ball;
var Game = {
preload : function() {
// Here we load all the needed resources for the level.
game.load.image('background', './assets/bg_prerendered.png');
game.load.image('paddle', './assets/paddle2.png');
game.load.spritesheet('ballsheet', './assets/balls.png', 16, 16, 5);
game.load.spritesheet('tiles', './assets/tile_spritesheet.png', 32, 16);
},
create : function() {
//enable physics
game.physics.startSystem(Phaser.Physics.ARCADE);
game.physics.arcade.checkCollision.down = false;
//add the background
background = game.add.sprite(0, 0, 'background');
//add score text placeholder
game.add.text(50, 390, "Lives: 3 Score: 700 Level: 1", { font: "12px sans-serif", fill: "#000000"});
//add the paddle and set it up
paddle = game.add.sprite(136, 384, 'paddle');
//set the anchor to be the lower center of the paddle
paddle.anchor.set(0.5,1);
//enable paddle physics
game.physics.enable(paddle, Phaser.Physics.Arcade);
paddle.body.immovable = true;
paddle.body.collideWorldBounds = true;
ball = game.add.sprite(100,100, 'ballsheet');
ball.frame = 0;
//ball.animations.add('rotate',[0,1,2,3,4], 10, true);
//game.physics.enable(ball, Phaser.Physics.Arcade);
//ball.body.collideWorldBounds = true;
//ball.play('rotate');
},
update: function() {
paddle.x = game.input.x;
},
};
フェイザーについて多くを知らないが、私はあなたがボールにアンカーを設定didntは気づいていますが、パドルをしました。 Spritesheetの間隔のphaserを使用したときに問題が発生したので、Spritesの間にスペースを入れようとしましたが、Spritesは何も私のようには見えませんでした。私は脚の一部を見てそこから行ったところまで、サイズと間隔を練習しなければなりませんでした – Ian
@イアンアンカーはちょうど(デフォルトの左上に)設定する必要があるので重要ではありません。私はちょうどそれが問題ではないことを確認するためにそれをテストした。スプライトシートについてのあなたのヒントは面白いです。それが違いを生むとは想像もしませんが、私はそれを調べます。ありがとう。 –
スプライトのフレームを設定するときに 'game.add.sprite(100,100、 'ballsheet'、0)'というフレームを設定することもできますが、後でフレームを設定することもできます。私はあなたのコードに間違ったことは何も見えません。 JavaScriptコンソールにエラーメッセージはありますか? – BdR