2020年10月19日

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

sisyo.gif
師匠T:うむ、師匠Tである! 冬が近づいてきたが、そんなことなどこのわしの目には入らぬ! 気にせずどんどん進んでいくぞ!

deshi.gif
弟子D:師匠、それはただ目をそらしてるだけじゃ……。

sisyo.gif
何か言ったか?

deshi.gif
いえ、なんでもないです……。

sisyo.gif
さて。今回は予告の通り、MyCharaクラスの内容を説明するとともに、MyCharaModuleモジュールの内容を説明していくぞ!
しっかりとついてくるように!


deshi.gif
は、はい……。

【 コンストラクタの中身を解説じゃ! 】

sisyo.gif
さて。まずはこれがMyCharaクラスのコンストラクタの内容であったな。

vb2009-l01.JPG

deshi.gif
はい。

sisyo.gif
まず、これからじゃ。

Handle = LoadGraph("mychara.png")

sisyo.gif
これは特に難しいことはなかろう。LoadGraph関数で自機の画像を読み込み、そのハンドルを、Handleプロパティに設定しているのじゃ。こうすることで、スプライトで画像を表示させることができるのじゃ。

deshi.gif
ふむふむ。

sisyo.gif
そして続いてはこれじゃ。

X = SCREEN_X + SCREEN_W / 2
Y = SCREEN_Y + SCREEN_H -48

deshi.gif
確か、XプロパティとYプロパティは、スプライトの位置を表すプロパティでしたっけ。つまり、そのスプライトの位置を設定しているわけですか。

sisyo.gif
うむ。そして、定数SCREEN_X、SCREEN_Yは、ゲーム画面の位置、そしてSCREEN_Wはゲーム画面の幅、SCREEN_Hはゲーム画面のの高さを表しているのであったな。つまり、横位置を、画面の左端から画面の幅の半分、つまり画面の中央。そして縦位置を、画面の下端から上に48ドットのところに設定しているわけじゃ。この48というのは、自機の高さじゃ。
つまり、こういうことじゃな。

vb2010-02.jpg

deshi.gif
なるほど。そして次の

Revise = DTRUE
※リストではRevise = DFALSEとなっていましたが、Revise=DTRUEが正解です。申し訳ありません。

deshi.gif
ですが……Reviseプロパティってなn

sisyo.gif
はぁっ!!(飛び蹴り

deshi.gif
うわぁっ。

sisyo.gif
おぬしの記憶力はノミ以下なのか。たわけが。
Reviseプロパティは、スプライトが画面の端にはみ出るかどうかを表すプロパティじゃ。
DTRUEならはみださないようにする、DFALSEならはみでるようにする、じゃ。
つまり、自機が画面から出ないように設定しているわけじゃ。さすがに自機が画面からはみ出たら困るじゃろ?

deshi.gif
確かに。

sisyo.gif
それでは続いては、MyCharaModuleの内容について説明していくぞ!

【 モジュールの内容じゃ! 】

sisyo.gif
まずはこれが、MyCharaModuleモジュールの内容であったな。

vb2009-l02.JPG
vb2009-l03.JPG

deshi.gif
はい。

sisyo.gif
まずは、ここからじゃ。

Dim oMyChara As MyChara

Public Sub MyCharaCreate()
 oMyChara = New MyChara()
End Sub

deshi.gif
あ、これは俺でもわかりますよ。MyChara型の変数oMyCharaに、MyCharaクラスのインスタンスを入れているんですよね。

sisyo.gif
うむ。その通り。ここでは、自機を作っておるのじゃ。そして次は、この関数じゃ。

Public Function MyCharaExists() As Boolean
 If oMyChara IsNot Nothing Then
  Return True
 Else
  Return False
 End If
End Function

sisyo.gif
これは、自機が存在しているかどうかをチェックする関数じゃ。存在していればTrueを、存在していなければFalseを返す。なお、Booleanというのは、TrueかFalseの二つの値を扱う型じゃ。

deshi.gif
ふむふむ。

sisyo.gif
そして、この関数のポイントはなんといっても、このIsNot Nothingじゃろう。これは、左辺の中身があるかないかを判定する演算子のようなものじゃ。IsNot Nothingだったら、存在していればTrueを返す。存在していなければTrueを返すようにしたければ、Is Nothingを使えばよい。

deshi.gif
なるほど!

sisyo.gif
後は難しいことはないな。MyCharaMainサブルーチンの

If MyCharaExists() Then
 MyCharaMove()
 MyCharaDraw()
End If


sisyo.gif
この部分は、先ほどの関数で、oMyCharaの中に自機が入っていれば、MyCharaMove()、MyCharaDraw()の二つのサブルーチンを実行しているのだ。

deshi.gif
MyCharaDrawサブルーチンのoMyChara.Draw()はそのまま、oMyCharaを表示させているんですね。

sisyo.gif
うむ、その通りじゃ。さて次は、自機の移動をやっていこう、と思ったが、そろそろ時間のようじゃ。それは次回のお楽しみにまわすとする。次回も新しい関数が登場する予定だから、楽しみにしているがよい。

deshi.gif
はい!

sisyo.gif
それでは、今回はここまで。来月まで、もうすぐ冬ということを忘れて頑張るがよい。

deshi.gif
師匠、だからそれは現実逃避です。



※次の更新は、『スマホでナンプレ!2020』の予定です。お楽しみに!


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

2020年10月12日

師匠TのチャレンジARSゲーム!~第弐拾四回:はーりぃふぉっくす【1985年・マイクロキャビン】(その2)

うむ! 師匠Tである!

今回のチャレンジ!ARSゲームも、前回と引き続き、マイクロキャビンの名作『は~りぃふぉっくす』を攻略していくぞ。
果たしてこの先にはどんな冒険が待っておるのじゃろうか?

それでは、さっそく挑むとしようぞ。

【 本編 】

ars2010-01.JPG
森に入っていきなり、人間と出会ってしまった! いくらなんでも人間には勝てぬ。
ぬぬ? そういえば、お尻に見えてるあれは……?

ars2010-02.JPG
タバコを吸ってるおかしな猿がおるぞ。彼は何か知っておるじゃろうか?

ars2010-03.JPG
ぎゃー! 今度はクマじゃ!
一体どうすればいいのか……。

ars2010-04.JPG
林にやってきたぞ。この骨は何かに使えるか?

ars2010-05.JPG
こ、怖そうな犬がおるぞ……がくぶる。でも先に進まなくては……。
ん? 犬といえば……。

ars2010-06.JPG
今度は白蛇がおるな。むむ? そういえば、蛇は神の遣いという伝説を聞いたことがあるような。


次回に続くのじゃ!!


※次の更新は、師匠のVB.NETどたばた塾の予定です。お楽しみに!

posted by 裏編 at 09:14| Comment(0) | チャレンジARS | 更新情報をチェックする

2020年10月05日

真・移植テクニックマスター大作戦「色々な言語でHello World!」

sisyo.gif
師匠T:うむ! 師匠Tである!

ideshia.gif
妹弟子A:うしうしっ。 妹弟子Aですっ。

sisyo.gif
さて、世の中には、色々なプログラミング言語が存在しておるの。

ideshia.gif
はい、そうですね。

sisyo.gif
それはいわば、パソコンの方言のようなもので、同じことをするにしても、言語が変われば、当然、書き方も変わってくる。そこでじゃ。

ideshia.gif
は、はいっ。うしうしっ。

sisyo.gif
今回は、色々な言語での、Hello Worldを表示させるプログラムを見て行こうと思う。

ideshia.gif
はいっ。それでは見ていきましょー

99BASIC、N88互換BASIC

sisyo.gif
それではまず、旧機種のBASICに近い、99BASICとN88互換BASIC For Windowについてみてみるとしようぞ。

ideshia.gif
確か、PRINT文を使うんでしたっけ?

sisyo.gif
うむ、その通りじゃ。よく覚えておったの。
そこで、これら二つの言語の場合は、こう書くわけじゃ。

--------------------------
100 PRINT "Hello World"
--------------------------

sisyo.gif
なお、99BASICで行番号を省略した場合、打ち終えて、ENTERキーを押した時点で、そのまま実行される。

ideshia.gif
うしっ。 なるほどっ。

Visual Basic

sisyo.gif
続いてはVisualBasicじゃが、VisualBasicでは、フォームに配置した、テキストボックスや、ラベルなどに表示するのであったな。

ideshia.gif
はいっ。

sisyo.gif
さて、6.0のころは、テキストボックスはTextプロパティ、ラベルはCaptionプロパティと、表示させる内容を設定させるプロパティはまちまちであったが、.NETになってからは、Textプロパティで統一された。

ideshia.gif
それは嬉しい進化ですねっ。

sisyo.gif
うむ。なので、例えばLabel1というラベルに表示させたいなら……

----------------------------
Label1.Text="Hello World"
----------------------------

sisyo.gif
こう書けばいいわけじゃ。

ideshia.gif
そういえば、MsgBoxもありましたよね。

sisyo.gif
おぉ、そうじゃ。よく覚えておったの。
VisualBasicには、簡単にダイアログボックスを表示させることのできるMsgBox命令もある。その場合は、こう書くのじゃ。

---------------------------
MsgBox ("Hello World")
---------------------------

HSPとなでしこ

sisyo.gif
さて、最後はHSPとなでしこじゃ。まずはHSPからいくぞ。
HSPでは、フォームへの表示は、mes命令を使う。

-------------------
mes "Hello World"
-------------------

sisyo.gif
さて、なでしこでは、表示させる方法はいくつかあったな。
覚えておるか?

ideshia.gif
は、はいっ。まずは、言う、ですよね。

-------------------------
「Hello World」と、言う。
-------------------------

sisyo.gif
うむ、その通り。「言う」は、VisualBasicのMsgBoxと同じように、ダイアログボックスを表示させる命令であったな。次は?

ideshia.gif
は、はいっ。「表示」ですっ。 これは、ウィンドウに表示されるんですよね。

------------------------------
「Hello World」と、表示する。
------------------------------

sisyo.gif
うむ、その通りじゃ。
どうじゃ? 同じHello Worldと表示させる命令でも、言語によって色々と違うじゃろう。

ideshia.gif
うしっ、そうですね。

sisyo.gif
移植には、このような書き方の違いをうまく把握して、活かすことが必要じゃ。
精進せよ。

ideshia.gif
う、うしっ。

sisyo.gif
それでは、今回の真・移植テクニックマスター大作戦はこれまで。
いつかまた会おうぞ。

ideshia.gif
うしっ。 また会いましょうー



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

2020年09月28日

反射させて、先へ進め! 『RayTrace2』

free2009-00.JPG
※ここに掲載されているスクリーンショットの二次使用を禁じます

 いきなり言おう。 今回紹介するRAYTRACE2は、シンプルながらも、難しく奥が深いパズルゲームなのだっ!

What is this Game?

 さて、これが、RAYTRACE2のゲーム画面である。

free2009-01.JPG

 ゲームの説明は、画面の下に書いてあるのが親切なところだ。
 さて、左のクリスタルのようなものから出ているのはレーザー光線。これで、画面の各所にある爆弾を破壊するのだが、どうするかというと、ミラーを設置して、レーザーを反射し、爆弾に当てて破壊していくのだ。

free2009-02.JPG
▲ ミラーでレーザーを反射し、爆弾を破壊せよ!

 ミラーはいつでも何回でも回転させることができ、それによって光の反射する角度も変えることができる。
 それで、爆弾を破壊していき、最後に光線をゴールに当てれば、一面クリアである。
 ルールはこれだけとシンプルなのだが、決して簡単というわけでもない。それはこれから説明していく。

Caution!

 それは、障害物である。レーザーはミラーで反射させることができるが、さすがに障害物を貫通することはできない。レーザーは決して万能ではないのだ。ゆえに、障害物の陰になるボムには当てることはできない。

free2009-03.JPG
▲ この場合、ステージ真ん中の壁にさえぎられるため、その上の爆弾(赤丸をつけたもの)に当てることができない!

 なので、うまくミラーの設置位置や角度を考えてミラーを設置する必要があるのだ。
 また、うまく配置しないとハマル面もあるので注意だ! ましてや、時間制限や配置できるミラーの数にも制限もあるとなれば、パズル性は抜群である

Big Volume!

 また、このRAYTRACEは、4つのステージセットがあり、一杯楽しめる。
 さらに、自分でステージを作ることも可能なので、楽しみ方は一杯広がるというものだ。

free2009-04.JPG
▲ 4つのステージセットがあって、一杯楽しめる!

 このように、シンプルさ、パズル性、ボリューム、三拍子そろったRayTrace2、いかがだろうか?
 パズル好きにぜひお勧めしたい一本だ。

 また、このRayTrace2は波多野電気 氏の手によるもので、こちらからダウンロードすることができる。



※次の更新は、特集『真・移植テクニックマスター大作戦「色々な言語でHello World!」』の予定です。お楽しみに!

posted by 裏編 at 13:15| Comment(0) | その他のゲーム情報 | 更新情報をチェックする

2020年09月23日

師匠TのチャレンジARSゲーム!~第弐拾四回:はーりぃふぉっくす【1985年・マイクロキャビン】

ars2009-00.JPG
※この記事に使われてる画像は、問題があれば削除いたします
※この画像の著作権は、開発元のマイクロキャビン 様にあります。この画像の二次使用を禁じます。

うむ! 師匠Tである!
今回チャレンジするのは、マイクロキャビンというメーカーが作った、『はーりぃふぉっくす』というAVGじゃ!
ほとんどのキャラが動物という、ほんわかした雰囲気だが、謎は解きがいのある作品じゃぞ。

今回はこの名作を、数回にわたってチャレンジしていこうと思う!

それでは!

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

【 プロローグ 】

ロムスの森にとても仲のいい親子狐が住んでいました。
しかしある時、子ぎつねはロムス病という難病にかかってしまったのです。

『ロムス病はリール神社にある油揚げを食べさせれば治る』

おばあさん狐から聞いた言葉を思い出した母狐は、子狐を助けるために旅立ったのです。

【 本編 】

ars2009-01.JPG
旅立ってすぐに出会ったのはリスじゃ。情報収集はこの手のゲームの基本じゃぞ!

ars2009-02.JPG
木に何やら貼っておるな。何かの役の立つかもしれんのう。

ars2009-03.JPG
ぎゃー! 猪じゃ! わしならこの程度の猪は簡単に倒せるが、我が流派を教わっていない母狐にはそれは無理なこと。
ここは触らぬ神に……。

ars2009-04.JPG
お地蔵さんが立っておるの。特にここではすることはないが……?

ars2009-05.JPG
うさぎと出くわしたぞ。彼からも話を聞いてみようぞ。

ars2009-06.JPG
沼に行く手を遮られて進めぬ。どうしたらいいのか……。
むむ、これと似た景色を、先ほどどこかで……。

ars2009-07.JPG
沼を超えると、今度はたぬきに出くわした。
話を聞くと、色々なことを教えてくれるが……?

ars2009-08.JPG
またお地蔵さんがあるぞ。
しかし、この胸に書かれているものは、何を意味しておるのか……?



次回に続くのじゃ!!


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


posted by 裏編 at 12:37| Comment(0) | チャレンジARS | 更新情報をチェックする