「みんな教えて! 選手権!!」開催のお知らせ

初めまして。
今課題ということでVB.NETでブロック崩しを作成しているのですが、
作成途中で詰まってしまい、ここへ書き込みをしています。

・ボール、ブロックの初期配置
・壁とブロックの当たり判定

まで作ったところで、講師から「プロパティを用いてブロックへの当たり判定と消える判定フラグをまとめろ」と言われました。
VB初心者で使い方が判らず、あちこち調べて見ましたがどうにも糸口が掴めません。
どなたかご存知の方いましたら、御教授の程をお願いします。

ソースは後ほど添付します。
よろしくお願いします。

(環境はVisual Basic 2008 Express Editionです)

A 回答 (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
変数名は適当なので、コピペすると恥をかくかもしれません(汗
これくらいの簡単な構造体なら、いちいちプロパティを使って実装しなくてもいいのですが、とりあえずオブジェクト化に則って書いてみました。質問にも「プロパティを使って」とありますので。
    • good
    • 0

ここでいう当たり判定とは、ボールとブロックがその瞬間接触するかを判定するのではなく、ブロックが一度でもボールと接触したかを判定するという意味でしょうか?



なら、おそらく[ブロックのオブジェクト].Visibleプロパティを使って判定しなさいと言っているのでしょう。
ちなみにVisibleプロパティをfalseにすると、そのブロックは非表示となります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報