ブロック崩し③ 【HSP3】

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


前回はバーをカーソルで動かしてみました。今回はボールを動かしてみます。サンプルコードですが、ボールとバーの当たり判定は今回は説明しないため、バー処理部分は省略させてもらいました。

●使用関数・命令
screen  circle repeat cls stick if

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
;***********************************************
;                     定数設定
;***********************************************
#define WINDOW_TITLE "ブロック崩し" ;windowタイトル
#define WINDOW_X_SIZE 300   ;window横幅
#define WINDOW_Y_SIZE 400   ;window縦幅

#define BALL_SIZE 20         ;ボール幅
;***********************************************
;             変数設定(デフォルト設定)
;***********************************************

ballX      = 140                ;ボール横座標(左上位置)
ballY      = 341                ;ボール座標(左上位置)
ballSpeedX = 7                ;ボールの横スピード
ballSpeedY = -7               ;ボールの縦スピード
;■windowの設定
screen 0,WINDOW_X_SIZE,WINDOW_Y_SIZE

title  WINDOW_TITLE
;■メイン処理
*main
repeat
    cls
    gosub *ball_move
    await 50
loop
stop
;■ボール動作
*ball_move
 color 255,0,0
 circle ballX, ballY, ballX+BALL_SIZE, ballY+BALL_SIZE
 ballX = ballX + ballSpeedX
 ballY = ballY + ballSpeedY
 ;左端
 if ballX <= 0 {
  ballX = 0 : ballSpeedX = -ballSpeedX
    }
 ;右端
 if ballX >= ginfo_winx - BALL_SIZE {
  ballX = ginfo_winx - BALL_SIZE
  ballSpeedX = -ballSpeedX
    }
 ;上端
 if ballY <= 0 {
  ballY = 0 : ballSpeedY = -ballSpeedY
    }
 ;下端
 if ballY >= ginfo_winy - BALL_SIZE {
  ballY = ginfo_winy - BALL_SIZE
  ballSpeedY = -ballSpeedY
    }
return

 

ボールも動く基本はバーと同じです。ボールを囲む矩形の左上の座標を( ballX,ballY )と変数にしました。ボールの初期値は11行目と12行目で指定しています。29行目:ボールは図形の円を描く「circle」命令で描いています。ボールのサイズは定数「BALL_SIZE」にしており変更しやすくしています。
30行目でボールの横移動させています。「ballSpeedX」が座標の増減量です。変数ballXの値を増減することにより横移動しているようにみえます。31行目で縦移動させています。「ballSpeedY」が増減量で、変数ballYの値を増減することよにより縦移動しているようにみえます。32行目から49行目までは端に達したときの処理を行なっています。基本はバーを動かすときと同じですが、横移動量「ballSpeedX」と縦移動量「ballSpeedY」の符号を反転させる制御が追加されています。反転させることにより進む方向が逆になります。例えば座標が増え続けていった場合、反転することにより今度は座標が減り続けるようになるわけです。

  
 


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

コメントをどうぞ

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