下の壁をとる

ここまで来たらゲームの大部分はできたも同然。とりあえず下の壁を表示していた箇所を取って、そして、下の壁で反射させていた部分を取ってしまって、ゲームの仕上げにかかろう。

#ref(): File not found: "dewall.png" at page "下の壁を取ってゲームを仕上げる"

100	CLS
110	'--- 壁を描く
120	LOCATE 19,1
130	PRINT "#########################################"
140	FOR I=2 to 22
150		LOCATE 19,I
160		PRINT "#                                       #"
170	NEXT I
180	'--- ボール座標 X,Y 移動方向 XM,YML
190	X=40:Y=10:XM=1:YM=1
200	'--- ラケットの座標 BX,BY 移動方向 BM
210	BX=38:BY=22:BM=0
220	'--- ボールの個数とスコアの表示
230	BALL=3:SCORE=0
240	LOCATE 20,0:PRINT "Score: ";SCORE
250	LOCATE 51,0:PRINT "Ball: ";BALL
260	'--- 最初のラケットの表示
270	LOCATE BX,BY:PRINT "==="
280	'--- メインループ 持ち球がある間はゲームが続く
290	WHILE BALL>0
300		'--- ボールを表示
310		LOCATE X,Y:PRINT "o"
320		'--- ボールとラケットの速度の調整
330		FOR I=0 TO 100
340			'--- 押されているキーを読み取る
350			K$=INKEY$
360			'--- 左右(,.)のキーが押されていたら移動方向をセットして *MOVE へ
370			IF K$="," AND BX>20 THEN BM=-1:GOSUB *MOVE
380			IF K$="." AND BX<56 THEN BM= 1:GOSUB *MOVE
390		NEXT I
400		'--- ラケットに当たったらボールの移動方向を反転
410		IF Y=BY-1 AND X=>BX-1 AND X<=BX+3 THEN YM=-YM:GOSUB *SCORE
420		'
430		'--- 上と左右の壁に当たったら移動方向を反転
440		IF Y= 2 THEN YM=-YM
450		IF X=20 OR X=58 THEN XM=-XM
460		'--- ボールを消す
470		LOCATE X,Y:PRINT " "
480		'--- ミスした
490		IF Y=BY+1 THEN GOSUB *MISS
500		'---次のボール座標を計算
510		X=X+XM:Y=Y+YM
520	WEND
530	LOCATE 34,12:PRINT "Game Over..."
540	END
550	'--- ラケットを表示するサブルーチン
560	*MOVE
570		'--- ラケットを消す
580		LOCATE BX,BY:PRINT "   "
590		'--- ラケットの座標を計算して表示
600		BX=BX+BM:BM=0
610		LOCATE BX,BY:PRINT "==="
620	RETURN
630	'--- ミスしたときのサブルーチン
640	*MISS
650		LOCATE 36,12:PRINT "Booo!!"
660		FOR I=0 to 10000:NEXT I
670		BALL=BALL-1
680		LOCATE 51,0:PRINT "Ball: ";BALL
690		Y=10:YM=-1
700		LOCATE 36,12:PRINT "      "
710	RETURN
720	'--- スコア表示
730	*SCORE
740		SCORE=SCORE+100
750		LOCATE 20,0:PRINT "Score: ";SCORE
760	RETURN

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS