top
[Index(X)][Back(B)]

Digitalian War!! 雪合戦

画面写真

※画像をクリックすると、原寸大で表示されます。

タイトル画面 ゲーム画面

作品情報

作品名:
Digitalian War!! 雪合戦」
作者名:
はりまお
製作開始日:
2001年06月09日
制作完了日:
2002年06月19日
制作環境:
Windows98 + celeron 466MHz + 64MB
Visual Basic 6.0 Learning Edition SP5

戦歴

マイコンBASIC Magazine(電波新聞社) 2002年7月号掲載 [超大作プログラム]
“今月のベストプログラマ”受賞
  • 「これは面白い! 久々に熱くなれる対戦ゲーム作品。」
  • 「雪合戦をゲーム化する着眼点が良く、トイレゲージなど面白いアイデアが盛り込まれている。」
  • 「コンピュータとの対戦モードが用意されている点もウレシイ。」
  • 「MSXの命令を再現している点にも注目。」
と、絶賛の嵐。

雪合戦が、ゲームになると気付いたのはMSX時代の1995年頃。それから何年も暖めていた企画だけに、かなりの完成度となっていたようだ。
それまでのベーマガ紙上で、自分または他の投稿者方の作品で指摘されていた点について、自分なりの回答をこの作品に盛り込んだ事が“今月のベストプログラマ”受賞に繋がったのだと思う。
特に、「作者ならではのアイデア」,「コンピュータとの対戦モード」を盛り込めた事が、好印象を与えた最大の要因となっているのは確かだ。


※お断り
ここに収録したプログラムは、マイコンBASIC Magazineに掲載されたものに、WAVEファイルの追加や部分的に手を加えた完全版です。

ファイル

"yuki-g.zip" [ダウンロード](配布ファイル更新日:2025年01月27日)
実行ファイル
"yuki-g.exe"
プログラム
"yuki-g.vbp"
"yuki-g.frm"
"yuki-g.frx"
"yuki-g.vbw"
画像ファイル
"yuki-g.bmp"
WAVEファイル
"yuki-g_hit.wav"(雪玉ヒット音)
"yuki-g_fall.wav"(プレイヤ落下音)
アイコン
"yuki-g.ico"
説明文(本文)
"readme.txt"

物語

太陽から微妙に遠く離れた小さな惑星。一日中一年中薄暗く雪が解ける事は無い。そんな極寒の地にも心を暑く燃やす暑苦しい戦士たちがいた。

遊び方

実行すると、タイトルが表示されます。そこで対戦相手をキーで選択しスペースキーで開始します。対戦相手には、人間かコンピュータ(レベルは5段階)が選択可能です。ゲーム中の操作は、第1表を見て下さい。

ルールは、いたって簡単。試合時間は、1試合3日間で3点先取した方が優勝。画面上の日時計が1周したら1日となります。相手の領土を占領すれば2点、土俵から落とせば1点獲得できます。土俵の所にある青と赤の帯が現在の領土を示しています。最初は同じ広さで、相手の領土へ進入する事で領土を広げられます。時間切れの場合は、領土の広い方が勝ちです。

雪球は、Bボタン4打で1球でき、最大3球まで持てます。雪球ができたらAボタンで相手に投げ付け、相手に投げ付けてぶっ飛ばしてやりましょう。1人当たり1度に3球まで投げられます。

舞台となる惑星は、とても寒い所なのでどうしてもトイレに行きたくなります。“トイレゲージ”がいっぱいになると我慢の限界に来ています。この状態では、移動以外何も出来ません。ボタンを押しながらBボタン連打で、早急にスッキリしちゃって下さい。ただし、大変無防備になるので気を付けましょう。因みに、トイレゲージの増える速さは、色々な状況によって変化しています。

プレイヤの上のパネルには、“プレイヤ名”,“勝利数”,“雪球製作過程”,“雪球所持数”,“トイレゲージ”が、表示されます。

プログラムの肝と改造

レジストリーの変更や新たなファイルの作成などは行っておりません。不要になった場合は、解凍した全てのファイルを削除してください。

コード中の文字列内の空白には、半角や全角が混ざっています。一応全角の所には注釈を入れておきましたが、注意して下さい。変数解説は、注釈として書いておきました。

WAVEファイルの"yuki-g_hit.wav"は雪球が当たった音「ズシャ」で、"yuki-g_fall.wav"は土俵から落ちた音「ドカッ」です。

今回は、色々と面白い事をやってみました。"msxstick","msxstrig","msxcopy"プロシージャが、それです。そう、MSX-BASICのとっても便利でご機嫌なコマンドをVBで再現してみました。使い方は、基本的にMSX-BASICの仕様に沿っています。
"msxstick","msxstrig"で使うキーは、"msxstick_strig_prepare"プロシージャで割り当てます。変更したい時は、"KeyDown"イベントの引数"KeyCode"で得られる数値を代入すればOkです。
あっそうそう、"msxcopy"は、画像をコピーするためではなく拡大とパターンの敷き詰めが役目の機能限定版です。

celeron466MHzで創ったので、もし速度に問題がある場合は、"game_main"の後ろの方にある"wait st, 50"の50を変更してみると何とかなるかも知れません。

起動時に画像を16倍に拡大するので、時間が掛かります。

禁断の解禁

雪球が、当たっても無敵状態になったりしません。相手を吹っ飛ばして起き上がる直前にまた投げるを繰り返せば土俵から落とす事が可能です。これではあまりに理不尽。しかし、雪球を持っていたら吹っ飛ばされてもAボタンを押していれば起き上がった瞬間に雪球を投げるので吹っ飛び地獄から抜け出せる可能性も残されています。雪球の保有数や位置関係も駆け引きに加わるって訳ですね。

制作後記

この作品は、MSX・FAN投稿者で大好きやったYOSHIXさんの『みんしゅーか』に魅せられて、「自分もこんなん創りたい!!」って試行錯誤しながら創ったんやわ。

対戦アクションを創るんは、これが初体験。勿論、CPUの思考ルーチンも初めてやから、最初どうやって良いのか全然分からんかったもんなぁ。まぁ、複雑な事は、な〜んもやってへんから(雪球を避ける事すらやってない!)結構オバカちゃんやけど、暇つぶしの相手ぐらいは出来ると思うんやわ。あんまりにも弱過ぎるって人は、もっと賢く教育してやってね。

WAVEファイルは、MSXで音を作って、その音声出力をWindowsマシンにライン入力して標準のサウンド レコーダーで録音するという面倒臭いことをやってみた。これ以外に音を作る方法がわかんないんだからしょうがない。ちなみに、MSXでの音の作成には、MSX・FAN 1993年2月情報号に掲載の「SIDE ROLE<爆音エディター>」を使用させていただきました。

参考文献

図表

第1表:操作キー
名称使用するキー用途
Player1Player2
ボタンキーキー押したままボタン連打で用を足す。
ボタンキーキー()右へ移動する。
ボタンキーキー左へ移動する。
ボタンキーキー(Enterキー左下)雪球を投げる。
ボタンキーキー(_)連打で雪球作成又は用を足す。
Spaceキーポーズ。 Spaceキーで再開。
ESCキーで中断。タイトルへ戻る。
配列イメージ
┌─┐ ┌─┐    ┌─┐ ┌─┐
│A│ │D│    │;│ │]│
└┬┴┬┴┬┴┐  ┌┴┬┴┬┴┬┘
 │Z│X│C│  │.│/│\│
 └─┴─┴─┘  └─┴─┴─┘

第2表:画像
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│00│01│02│03│04│05│06│07│08│09│20│ │23│24│
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
│10│11│12│13│14│15│16│17│18│19│21│22│25│26│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
2種類の絵でアニメーションさせる。22番以外8x8ドット。
番号内容
00, 01プレイヤ1の移動
02, 03プレイヤ1の雪球作成
04, 05プレイヤ1の投げアクション
06, 07プレイヤ1のぶっ飛び
08, 09プレイヤ1のトイレタイム
10, 11プレイヤ2の移動
12, 13プレイヤ2の雪球作成
14, 15プレイヤ2の投げアクション
16, 17プレイヤ2のぶっ飛び
18, 19プレイヤ2のトイレタイム
20プレイヤ1側の雪球破裂
21プレイヤ2側の雪球破裂
22雪球 ※4x4ドット
23, 24太陽
25, 26
[Top(T)][Index(X)][Back(B)]