ヴォルトリス
前の学期、私は「コンピュータグラフィックス」の科目で課題を提出する必要がありました。そして、私は考えました。"回転するシリンダー"のようなものを作る必要があるのか、それとももっと面白いことをするべきか。そうして、今日皆さんにご紹介するゲームが誕生しました。
スクリーンショットが興味を引いたことを願い、続けていきましょう。
ゲームは複数の表示モードをサポートしています。それぞれはキーボードの数字キーを押すことで切り替えられます。
キー -- モード
1 -- 400x400のウィンドウ、画面を真上から
2 -- 500x600のウィンドウ、画面を真上から
3 -- 600x600のウィンドウ、画面を真上から
4 -- 700x700のウィンドウ、画面を真上から
0 -- 500x700のウィンドウ、デフォルトビュー、下記の通り:
ゲームは数世代にわたってシェルターの住民が時間を潰すために使用したコンピュータを再現しています。))) コンピュータは空間に好きなように配置できます。操作に使う管理キーは次の通りです:
A
W D S 垂直および水平の回転
R
- モデルをズームイン/ズームアウト
F
Y
G H J 水平/垂直移動
(私的には、かなり論理的な操作だと思いますので、試してみてください)
そして、私たちは本題を見ました。シェルターの住民たちはこのコンピュータでテトリスをプレイしていました!
画面操作は次の通りです:
ESC ゲームを即座に終了
ENTER 画面上のアクションを確認 (メニュー、ゲームオーバー画面 - メニューに移動)
矢印キー 画面上のすべてを操作 (メニュー、ゲーム)
(上矢印はピースを回転)
スペースバー ゲーム中のポーズ
さて、画面上に何があるか見ていきましょう:
スコア – あなたの得点、わかりますよね
行 – あなたが破壊した行の数
カルマ – これが私が名付けたレベルです) あなたのカルマが低いほど、ピースの速度が速くなります。
速度の増加は時間ではなく、破壊された行の数に依存します。また、一つのピースで多くの行を破壊すればするほど、その分得点が増え、レベルボーナスも得られます。
前のスクリーンショットでいくつかのことがすぐにわかります:
1)カルマの画像は、さすがに変わります) 本当に狂ったプレイヤーだけが最後のカルマレベルを得ることができます)
2) カルマの画像の左側には、あなたが残りの数を示すプログレスバーがあります。上述した得点計算アルゴリズムは、ゲームオーバーまでに正確に破壊された行の数を前提としていますが、獲得した得点はあなたのスキルに依存します。
おそらくこれで全部だと思います。あなたがゲームに負けると、得点はハイスコアテーブルに記録され、未来のシェルター住民たちがあなたの技術を覚えることができます(最終結果がハイスコアテーブルに入ると星印で示されます):
特に、愛を込めて描かれたテクスチャに注目してほしいです。)
また、私は非常に興味深いことに気づきました。おそらく、あなたが以前にテトリスをプレイしていたとき、"棒"のようなピースが出ないことは、あなたがコンピュータに勝つのを邪魔するための世界的な陰謀だと思ったことでしょう)) しかし、私が手掛けたプログラムでは、そう言えるほど、必要なときに棒が出ないのです)。この全宇宙の不条理を避けるために、ゲームにはチートが含まれていますが、それは教えません。
ゲームのすべてのテクスチャは別々に保存されており、興味があれば見ることができます。それらはディレクトリvaultris -> texturesにあります。注意 - カルマレベルのネタバレがあります)
ゲームはfallout-archives.comのサイトからダウンロードできます。ご親切にそのサイトに置いていただきました。
こちらがダウンロードリンクです: http://www.fallout-archives.com/files/12/72p1.php。 (総計1.7MB)
使用されたもの:
- C言語 (pure C, C++ではありません)
- winapi
- マイクロソフトによるOpenGlの実装
- MinGW – C/C++の自由な実装等。Microsoft Windows用
- テキストエディターGVim。
良いゲームを。
追記: Falloutとテトリスについてのすべての中で最も人気のあるセクションに投稿することにしました。
追記2: ネットブックをお持ちの方へ – eeeVaultrisファイルでゲームを小さなウィンドウですぐに起動してください。
追記3: 私は技術的であることを主張しません。単にこの作業が好きで、結果が好きです)
更新: ゲームがVistaや7で動作しない場合は、ゲームフォルダーからopengl.dllライブラリを削除してみてください。