スポンサードリンク
« »


ブロック崩し④ 【HSP3】

2009 年 3 月 6 日 金曜日  【 カテゴリー: HSP3 , ゲーム作成


前回はボールの移動についてみました。今回はバーとボールの当たり判定についてみていきます。また、ボールが下端に達したら「GAME OVER」を表示してみます。

●使用関数・命令
screen  circle boxf repeat cls stick if await  gosub
●全ソース
bb_sample01.txt

1.
2.
3.
4.
10.
11.
12.
13.
21.
22.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
47.
48.
49.
50.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
;***********************************************
;                     定数設定
;***********************************************
  省略
;***********************************************
;             変数設定(デフォルト設定)
;***********************************************
  省略

;■windowの設定
  省略

;■メイン処理
*main
repeat
    cls
    gosub *bar_operation
    gosub *ball_move
    gosub *hit_judgment
    await 50
    loop
stop
;■バー操作
*bar_operation
  省略
return
;■ボール動作
*ball_move
    省略 
     ;下端(ゲームオーバー処理)
     if ballY >= ginfo_winy - BALL_SIZE {
          pos 70,150
          font "MS ゴシック",30
          mes "GAME OVER"
          stop
    }
return
;■当たり判定処理
*hit_judgment
 if (barX+BAR_X_SIZE) > ballX AND barX < (ballX+BALL_SIZE) AND (barY+BAR_Y_SIZE) > ballY AND barY < (ballY+BALL_SIZE){
      ballSpeedY = -ballSpeedY
  }
return

 
 ボールは円ですが、当たり判定処理がやりやすいように円を囲む矩形として処理しています。バーも矩形ですので、矩形と矩形の当たり判定になります。矩形同士の当たり判定の方法は「当たり判定(矩形と矩形)」に詳しく書きましたのでこちらを参考にしてください。今回は当たり判定処理もサブルーチン「*hit_judgment」としました。77行目が当たり判定条件です。条件を満たせば78行目で縦方向の座標増減量の符号を逆にしています。Y座標が増え続けて下移動していたのが「当たり判定」により増減量の符号が変わりY座標が減り続け上移動になります。

ブロック崩し③では68行目からのボールが下端に達したときの処理は次のようにしていました。
 ;下端
 if ballY >= ginfo_winy - BALL_SIZE {
     ballY = ginfo_winy - BALL_SIZE
     ballSpeedY = -ballSpeedY
 }
この処理は下端をはみ出した分は下端ちょうどになるように座標を修正し、そしてY座標の増減量の符号を逆にしています。つまり「今回の当たり判定」と同様、ボールをはね返しています。ブロック崩しはボールが下端に達したら「GAME OVER」なのでその処理へ変更します。
「GAME OVER」という文字を表示して「stop」命令でプログラムを終了させています。「font」命令でフォントの種類とサイズを指定しました。
 


にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2009 年 3 月 6 日 金曜日  【 カテゴリー: HSP3 , ゲーム作成

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。





デジもの通販