2021年03月15日

師匠のVB.NETどたばた塾~第19回

sisyo.gif
師匠T:うむ、師匠Tじゃ!

deshi.gif
弟子D:おう、弟子Dだぜ!

sisyo.gif
そういえば、もうすぐ春じゃのう。

deshi.gif
そうですね。

sisyo.gif
春といえば、彼氏と彼女のペアが……うおおおーーー!! 石歯天経けーんっっ!!

deshi.gif
お、落ち着いてください、師匠! 石歯天経拳ーーーー!!(師匠の石歯天経拳を自分の石歯天経拳で受け止める)

sisyo.gif
ぜぇぜぇ……す、すまぬ。つい、我を忘れてしもうた。

deshi.gif
はぁ……もしかして師匠……。

sisyo.gif
なんでもないぞ! カップルがうらやましいなぞと思ってないぞ! ほれ、さっそく今日の講座をはじめるぞ!

deshi.gif
まだ何も言ってませんが……。それで師匠、今日は敵キャラについてでしたっけ。

sisyo.gif
うむ。今回は、敵キャラの出現、移動、そして消滅についてやっていこうと思う。それではさっそくいくぞ! カップルのことが頭をよぎる前に!!

deshi.gif
はぁ……。

【敵キャラのクラスを作ろう!】

sisyo.gif
さて。まずは敵キャラを表すクラスを作るとしよう。まずは、プロジェクトメニューの『クラスの追加』から新しいクラスを作るとしよう。クラス名はEnemyとしておくぞ。

sisyo.gif
クラスを作ったところで、続いて、GraphModuleに次の変数、そして新しいサブルーチンと関数を付け加える。変数hndEmenyとLoadEnemyサブルーチン、GetEnemyHnd関数じゃ。
vb2103-01.JPG
↑付け加えた新しい変数と関数(赤枠が追加した部分)

deshi.gif
ふむふむ。画像読み込み処理と、ハンドルを返す関数を用意するんですね。

sisyo.gif
その通り。ここまでできたら、MainModuleのImageLoadサブルーチンにこう書き加える。LoadEnemyサブルーチンを呼び出すわけじゃな。
vb2103-02.JPG
↑ImageLoadサブルーチンをこう修正する(赤枠が追加した部分)

sisyo.gif
これができたら、改めてEnemyクラスの中身を書いていくとしよう。さっそく、コンストラクタを書くとするぞ。この通りじゃ。

vb2103-03.JPG
↑Enemyクラスのコンストラクタ

sisyo.gif
この通りじゃ。まず難しいことはなかろう? そうそう、いつものように、Class Enemyの下に、Inherits Spriteとつけるのと、さらにその下に、Dim fMoveType As Integerと書いておくのを忘れないようにの。
つまり、冒頭の部分をこう書き換えておくべし。

Class Enemy
    Inherits Sprite

Dim fMoveType As Integer
……

Public Sub New~

deshi.gif
はい。ですが、この引数pTypeや、変数fMoveTypeとはなんぞや?

sisyo.gif
うむ、それは敵の種類を表すものじゃ。敵にも色々な種類があるじゃろ? 突進してきたり、弾を撃ったら逃げていくものまで。

deshi.gif
はい。

sisyo.gif
今回は、敵は直進する敵一種類だけにする予定じゃが、複数の種類の敵を出す場合には、引数で敵の種類を設定するようにし、fMoveTypeの値で移動処理を分岐させるようにするのじゃ。

deshi.gif
なるほど。

sisyo.gif
さて、移動処理もこのクラスの中で行うようにする。MoveExサブルーチンじゃ。こうしとけば、モジュール側ではこの処理を呼び出すだけですむからの。

deshi.gif
なるほど! 確かにその通りです!

sisyo.gif
そういうわけで、移動処理がこちらじゃ。

vb2103-04.JPG
↑MoveExサブルーチンとMoveEx_Sub1サブルーチン

sisyo.gif
今回は、敵の種類を増やす時を考慮して、このようにSelect Caseを使って、それぞれ違うサブルーチンに飛ばす構造にしておる。
違う移動パターンを増やしたい時は、移動処理のサブルーチン(今回のMoveEx_Sub1のようなものじゃな)を増やし、Select Caseで分岐させて飛ばしてやるといいじゃろう。例えば1の時は、MoveEx_Sub2に飛ばす、というようにな。

deshi.gif
はい。

sisyo.gif
それでは、今回はここまで。次回は、モジュール側の処理を書いていくとする。復習をしっかりしておくようにの。
それでは!

deshi.gif
さらばだぜ!!

sisyo.gif
……。(--#



※次の更新は、フリーゲームレビューの予定です。お楽しみに!

posted by 裏編 at 18:28| Comment(0) | 師匠のVB.NETどたばた塾 | 更新情報をチェックする

2021年03月08日

師匠TのチャレンジARSゲーム!~第弐拾八回:デゼニワールド【ハドソン】

ars2103-01.JPG

うむ、師匠Tである!
今月チャレンジするのは、『デゼニワールド』!
かのADVの雄、ハドソンが生み出した怪作にして傑作じゃ!

位置的にはデゼニランドの続編という立ち位置じゃが、仕掛けやスケールなど、デゼニランドとは段違いにパワーアップしておる!
これはチャレンジのしがいがあるわい!

それではいくぞ!

どんなゲームも、完全制覇じゃ!!

【 今回はいきなり本編じゃ! 】

ars2103-02.JPG
物語は、組織のアジトから始まる。パッとしないこの男が、主人公デゼニマンじゃ。
組織のボスの話によると、名古屋にある遊園地デゼニワールドのコンピュータが突然狂いだしたという。
むむむ、これは難事件のにおいがするわい!

ars2103-03.JPG
名古屋にやってきたぞ! デゼニワールド建設計画についての看板があるのう。
今となっては、このキャッチフレーズもむなしいものがあるのう。
何はともあれ、先に進むとしようか。


ars2103-04.JPG
分かれ道じゃ。左に行くと公園があるそうじゃ。とりあえず、そちらに行ってみようか。

ars2103-05.JPG
公園に行ってみると、パブ(酒場)があるぞ。情報収集のために行ってみようか。
毛、決して酒を飲みたいからではないぞ!

ars2103-06.JPG
アウトー! これはアウトじゃー!! むむ、でも髪の毛がモヒカンだからセーフなのか?
え、そういう問題ではない? 何はともあれ、彼から話を聞いておくとしようか。

ars2103-07.JPG
マスターの指示に従って、テレフォンルームに行くと、組織の工作員の一人からの話が聞ける。
なお、電話の相手であるタケベは、以前紹介した『サラダの国のトマト姫』の作者であり、現在、グランディアⅡやドラゴンクエスト・モンスターバトルロードを開発したロケットスタジオの現社長、竹部隆司氏がモデルだそうな。

ars2103-08.JPG
さて、電話を終えると……アウトー! これもアウトじゃーーー!!

ars2103-09.JPG
ぜぇぜぇ……。取り乱してしもうた。すまぬ。
気を取り直して戻ってくると、そこには豚がおった。彼にも話を聞いてみるとしようぞ。

ars2103-10.JPG
さて、公園にやってきたぞ。むむ、向こうに見えるあれは?

ars2103-11.JPG
おぉ、やはり! 以前紹介した『サラダの国のトマト姫』の主人公、キュウリ戦士の銅像ではないか!
このようなサービスは、ファンとしてはやはり嬉しいのう。

ars2103-12.JPG
女の子が壁に落書きをしておるが、見た目で判断してはいかん! 実は彼女も……。
彼女の話もしっかりと聞いておくように。

ars2103-13.JPG
猿山にやってきたぞ。確か、先ほどの女の子は……。

ars2103-14.JPG
骸骨にしか見えないが、老人じゃ。彼も、デゼニワールドに挑んだが、その謎と恐怖の前に屈して、このようになってしまったようじゃ。
それにしても、骸骨と珠つきの杖……黄〇バットか?

ars2103-15.JPG
やや、彼は『サラ(ry』の悪役、カボチャ大王ではないか! 自業自得とはいえ、こんなに落ちぶれるとは哀れじゃのう。
もちろん、彼にもしてもらうことがあるぞ!

ars2103-16.JPG
アウトーー!! アウトじゃーーー!! もうそろそろ、ハドソンがDCコ〇ックスに訴えられないか不安じゃのう。
本当に、このころのハドソンは怖い物知らずじゃったのう。
さて、このバッ〇マンもどきは、タクシーの運転手だそうじゃ。お願いすれば、デゼニワールドまで乗せてもらえる……か?

ars2103-17.JPG
レンタカー屋か。ここで車を借りらればいいのじゃが……。

ars2103-18.JPG
その後色々あって、モノレールの駅までやってきた。
さっそく切符を買って……とちょって待て! その前にあることをしておかねば、切符を買うことはできぬのだ。

ars2103-19.JPG
ちょうどモノレールが止まっておるな。これに乗れば、デゼニワールドに行けるのか?
はてさて、この先は……



次回に続くのじゃ!!



==========
※次の更新は、新連載『師匠のVB.NETどたばた塾』の予定です。お楽しみに!
posted by 裏編 at 14:22| Comment(0) | チャレンジARS | 更新情報をチェックする

2021年03月01日

ACツールズで、Windows10をさらに使いやすく!

 さらに高機能に、さらに使いやすく進化したWindows10。でもどうせなら、もっと使いやすくしたいところですね。
 そこで今回は、Windows10を便利にするソフト『ACツールズ』について紹介します!

~ACツールズとは?

 ACツールズは、先ほど話した通り、Windows10をさらに便利にしてくれるツールや、追加機能の詰め合わせです。
 Readmeによれば、内容は

○常駐ツール
・マウスジェスチャー
・IMEマーカー
・マルチエクスプローラバー
・ウィンドウウォッチャー
・ペーストツール

○ミニツール
・タイトルでウィンドウを切り替え(仮想デスクトップにも対応)
・マウスポインター下のウィンドウ内の文字を取得
・マウスポインターを含めてデスクトップをスクリーンキャプチャ
・マウスポインターを含めてアクティブウィンドウをスクリーンキャプチャ
・パス取得ツール
・マウスポインター下のエクスプローラからフルパスを取得
・マウスポインター下のエクスプローラからフルパスを取得(リンク先に変換)
・全エクスプローラからフルパスを取得
・全エクスプローラからフルパスを取得(リンク先に変換)
・ファイル・フォルダの完全削除
・マウスとキーの入力を記録
・設定・コントロールパネルランチャー
・BitLocker一括ロック解除

○電源・モニター・音量・メディア関連のショートカット
・シャットダウン(タイマー機能・キャンセル機能つき)
・再起動(同)
・スリープ(同)
・ミュートしてスリープ(同)
・休止状態(同)
・モニターの電源OFF(同)
・モニターの明るさup
・モニターの明るさdown
・ミュート/ミュート解除の切り替え
・ミュート
・ミュート解除
・音量up
・音量down
・次のトラック
・前のトラック
・再生/一時停止
・再生の停止

○マウスやキーボードの機能拡張と制御
・ホイールで拡大鏡
・デスクトップ上・タスクバー上・タイトルバー上でのマウス操作に各種動作を割り当て
・CapsLockをONにできないようにする
・ACツールズ起動時のNumLockの状態を設定
・カタカナひらがなキーを無効にする
・IMEのONとOFFを切り替えるキーを設定
・IMEをONにするキーを設定
・IMEをOFFにするキーを設定
・再変換するキーを設定
・直前の入力を日本語にするキーを設定
・キーの無効化や入れ替え
・キーやショートカットキー(修飾キーの左右を区別可能)に各種動作を割り当て(対象アプリケーションを指定可能)

○起動後の追加動作
・ACツールズの起動完了と同時に他のアプリの起動などの動作を実行
・ACツールズの起動時にスケジュールに従ってメッセージを表示
・ACツールズの起動時に壁紙チェンジ
・一定間隔での壁紙チェンジ
・仮想デスクトップの切り替え時に壁紙チェンジ

と、このように盛りだくさん!
インストールや起動もとっても簡単。適当なところに解凍して、その中の実行ファイルを起動するだけでACツールズを実行します(インストールの必要はありません)
 なお、このソフトは、まず無料のβ版を公開し、その後で有料の製品版を出す、という形式をとっており、β版については、『バージョンごとにリリース後一年まで使用可能』という制限があります。でも、製品版が出た後も、一年は使えるというのはなんとも太っ腹ですよね。

~試しに使ってみたー

 それではさっそく使ってみましょう。実行ファイルAcTool.exeを実行すると、まずはこのような操作パネルが表示されます。

tk2103-01.JPG

 ここから、色々な設定を行ったり、ツールを実行したりできます。それではさっそく、まずはIMEマーカーを使ってみることにします。
 これは、エディタなどで、キャレット(入力位置を示すIのことです)の左上にIMEがオンになっているかどうかを表示させてくれるものです。下の写真のように、IMEがオン(日本語入力できる状態)なら、左上の丸いインジケーターが緑に、オフならば橙色っぽい色になります。

tk2103-02.JPG

 次は、マルチエクスプローラバーです。これは、複数のエクスプローラのウィンドウを並べて表示してくれる、というものです。それだけではなく、ランチャー機能や、選択したファイルやフォルダのパスを取得する機能、ファイルを完全削除する機能もついている優れものです。

tk2103-03.JPG

 最後に、電源、モニター、サウンド関係のショートカット作成機能です。ここでは、シャットダウンやスリープ、ここでは、例えば電源関係であれば、シャットダウンや再起動、スリープ、休止状態、さらにはミュートしてスリープと、色々な電源操作に関してのショートカットキーやショートカットアイコンを作ることができる、というものです。
 その項目はとても豊富で、きめ細やかな設定ができます。

tk2103-04.JPG

~ここに注意!

 このように便利なACツールズですが、いくつか注意点も。
 まず、機能によっては、起動するとWindowsの動作(特にカーソルの移動)が遅くなるものがあります。その場合は設定で、ツールの動作が軽くなるように設定しましょう。
 そしてもう一つは、アンインストールについてです。細かいことはReadmeを参照のことですが、ちょっと複雑な手順を踏む必要があります。また一部については、さらに複雑な手順を行う必要があります。(細かいことを気にしなければ、普通にフォルダを削除すればいいと思いますが……)

~最後に

 今回はACツールズを紹介しましたが、いかがでしたでしょうか? 一部しか紹介できませんでしたが、他にもとても役立つ機能がいっぱいです!
 あなたもACツールズで、Windowsをさらにパワーアップしてみませんか?



※次の更新は、『師匠TのチャレンジARSゲーム!』の予定です。お楽しみに!
posted by 裏編 at 10:51| Comment(0) | 特集 | 更新情報をチェックする

2021年02月22日

レトロゲーレビュー:ダービースタリオン【1991年・アスキー】

enta2102-00.JPG
※ここで掲載している画像は、問題があれば削除いたします

実は……


 実は、競馬ゲームというのは、パソコンゲームの中では、歴史があるもののようで、旧機種のころからありました。とはいっても、馬が自動的に走って、その順位を当てるものが多数だったような気がします。
 裏編が持っていたP6のプログラムの本にも、そんなものが載っていましたし。
 ですが、そんな中にあらわれた、このダービースタリオン(以下ダビスタ)は、それらとは一線を画すものでした。それは何かというと、ダビスタは、競馬に賭ける人の立場だけでなく、馬の生産者、そして調教者の気分も楽しめる、よくばりなゲームだったことです!

全ては競走馬の生産からはじまる


 では、このよくばりさを一つずつ見ていくとしましょう。まずゲームをスタートさせると、プレイヤーには、いくらかの資金と、繁殖用の牝馬一頭が用意されます。
 そして、まずはこの牝馬と、牡馬とを交配させて、仔馬を作ることになります。

enta2102-01.JPG
▲ ゲーム開始時に用意される一頭の牝馬。まずは、仔馬の生産からすべてははじまるぞ

 画像の通り、全ての牝馬には血統が設定されており、さらに相手となる牡馬にも血統が設定されています。
 さらに、この血統は伊達ではなく、インブリード(祖先が同じ馬同士を交配させること。強い馬が生まれることがある。逆に、問題がある馬が生まれることもある)の要素が入っているのです。さらにシリーズが進むと、ラインブリード(同じ系統の馬同士をかけあわせること)、ニックス(相性がいい系統の馬同士を交配させること)の要素も加わり、交配がより奥深くなっていきます。
 このように、馬の生産の要素が奥深いのが、このダビスタの魅力の一つ目です。

調教


 さて、三歳になった馬は、厩舎に入れて、競走に向けて調教することになります。
 調教では、プレイヤーが実際にメニューを決めることになります。そして決めると、実際に馬がその通りに走って、そして能力が上がったり、調子が変わっていくのです。
 調教によって能力などが変化していきますが、あまり調教しすぎると、疲労がたまったり、怪我する確率が高くなるので、調教のメニューを考える必要があります。
 この調教も、シリーズが進むにつれ、プールやチップなど、色々な調教が増えていきます。

enta2102-02.JPG
▲ この調教で、レースの結果が変わるぞ! 実際に馬が、そのときの調子にあわせて走っていくのだ!

そしてレース


 そして、いよいよレースに出場となりますが、ここもまた本格的。
 まずは、出馬表が出ますが、ここには、予想者の予想印が表示されます。自分の馬がいい予想をされると、とても嬉しいですよね。
 馬券も買うことができます。なんと、初期作から、単勝、複勝、連勝から選んで買うことができます。シリーズが進むと、馬番、枠番の要素も加わりますよ。
 さらには、騎手への指示も設定することができます。さすがに、逃げとか差しとかの単語は、競馬について知らない人には難しいのか、初期の作品では、「とにかく逃げろ」とか、「抑えて後ろから」とか、わかりやすい表現になっているところが、親切設計です。
 そして、いよいよレース。ここでは、もちろん馬たちが走っていくのですが、その馬の現在の能力や調子、そして逃げや差しなどの走り方に合わせて走るのです。

enta2102-03.JPG
▲ さぁ、レースだ! それ、差せ、差せ!

 さらに、この画像のように、実況も入っているのが、芸が細かくて面白いところです。
 そうそう。さっきの要素のほかにも、ダートが得意かどうか、得意距離かどうかでも、走り方は変わってきますよ。
 このように、生産の結果や調教の仕方が、レースの結果に影響するのも、ダビスタの魅力の一つと思われます。

ファミコン後のダビスタ


 さて、ダビスタは、初代のあとの完全版を経て、スーパーファミコンにステージをうつして、Ⅱ、Ⅲ、96,、98とシリーズを重ねていくことになります。
 スーパーファミコンになってからは、先ほど話した通り、交配の要素が増えたり、調教の要素がふえたり、さらにはレースも当時のものに近づいたり、ファンファーレも実際のものを使ったり(聞いたときには、とても感動しました。あ、裏編は競馬をしたことはありませんよ。ラジオで中継を流し聞きしただけです。念のため)と、プラットフォームにあわせて強化されました。そうそう、グラフィックも当然、強化されていますよ。
 
enta2102-04.JPG

enta2102-05.JPG

enta2102-06.JPG

enta2102-07.JPG

enta2102-08.JPG
▲ スーパーファミコン版になって、パワーアップしたダビスタ

 しかし、まだまだダビスタの進撃はとまらず、プレステ1、セガサターン、GBA、ニンテンドーDS、そしてプレステ2と、新しいハードにどんどん移植され、パワーアップし続けています。
 今でも、手塩にかけた愛馬を持ち寄って、レースをしている人たちもいるそうです。
 このように、最初の作品から、生産者の楽しみ、調教者の楽しみ、そして賭ける人の楽しみをミックスし、なおかつその面白さのまま、多種多様なハードに進出してきたダビスタ。
 ダビスタこそ、競馬ファンの競馬ファンのためのゲームといっても、過言ではないでしょう。
 競馬ファンの方、ぜひプレイしてみては?



※次の更新は、特集の予定です。お楽しみに!
posted by 裏編 at 09:47| Comment(0) | その他のゲーム情報 | 更新情報をチェックする

2021年02月15日

師匠のVB.NETどたばた塾~第18回

sisyo.gif
師匠T:うむ、師匠Tじゃ。そういえば、昨日はバレンタインじゃったのう。

deshi.gif
弟子D:もしかして師匠……。

sisyo.gif
なんでもないぞ。今年は妹弟子Aからしか義理のイチゴショートしかもらってなくて寂しいだなんて思ってないぞっ!!(べきっ

deshi.gif
(師匠の握っていたクルミが……師匠の怒りと悲しみが、言葉なく伝わってくる……!)

sisyo.gif
さぁ、今回も初めていくとしようぞ。今回は、前回話した通り、今回付け足した四つの関数やサブルーチンについて説明していくぞ!

deshi.gif
は、はい……。

【 まずはEraseShotとClearShotからぢゃ! 】

sisyo.gif
まずは、LoadShotサブルーチンからといきたいところだが、これは難しいことはなかろう。ただ、GraphModuleモジュールのモジュール変数hndShotに、LoadGraph関数で、ショットの画像のハンドルを格納しているだけじゃ。

deshi.gif
ふむふむ。そして、GetShotHnd()関数は、そのhndShotの値を、戻り値として返しているわけですか。

sisyo.gif
その通りじゃ。こうしておけば、いちいちLoadGraph関数を実行する必要もなく、かつこれまでと同じように手軽にハンドルの値を取得することができるからの。

(前)
Handle = LoadGraph(~)

(後)
Handle = GetShotHnd()

deshi.gif
ふむふむ。

sisyo.gif
そして次。ShotEraseサブルーチンじゃな。

vb2102-01.JPG

sisyo.gif
これは、引数として、削除したいショットの配列の番号を受け取り、該当する配列oShot()にNothingを入れることによって、指定されたショットを消すサブルーチンじゃ。

deshi.gif
なるほど。次はShotClearですね。

vb2102-02.JPG

sisyo.gif
うむ。こちらは、そのShotEraseを利用して、For~Nextループを使って、配列oShot()の内容を全て削除するサブルーチンじゃ。例えば、自機が破壊されて、ゲームをやり直す場合、それまで残っていたショットが残っているとおかしいからの。

deshi.gif
なるほど。

sisyo.gif
それと、今回はショットは256個に限定したが、それより多かったり少ない数にしたい場合は、ショットの数を定数として用意し、それを使うとよい。その場合は、先ほどのFor文のToの後の数など、いくつかの数値を、この定数に変える必要があるがな。

(前)
For s = 0 To 255
Next

(後)
Const SHOTS = 255
……
For s = 0 To SHOTS
Next

sisyo.gif
こんなところじゃな。なお、定数はパブリック定数として定義したほうが、面倒がなくてよかろう。

deshi.gif
なるほど!

【 ShotExist関数じゃ! 】

sisyo.gif
そして最後。ShotExists関数じゃな。これは、引数で指定したショットがあるかどうかをTrueかFalseで返す関数じゃ。言うまでもないかもしれんが、存在していればTrue、なければFalseじゃ。

vb2102-03.JPG

deshi.gif
If文で、存在していればTrue、そして存在してなければFalseをReturnで返してるんですね。Is Nothingは、それがあるかどうかを判定する演算子、でしたっけ。

sisyo.gif
よく覚えておったの。その通り。それほど難しいことはなかろう。なお、今回はわかりやすくIf文を使ったが、もっと短く書きたい場合は、こんな風に書く方法もある。

----------
Return oShot(s) IsNot Nothing
----------

sisyo.gif
どちらの方法を使うかは、それぞれのプログラミングスタイルによるであろう。よく熟慮せよ。

deshi.gif
はい!

sisyo.gif
それでは次回は、敵キャラの出現、移動についてレクチャーする。復習を忘れぬようにな。



※次の更新は、『レトロゲーレビュー』の予定です。お楽しみに!

posted by 裏編 at 09:46| Comment(0) | 師匠のVB.NETどたばた塾 | 更新情報をチェックする