2018年07月19日

レトロゲーレビュー・ギャラガ88【1987年/ナムコ(現・バンダイナムコゲームス/AC、PCE他】

※本記事では、ゲームの紹介のために、ゲームの画像を引用させていただいております。
 ここに掲載されている画像は、問題があれば削除いたします。
 また、ここに掲載されている画像の二次使用を禁じます。

【STGには色々ありますが……】
 縦スクロールに横スクロール、3Dシューティング……シューティングには色々な種類のものがあるが、昔からの固定画面型シューティングも、それらに負けてはいない。
 コズモギャング・ザ・ビデオや、『ナムコ・クラシックコレクション』のギャラガアレンジメント、ギャラガレギオンズなど……。
 やはり、シンプルに楽しめるのが、このタイプのゲームの魅力だろうか。
 さて、今回紹介するのは、その固定画面型シューティングの中でも、筆者がとても面白いと思うゲーム、ギャラガ88である。

【無印についておさらい】
 さて、まずは前作であるギャラガについて紹介しよう。このギャラガはギャラクシアンのような飛来してくる敵機を撃ち落としていく典型的な固定画面型STGであるが、それだけにとどまらず、パワーアップという要素も兼ね備えた傑作である。

 ゲームがスタートすると、まずは左右から敵機が飛来して編隊を組む。そしてそれから敵が攻撃を開始していくのだが、ここから、ギャラクシアンとは違ってくる。

 まず、ボスギャラガは時々、弾の他に、トラクタービームというビームを撃ってくる。これにあたると、なんと自機はそのボスギャラガにとらわれてしまうのだ!

ret1807-01.JPG
▲ 自機が、ボスギャラガのトラクタービームにとらわれてしまった!

 だが、これで終わりではない。このピンチは、逆にパワーアップでのチャンスでもあるのだ!
 捕らわれた後、そのボスギャラガが飛来したときに撃ち落とすと……。

ret1807-02.JPG
▲ 先ほどのボスギャラガが飛んできたぞ! 撃ち落とせ!

 なんと、その捕虜となった自機が、現在の自機にドッキングして、デュアルファイターとなるのだ! すると、同時に並列に二発弾を発射することができるのだ!

ret1807-03.JPG
▲ 救出成功! これでデュアルファイターにパワーアップだぜ!

 このように、敵にわざと捕らわれて、そして奪還してパワーアップという、斬新な要素を持つのが、このギャラガの魅力だろう。

 また、ギャラガの魅力としては、敵がいろいろな軌道で飛んでくるチャレンジングステージも忘れられない。

ret1807-05.JPG
▲ 敵の軌道が多彩で美しいチャレンジング・ステージ

【そして88】
 さて、そしてギャラガ88である。
 この88が、前作と変わったところは、まずはグラフィックだが、さらにパワーアップしたのがパワーアップである。

ret1807-06.JPG
▲ 進化したグラフィック。だが、それだけではない

 確かにグラフィックはきれいになったが、それより自機を見ていただきたい。本ゲームでは、デュアルファイターの状態でゲームをはじめることができるのだ! そして、デュアルファイターもまとめて敵につかまってしまうのだ!
 では、それを救出するとどうなるか……。

ret1807-07.JPG
▲ 捕虜になったデュアルファイターを救出すると……ま、まさか……!

なんと、三機合体して、三発並列発射することのできる、トリプルファイターとなるのだ!

ret1807-08.JPG
▲ 降臨! トリプルファイター!

 デュアルファイターの場合、前作もそうだが、二発の弾の間が空いているのが弱点だったが、トリプルファイターの場合、その間に一発入るので、その弱点を見事にカバーすることになるのだ!
 また、1機だけのときでも、一気にトリプルファイターになれるアイテムもあったりして、なかなか面白い。
 このように、パワーアップが、さらに奥深くなっているのが、このギャラガ88の一番の特徴といえるだろう。

 さらに、チャレンジングステージは、ギャラクティック・ダンシングと名を変え、ワルツやタンゴなどのBGMにあわせて、敵機が前作よりも美しい軌道で飛んでくるという変身を果たしている。

ret1807-09.JPG
▲ ザッツ・ギャラクティック・ダンシーング!

 さらにさらに。縦スクロールっぽいステージもあったりするのが、前作と大きく変わったところだ。
 だがこのステージ、2回しか登場しないのが残念である。

ret1807-11.JPG
▲ 縦スクロールライクなステージもあるぞ!

 さらにさらにさらに、あるアイテムを集めると、ボーナスとともにさらに難しいステージ系列に移動したりするといったフィーチャーもあって、とても面白く進化を果たしている。

ret1807-10.JPG
▲ ディメンション・ワープ!

 このギャラガ88は、オリジナルであるアーケードやPCエンジン版の他、Wiiのバーチャルコンソールでも、アーケード版やPCエンジン版をプレイすることができたりするので、興味があればプレイしてみてはどうだろうか? この新時代の固定画面型シューティングの前に、思わず燃えること間違いなしである。

※引用元:ファミコン版ギャラガ、PCE版ギャラガ88より



※次の更新は、7月23日。NIKONIKO CINEMAの予定です。お楽しみに!
posted by 裏編 at 07:39| Comment(0) | その他のゲーム情報 | このブログの読者になる | 更新情報をチェックする

2018年07月16日

VB.NETでDirectX~第2回・画像を表示する方法について学ぼう!

おーちゃん:どうもこんにちは。おーちゃんじゃ、おーちゃんじゃ。

助手:助手です。よろしくお願いします。あれ、博士は?

おーちゃん:博士はお寝坊じゃ。お寝坊じゃ。なので、博士が起きるまで、わしが講義するぞ。

助手:はぁ……。それでおーちゃん。今回は何を?

おーちゃん:うむ、今回は、画像を表示する方法を説明するぞ。説明するぞ。

助手:はい。よろしくお願いします、おーちゃん。

[まずは]

おーちゃん:まずは、前回のプロジェクトを開くのじゃ。

助手:はい、既に開いてあります。

おーちゃん:そしたらあらかじめDebugフォルダの下に、適当な画像をコピーして、名前をchara.bmpに変えておくのだ。

助手:はい、できました。

おーちゃん:そしたら、ここから、画像を表示する処理を描いていくことにするぞ。まずは、

Module Module1

の下に、次の一文を書くのだ、書くのだ。

Dim hChara As Integer

おーちゃん:次に、

SetDrawScreen(DX_SCREEN_BACK)

の下に、次の文を書くのだ。

hChara = LoadGraph("chara.bmp")

助手:はい。

おーちゃん:そして最後に、

ClearDrawScreen()

の下に次の文を書くのだ。これでOKじゃ、OKじゃ。

DrawGraph(50, 50, hChara, 0)

助手:はい、できました、おーちゃん。

おーちゃん:では、実行してみるのじゃ。

助手:おぉ! ちゃんと画像が表示されていますよ!

vbdx1807-01.JPG

おーちゃん:うむ。では、これから、この付け足した部分について説明していくぞ。していくぞ。

[LoadGraphとDrawGraph]

博士:ふわぁ……良く寝たわい。

助手:あ、起きてきたんですか、博士。今月はおーちゃんとするから、まだ寝てていいですよ。

博士:そ、それは困るっ。わしの仕事がっ。

助手:それじゃ、これからは寝坊しないようにしてくださいね、博士。

博士:う、うむ……。さて、まずはLoadGraph関数からじゃ。このLoadGraph文は、画像をメモリに読み込む命令じゃ。その際、その画像を表す番号……ハンドルを返り値として渡すようになっておるのじゃ。

助手:ハンドル、ですか?

博士:うむ。画像を表示する関数を使うときには、このハンドルを使って表示させる画像を指定するのじゃ。

助手:なるほど。

博士:あと、かっこの中には、ダブルコーテーションで囲んで、読み込む画像のパスを指定するのじゃ。

助手:はい、わかりました。

博士:そして次は、DrawGraph関数じゃ。これは、名前の通り、画像を表示するものじゃ。最初の二つの引数は、画像を表示させる位置を指定している。この位置が、画像の左上に当たるように表示されるのじゃ。つまりこの場合だと、画像の左上が(50, 50)に来るように表示するのじゃ。

助手:プログラム中での表記を見るに……3番目は、表示させる画像のハンドルですか?

博士:うむ、その通りじゃ。さて、DrawGraphは一つだけではなく、何度も実行することができる。その場合、後のDrawGraphで、画面を上書きするので、実行する順番には注意が必要じゃ。

助手:ということは、背景をつけたいときは、背景→キャラクターの順番で実行すればいいわけですね? よーし。

--------------------
Dim hChara As Integer
Dim hBack As Integer

Sub Main()
''ウィンドウモードの設定
ChangeWindowMode(1)
''ウィンドウタイトルの設定
SetWindowText("最初のプログラム")

''DXライブラリの初期化
If DxLib_Init() = -1 Then
Exit Sub
End If

''ダブルバッファリング
SetDrawScreen(DX_SCREEN_BACK)

hBack = LoadGraph("back.bmp")
hChara = LoadGraph("chara.bmp")

''メインループ
Do
''画面クリア
ClearDrawScreen()

DrawGraph(0, 0, hBack, 0)
DrawGraph(50, 50, hChara, 0)

''フリップ
ScreenFlip()

If (ProcessMessage() = -1) Then
Exit Do
End If

If (CheckHitKey(KEY_INPUT_ESCAPE) = 1) Then
Exit Do
End If
Loop
End Sub
--------------------

助手:よし、実行……と。あれ?

vbdx1807-02.JPG

助手:キャラクターの周囲が黒くなってます。なんでなんでしょう?

博士:うむ、その解決法は、この後説明していくぞよ。

[透過フラグについて]

博士:といっても、その解決法は簡単なのじゃ。

DrawGraph(50, 50, hChara, 0)

の行の四番目の引数。0になっているが、これを1にするだけじゃよ。

助手:なるほど、やってみます。

vbdx1807-03.JPG

助手:お、今度はうまくいきました! もしかしてこの四番目の引数は、背景を透明にするかどうかのフラグなのでは?

博士?:うむ、そのとおりじゃ。これを1にすると、黒になっている部分を透明にしてくれるんじゃよ。

助手:それでは、他の色を透明にしたい場合はどうすれば?

博士?:その方法もちゃんとあるぞよ。LoadGraph関数の前に、この関数を実行すればいいのじゃ、いいのじゃ。

SetTransColor(●, ●, ●)

助手:SetTransColor関数、ですか。

博士?:うむ。三つの引数は、それぞれ、赤、緑、青の色の濃さを表している。そして、これによって設定された色の部分を透明にしてくれるのじゃ。詳しくは、DXライブラリのサイトを見るのじゃ、見るのじゃ。

助手:わかりました。……あれ?

おーちゃん:今日も疲れたわい、疲れたわい。

助手:あ、あれ? おーちゃん? 博士は?

おーちゃん:博士なら、そこに倒れておる。倒れておる。

助手:……。

おーちゃん:次回は、DrawGraph関数のバリエーションを紹介するぞ、紹介するぞ。

※次の更新は、7月19日。レトロゲーレビューの予定です。お楽しみに!
posted by 裏編 at 07:32| Comment(0) | VB.NETでDirectX | このブログの読者になる | 更新情報をチェックする

2018年07月12日

師匠TのチャレンジARSゲーム!~第九回:『サラダの国のトマト姫』(その2) 【1984年・ハドソン】

うむ、師匠Tである! 今回も、今は亡きハドソンが生んだ名作AVG・「サラダの国のトマト姫」の攻略の続きをするぞ!
城下町を突破した、キュウリ戦士に今度はどんな出来事が待ち受けているのか、注目じゃ!!

~本編(続き~
ARS1807-01.JPG
さて、城下町を抜けて進むと、そこには建物があった。ここはもしや……。

ARS1807-02.JPG
ARS1807-03.JPG
ARS1807-04.JPG
やはりここは、カボチャ大王に抵抗する反乱軍のアジトであった。
ここでは、将軍と作戦参謀から、色々な話を聞くことができるぞ。
特に重要なのは、巨大ロボ『ダイコーン』について。大王側に渡ってしまった起動キーを奪いに、反乱軍の仲間が潜入したが、捕まってしまったという。むむ、それはもしや……?

ARS1807-05.JPG
教会があるな。キュウリ戦士の勝利を祈念しに、入ってみるとしようか。

ARS1807-06.JPG
ごく普通の教会のようじゃが、あることをすると……。
何をすればいいか? 教会ですることと言ったら、決まっているであろう。

ARS1807-07.JPG
さらに進むと村があった。ここはピーナッツの村だそうじゃ。

ARS1807-08.JPG
家の一つに入ってみるが、ただ談笑するだけで変化がない。どうすればいいのか……。
正直わしは、ここの解決方法はあまり気に入らんのう。

ARS1807-09.JPG
続いてやってきたのは……家の形を見ればわかる通り、キノコの村じゃ。

ARS1807-10.JPG
ARS1807-11.JPG
ここには、二匹のキノコから話が聞けるぞ。重要なのは、肝心の情報が聞けるまで、何度でも話しかけてみること。
さて、ここで聞けるのは、敵側のメカ『ウォーメロン』についての情報と、『ダイコーン』について。
いずれも重要な情報じゃから、聞き逃すことのないようにな。

ARS1807-12.JPG
なんてことじゃ! 橋が壊れておる!
近くに、使えそうなものはないし、どうするべきか……。
そういえば、キュウリは水に浮くそうじゃな。

ARS1807-13.JPG
川を渡って先に進むと、そこには小屋があった。中に誰かおるのか?

ARS1807-14.JPG
中にいたのは、まるで仙人のようなニンジンじいさんであった。どうやら、酒がなくて困っている様子。
酒は持っておるか、いや、酒は買っておるか?
そうそう、話が聞けたからといって、すぐに立ち去ってはならぬぞ。

ARS1807-15.JPG
何やら、いかにもありそうな洞くつにやってきたぞ。
もしやここには……

ARS1807-16.JPG
向こうに見えるは、探し求めたダイコーンではないか!
手前の机にも、何かありそうに見えるが……。

ARS1807-17.JPG
ダイコーンの内部に入るには、ここに何かをはめ込む必要があるみたいじゃ。
この穴の形、どこかで見覚えはないか?

ARS1807-18.JPG
コクピットの中に入ったぞ。とりあえず座って、起動させるとしようか。
そうそう、起動に必要なアイテムは持っているかな?
もし持っていない場合、ハマりなので、一からやり直すがよい。
そのアイテムは、城下町で買うことができるぞ。

ARS1807-19.JPG
ARS1807-20.JPG
ダイコーンが起動したぞ! さてさて、この先どうなるかは……

次回に続くのじゃ!!

※次の更新は、7月16日。『VB.NETでDirectXプログラミング』の予定です。お楽しみに!
posted by 裏編 at 08:54| Comment(0) | チャレンジARS | このブログの読者になる | 更新情報をチェックする

2018年07月10日

師匠のJava道場~第11回・finalについて学ぶのじゃ!

師匠T:さてさて、この講座も10回を超えたか。ずいぶん歩んできたのう。

弟子D:はい。俺も、Javaのプログラミングについて、いくらか詳しくなったような気がします。

師匠T:言うようになったのう、こいつめ。まぁ、それもわしの見事な教えがあったればこそじゃな。

弟子D:……。

師匠T:ごほん。さて、今回は、final修飾子とについて説明していくとするぞ。

弟子D:はい、師匠!

▽まずはfinal修飾子についてじゃ!▽

師匠T:まず弟子Dに問題じゃ。finalという英語の意味とはなんぞや。

弟子D:えぇと、最後の、という意味でしたっけ。

師匠T:うむ。Javaでのfinalもそれと同じようなものじゃ。finalをつけると、そこから拡張や変更ができなくなるのだ。
どのようになるかは、これから説明していくぞ。

弟子D:はい!

師匠T:まずは、クラスやメソッドにつけた場合じゃ。これらにfinalをつけると、それらの継承やオーバーライドができなくなる。

弟子D:ふむふむ。

師匠T:これらの特性から、メソッドであっても、コンストラクタにはfinalをつけることはできない。注意しておくのじゃ。

Java1807-01.JPG
△ コンストラクタにfinalをつけるとエラーになるぞ!

師匠T:そして基本型の変数(フィールド)にfinalをつけた場合。このとき、この変数の値は変更することはできない。

弟子D:なるほど。

師匠T:なお、Javaでは、このようにして宣言された変数を定数として扱う。その場合、変数名は大文字で書くのが慣例じゃ。

弟子D:はい、わかりました!

師匠T:うむ、いい返事じゃ。さて、続いては、基本型の引数にfinalをつけた場合じゃ。これも同じように、その引数の値を変えることはできぬ。正確に言うと、変える命令を実行することはできるが、実際に値を変更することはできぬのじゃ。ほれ、この通り。

Java1807-02.JPG
△ 色が変わっている部分に注目。引数aの値を3に変えているが……。

Java1807-03.JPG
△ aの値は2のままだ!

弟子D:なるほど。

師匠T:なお、ローカル変数につけた場合も、フィールドと同じく、その値を変更することはできぬのだ。

弟子D:ふむふむ。あ、師匠。いまさらなんですが、ローカル変数とフィールドってどう違うので?

師匠T:うむ。それを説明し忘れておったの。どちらも、値を格納したり、インスタンスと結び付けたりといった機能は同じじゃが、ローカル変数は、そのメソッドの中でのみ有効で、メソッドを抜けると消滅してしまうもの、そしてフィールドは、メソッド外で宣言されたもので、そのクラス内ならどこからでも参照できるものを指すのじゃ。基本的にフィールドとは、そのインスタンスの特性を表すために使われておるな。

弟子D:なるほど、わかりました。

師匠T:うむ。さて、では続けるぞ。フィールド、ローカル変数問わず、参照型変数にfinalをつけた場合じゃ。

弟子D:はい。

師匠T:この場合、その変数の参照先(リンク先)を変えることはできない。しようとすると、エラーになるのじゃ。

Java1807-04.JPG
△ 参照型変数に、代入(参照型変数の場合は参照先の変更)しようとすると、エラーになるぞ!

師匠T:ただし、参照先の内容を直接変えるのならOKじゃ。

弟子D:なるほど、わかりました、師匠!

師匠T:うむ。次回は、Javaにおいて、クラスと並んで重要なポイントの一つ、例外について説明していくぞ。予習復習を忘れてはならぬ!



※次の更新は、7月12日。『師匠TのチャレンジARSゲーム!』の予定です。お楽しみに!
posted by 裏編 at 07:33| Comment(0) | 師匠のJava道場 | このブログの読者になる | 更新情報をチェックする

2018年07月05日

機動電脳伝Gパソレク!第3話

文 裏編/絵 カゼカオル 氏
※この記事は、裏編が習ったりしていた内容をもとに記述されています。
 現在の内容とは若干違っている部分があることをご了承くださいませ(平伏

paso1807-1.gif
paso1807-2.gif
paso1807-3.gif
paso1807-4.gif
paso1807-5.gif
paso1807-6.gif
paso1807-7.gif

※次の更新は、7月9日、師匠のJava道場の予定です。お楽しみに!
posted by 裏編 at 09:48| Comment(0) | Gパソレク | このブログの読者になる | 更新情報をチェックする