まず、立方体を描きました。 それから彼は「マップをロードしましょう。」と考えました。 結果は迷路でした。 そして、パネルを追加しましょう! そして、ファイアボールを追加しましょう! しかし、第三者の視点がなければどうでしょうか? そして、マルチプレイヤーはどこにありますか?! ウォーカーズというゲームがありました
映像
ゲームについて
ご存知のように、すべてのプログラマーはゲームとチャットルームを作成する必要があります。 最終的に、私は両方をしました。 しかし、「chatik」によって、マルチプレイヤーの追加が理解されました。 結果は多かれ少なかれ真剣なゲームでした。
ウォーカー Qt + OpenGL +(マルチスレッド+ネットワーク+アニメーション)
運営管理
WASD-ムーブメント
矢印 -カメラの回転(フルスクリーンモードでマウスを使用できます)
Shift-クラウチ
スペース -バウンス
メインメニューで、レコードを確認することができます。

レベルはどのように設定されますか?
- 最初に、行と列の数(N、M)が示されます。
- 次に、M文字のN行が静的マップを定義します。
- 「。」 -性別
- 「E」-終了
- '0'-危険(溶岩/水/ ...)
- '*'-壁
- 「P」はプレイヤーの開始位置です。 「P」文字がない場合、位置(0、0)は初期位置と見なされます
- その後、移動するオブジェクトの数とその説明が続きます。
移動オブジェクトには、Hpanel-定期的に消えるパネル、Mpanel-移動パネル、Fpanel-火球の3種類があります。
- Hpanel:H xy <最初の遅延> <最初の間隔> <2番目の間隔> <初期状態(0/1)>
操作のスキームは次のとおりです。最初に、<最初の遅延>の間に<初期状態>があり、次に状態が<最初の間隔>に変わり、次に<秒の間隔>に変わります。 この後、<最初の間隔>と<2番目の間隔>が交互に発生します。 - Mpanel:M xy <1つのセルを渡す時間> <PARAM>
<PARAM>は、パネルの動きを説明する文字列です。 有効な文字は、S(滞在)、UDLR(上、下、左、右)です。 文字列は周期的に処理されることを覚えておくことが重要です。 文字列の最後の文字を処理した後、パネルの位置は(x、y)に等しくなります! - Fpanel:F <x * 100> <y * 100> <z * 100> <r * 100> <DIR> <1つのセルを渡す時間> <クールダウン> <距離* 100> <最初の遅延> <sx * 100> <sy * 100> <sz * 100>。
火球ランチャーの位置は、数字x、y、zで指定されます。 パラメーターでは、これらの数値に100を掛けた値を指定する必要があります。すべての数値パラメーターは整数でなければなりません。 rは火の玉の半径です。 <DIR>-方向(UDLR)。 <cooldown>-開始間の間隔。 sx、sy、sz-ボールのスケーリング。 これにより、楕円体を実行できます。 distane-ボールが飛ぶ距離。 <first delay>は、ボールを飛行方向に沿って移動できるようにするパラメーターです。
- Hpanel:H xy <最初の遅延> <最初の間隔> <2番目の間隔> <初期状態(0/1)>
- その後、テクスチャが設定されます。 すべてのテクスチャはTexturesフォルダにあります。 テクスチャの数が示され、次にオブジェクトの名前と写真の名前が示されます。 有効なオブジェクト:
- 空
- 壁
- 出る
- 床
- 危険
- 隠された
- 動いている

私は学びました:
- C ++プログラミング
- Qtでプロジェクトを書く
- OpenGLを使用する
- ネットワークで作業する
- マルチスレッドアプリケーションを作成する
- 行列を操作する
- 骨格アニメーションの仕組みを理解した
- Gitを使用してみました
- そして、私は非常に重要な教訓を得ました。
書き始める前に、最後に何が起こるかを考える必要があります。 そのため、グラフィックスと計算が同じクラスにあったという事実のために、私はそれらを異なるクラスに配布し、別々のスレッドで実行するために懸命に努力しなければなりませんでした。
私のもの、私のものではないもの...
既製のエンジンは使用しませんでした。 ただし、テクスチャとモデルは私のものではありません。 モデルは半減期から取られています。 誰かがヒーローを認識しない場合、これはバーニーです。
ゲーム
ソースコード
Linux
窓