このゲームのライティングの難易度は以前よりもはるかに高くなります。今回はjs継承とデザインパターンのファクトリーパターンを使用しましたが、これも画期的です。 。 。
ゲームの一般的なデザインのアイデア:
1. プレーヤーのタイプ プレーヤー: 左右および上下に移動できる小さな人。
基本的な方法: {
左右に移動: キーボードを左右に動かすだけです。
下方向の動き: 下方向の加速度の動きに属し、それぞれの動きに重力加速度の値が追加されます。
上に移動: 実際にブロックとともに上に移動し、一定の速度で上に移動します。
バウンス: プレイヤーは最初に上方向に減速し、速度が 1 未満になると下のように加速します
}
2. ブロック基本クラス BlockBase: パブリック メソッドとインターフェイスを持つすべてのブロックの基本クラス。
所有する基本メソッド: {
動き: ブロックは一定の速度で上に移動します。
プレイヤーがブロック上にいるかどうかを検出する: プレイヤーがブロック上に留まっているかどうかを判断します
}
および一部の抽象インターフェイス関数には名前しかなく、サブクラスに実装する必要があります。詳細については、ソース コードを参照してください。
3、NormalBlcok、FlipBlock などのさまざまなサブカテゴリ 。
継承は次のように実装されます:
コンストラクター内: BlockBase.call(this); 非プロトタイプのプロパティとメソッドを継承します
関数の外側: サブクラス block.prototype = new BlockBase(); 基本クラスのプロトタイプの属性とメソッドを継承します
4. ファクトリ クラス BlockFactory: ブロックの生成と処理ブロックのヒットを担当します
所有する基本メソッド: {
ブロックの生成: 重要な方法は、ブロックをランダムに生成することです
}
実際のところ、何を言えばいいのかわからないので、ソースコードを見てみましょう。その中で非常に具体的なコメントをさせていただきました。
また、間違いなくバグが存在します。皆様にご理解いただけると幸いです。 。 。
最後にプレビューをさせてください。皆さんが私がさらに向上するのを手伝ってくれることを願っています。コードを書くのが一番です。
左右の方向で動きを制御するインターフェースはかなり見苦しいです。 。 。私を許してください。
デモ コード: http://demo.jb51.net/js/DownFloor/index.html
完全なソース コードのパッケージ化>/201011/yuanma/ DownFloor.rar