ハブ用に長い間書かれていませんでしたが、今日は誰かが同様のことをしたいので質問がある場合に備えて、バウンスゲームの最も単純なレベルの仕組みを整理する方法を推測したいと思います。 特別なイントロは必要ないと思うので、始めましょう!

順番に始めましょう。 不要なものをすべてペイントするのではなく、特定の瞬間にコメントするコードを単純に調べます。
1つ目は、メインの実行可能ファイルであるindex.htmlです。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width,user-scalable=no"/> <title>Bounce</title> </head> <body> <script type="text/javascript" src="point.js"></script> <script type="text/javascript" src="init.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript" src="game.js"></script> <script type="text/javascript"> game.startLoop('menu'); </script> </body> </html>
→
githubで見るここでは、すべてが明確だと思います。ページフレームを作成し、いくつかのJavaScriptファイルを接続しました。
- point.js-PointJSエンジン
- init.js-すべての初期化+すべてのグローバル変数
- menu.js-PointJSのプラグイン-メニュー
- game.js-ゲームの仕組みを説明するファイル
init.jsファイルを検討してください。
→
githubで見るこれでコードが判明しましたが、これで十分です。
ここで、ゲームのメニューを作成する必要があります。「メニュー」サイクルからゲームを開始するため、これに必要なものはすべて、接続したmenu.jsファイルにあります。対応するゲームサイクルを開始するだけです。同じmenu.jsファイル、次を追加するだけです:
game.newLoopFromClassObject('menu', new Menu(pjs, { name : 'Bounce',
→
githubでmenu.jsファイル全体を見る実行すると、起動されたメニューが表示されます。

今最も難しいのはゲームプレイです。 ここではすべてが非常に単純ですが、完全ではありません。 コードをブロックに分割します。
最初に行う必要があるのは、ゲームループの宣言です。 独自のスコープを持つ独立したオブジェクトとして使用し、グローバルにする必要がないため(ゲームの状態データは他のゲームサイクルでは表示されません)、単純な構造を使用します。
game.newLoopFromConstructor('game', function () { });
ここで、ゲームループの名前とコンストラクターを設定できます。
それでは、コンストラクターの内部に移動して、内部のレベルのロジック(メカニクス)を記述しましょう。 現在、必要なループイベントは、updateのみです。 私たちは彼と一緒に仕事をします。
game.newLoopFromConstructor('game', function () {
→
githubでファイルを見るさて、実行してゲームに入ると、次のように表示されます。

したがって、ゲームの単純なメカニズムを構築し、新しい要素を追加することはそれほど難しくなく、処理に合わせるのも同様です。
物理アルゴリズム自体を変更したり、係数を変更したりして、衝突フィールドを狭めたり広げたりすることができます。 また、キャラクターの速度を基本として、動的にすることもできます。
→
githubでBounceプロジェクトのソースコードを表示する→
実例を実行する20分のゲームの物理アルゴリズムを開発するビデオゲーム物理学
新しいオブジェクトを使用したゲームの追加: