試して試して試してみると、もう少しJavaScriptを理解し始めているように感じます。だから、今、私は単純な2Dプラットフォームゲーム(スーパーマリオワールドやソニックザヘッジホッグ)を書く際に手を入れたいと思っています。このために、私はEaselJSライブラリを採用しています。HTML5 Canvas:EaselJSの矢印キーを使用した移動/パンニングの世界
左矢印キーと右矢印キーを使用してキャンバス内で「世界」をどのように移動/パンすることができるかを調べようとしています。私はどのように矢印キーのの上で機能を実行することができます知っているが、私はあまりにも私が移動/パンにアプローチする必要はありません。
キーが押されたとき、私はキャンバス内の一つ一つの位置/座標を調整する必要がありますか? あるいは、すべてをコンテナに入れ、コンテナの位置/座標を移動する必要がありますか?
私は正しい方向に私を振りかざす何かを感謝します。 Tyvm :)
答え The chosen answer belowで更新は、私は確かに私はそのコンテナの位置を設定できるように、containerですべてを入れていたことを確認しました。これは私が作成したコードであり、動作します。
// Canvas
var stage = new createjs.Stage('game');
createjs.Ticker.addEventListener('tick', tick);
function tick(event) {
stage.update();
}
// Cave
var cave = new createjs.Bitmap('img/cave.png');
cave.x = cave.y = 0;
// World
// Pans World if the left or right arrow keys are pressed
var world = new createjs.Container();
world.x = 0;
world.y = 0;
world.addChild(cave);
stage.addChild(world);
$(window).keydown(function(e){
switch (e.which || e.keyCode){
case 39: // right arrow key
world.regX += 10;
break;
case 37: // left arrow key
world.regX -= 10;
break;
}
});
私はworld.x
などworld.regX
を更新しようとしました。どういうわけか、world.regX
はよりスムーズになるようです。
今私は非常にばかげているように聞こえますが、scrollableObjectContainerは何ですか?私はそれをEaselJS APIまたはGoogleで見つけることができませんでした。 – AKG
ちょうどコンテナ、私はそれのように名前を付けました。 – rpg600
トゥイーンを追加するにはどうすればいいですか?私は 'createjs.Tween.get(world).to({regX:world.regX + 10}、100)のさまざまなバリエーションを試していますが、理解しやすいように、これは遅くなることがあります(典型的なkeydownは単一のヒットではなく複数の秒) – AKG