• 締切済み

【行き詰まり】ブロック崩しゲーム作成【判定?】

初めまして。 今課題ということでVB.NETでブロック崩しを作成しているのですが、 作成途中で詰まってしまい、ここへ書き込みをしています。 ・ボール、ブロックの初期配置 ・壁とブロックの当たり判定 まで作ったところで、講師から「プロパティを用いてブロックへの当たり判定と消える判定フラグをまとめろ」と言われました。 VB初心者で使い方が判らず、あちこち調べて見ましたがどうにも糸口が掴めません。 どなたかご存知の方いましたら、御教授の程をお願いします。 ソースは後ほど添付します。 よろしくお願いします。 (環境はVisual Basic 2008 Express Editionです)

みんなの回答

  • KOBA789
  • ベストアンサー率0% (0/0)
回答No.2

>壁とブロックの当たり判定 壁と"ボール"の当たり判定ではないでしょうか? >プロパティを用いてブロックへの当たり判定と消える判定フラグをまとめろ プロパティを使って、ということは、構造体やクラスでブロックやボールなどのキャラクタなどを管理しろ。ということなのでしょうか? だとするならば、ブロックには消える判定フラグや座標、サイズ情報などを持った構造体を、ボールにはブロックへの当たり判定と壁との当たり判定フラグ、座標、大きさ情報などを持った構造体を使って管理することになるでしょう。 たとえばボールならこんなソースコードが書けるかもしれません。 Private Structure Ball Private _Rect As Rectangle Private _BallHit As Boolean Private _WallHit As Boolean Public Property Rect() As Rectangle Get Return _Rect End Get Set(ByVal value As Rectangle) _Rect = value End Set End Property Public Property BallHit() As Boolean Get Return _BallHit End Get Set(ByVal value As Boolean) _BallHit = value End Set End Property Public Property WallHit() As Boolean Get Return _WallHit End Get Set(ByVal value As Boolean) _WallHit = value End Set End Property End Structure 変数名は適当なので、コピペすると恥をかくかもしれません(汗 これくらいの簡単な構造体なら、いちいちプロパティを使って実装しなくてもいいのですが、とりあえずオブジェクト化に則って書いてみました。質問にも「プロパティを使って」とありますので。

noname#196225
noname#196225
回答No.1

ここでいう当たり判定とは、ボールとブロックがその瞬間接触するかを判定するのではなく、ブロックが一度でもボールと接触したかを判定するという意味でしょうか? なら、おそらく[ブロックのオブジェクト].Visibleプロパティを使って判定しなさいと言っているのでしょう。 ちなみにVisibleプロパティをfalseにすると、そのブロックは非表示となります。

関連するQ&A