クロスロード
●遊び方
>ルール
ここはあなたの街の主要幹線道路。
なぜだかこの道路を渡り反対側へボールを運ぶ事になりました。
画面下の「●」をカーソルキーの「UP」「DOWN」を操作し
車に衝突させる事無く画面上へ運んで下さい。ボールは千鳥に
動きます。車のスピード、ボールの動き、タイミングよく
キー操作し運んで下さい。10点超える毎に車のスピードが
早くなります。30点以上はスピードの変化はありません。
>キー操作
カーソルUP → ボールが上へ
カーソルDOWN → ボールが下へ
>その他
キャラクターの勉強で作ってみました。(まだ完全にマスター
できていませんが。。。)
●プログラムについて
行番号5から180をSAVE1
行番号300から580をSAVE2
行番号600から670をSAVE3
にそれぞれ保存しSAVE1からRUNして下さい。
●変数
A=LEFT_CAR1 X軸
B=LEFT_CAR1 Y軸
C=LEFT_CAR2 X軸
D=LEFT_CAR2 Y軸
E=RIGHT_CAR1 X軸
F=RIGHT_CAR1 Y軸
G=RIGHT_CAR2 X軸
H=RIGHT_CAR2 Y軸
I=BALL X軸
J=BALL Y軸
K=SCORE
L=NOKORI
M=INKEY
N=ROAD PATTERN UE,SHITA X軸
O=ROAD PATTERN CENTER 繰返し
P=ROAD PATTERN CENTER X軸
Q=CAR速度 WAIT
●プログラムの説明
SAVE1
10 画面クリア、全変数クリア、全変数ゼロ、各変数初期設定
20 車のパターン作成
30 SAVE3へ(道路パターン表示)
40 キー入力
50-60 キーが押された時の判断
70 画面下へボールが消えないための処理
80-90 ボールの千鳥を作成
100 SAVE2へ(あたり判定)
110 渡り切った時の処理
120-150 車が画面から消えた時に初期位置に戻す処理
160 SAVE2へ(車を走らせる)
170 GAME OVER時にスコアとボール残数を表示
180 プログラム終了
(SAVE1にENDをおくと引続きRUNのみでリトライできる)
SAVE2
310 ボール表示
320-350 車表示
360 スコア、ボール残数表示
370 ボール消去
380-410 車消去
420 各車の動き
430-460 車が画面から消えた時の処理
470 ボールが画面上から消えた時の処理
510-540 ボールのあたり判定
550 メインループに戻す
560 ボールが車と衝突した時の処理
570 GAME OVERかどうか判定
580 GAME OVER処理
SAVE3
610 画面クリア、中央線の変数初期化
620-630 上下のライン表示
640-650 センターライン表示
660 10点、20点、30点で車の速度を変更
670 メインループに戻す
5'cross road P1 10 CLS:CLP:CLV:A=28:B=4:C=28:D=8:E=3:F=16:G=3:H=20:I=16:J=24:L=3:Q=30 20 POKE #700,3,7,6,12,12,12,12,12,255,255,60,24,24,24,24,24,192,224,96,48,48,48,48,48,31,63,127,225,204,222,222,12,255,255,255,255,255,255,255,0,248,252,254,135,51,123,123,48 30 LRUN 3,600 40 M=INKEY() 50 IF M=30 THEN CLK:J=J-4 60 IF M=31 THEN CLK:J=J+4 70 IF J>24 THEN J=24 80 IF J=20 OR J=12 OR J=4 THEN I=12 90 IF J=24 OR J=16 OR J=8 OR J=0 THEN I=16 100 IF J=20 OR J=16 OR J=8 OR J=4 THEN LRUN 2,500 110 IF J=0 THEN LC 12,12:PRINT "GOOD!!":BEEP 3,10:WAIT 12:BEEP 3,30:WAIT 70:K=K+1:LRUN 2,470 120 IF A<1 THEN LRUN 2,430 130 IF C<1 THEN LRUN 2,440 140 IF E>29 THEN LRUN 2,450 150 IF G>29 THEN LRUN 2,460 160 LRUN 2,300 170 LC 1,0:PRINT "SCORE=",K:LC 23,0:PRINT "BALL=",L;:LC 0,14 180 END 300 'cross road P2 310 LC I,J:?CHR$(#E9); 320 LC A,B:?CHR$(#E0,#E1,#E2);:LC A,B+1:?CHR$(#E3,#E4,#E5); 330 LC C,D:?CHR$(#E0,#E1,#E2);:LC C,D+1:?CHR$(#E3,#E4,#E5); 340 LC E,F:?CHR$(#E0,#E1,#E2);:LC E,F+1:?CHR$(#E3,#E4,#E5); 350 LC G,H:?CHR$(#E0,#E1,#E2);:LC G,H+1:?CHR$(#E3,#E4,#E5); 360 LC 1,0:PRINT "SCORE=",K:LC 23,0:PRINT "BALL=",L;:WAIT Q 370 LC I,J:PRINT" "; 380 LC A,B:?" ";:LC A,B+1:?" "; 390 LC C,D:?" ";:LC C,D+1:?" "; 400 LC E,F:?" ";:LC E,F+1:?" "; 410 LC G,H:?" ";:LC G,H+1:?" "; 420 A=A-RND(4):C=C-RND(4):E=E+RND(4):G=G+RND(4):LRUN 1,40 430 A=29:LRUN 1,40 440 C=29:LRUN 1,40 450 E=-3:LRUN 1,40 460 G=-3:LRUN 1,40 470 J=24:LRUN 3,600 500 'ATARI HANTEI 510 IF J=20 AND G>=9 AND G<=11 THEN GOTO 560 520 IF J=16 AND E>=14 AND E<=16 THEN GOTO 560 530 IF J=8 AND C>=14 AND C<=16 THEN GOTO 560 540 IF J=4 AND A>=9 AND A<=11 THEN GOTO 560 550 LRUN 1,120 560 LC I,J:PRINT CHR$(244):BEEP 50,50:WAIT 50:L=L-1 570 IF L!=0 THEN GOTO 470 580 LC 11,12:PRINT "GAME OVER":LRUN 1,170 600 'cross road P3 610 CLS:P=0 620 FOR N=0 TO 31 630 LC N,3:?CHR$(#91);:LC N,25:?CHR$(#91);:NEXT 640 FOR O=0 TO 14 650 P=P+2:LC P,13:?CHR$(#91);:NEXT 660 IF K=10 OR K=20 OR K=30 THEN Q=Q-10 670 LRUN 1,40
車がなかなか進んでくれないときなど、やきもきして楽しいですね。ボールが千鳥足になっているのも、面白さのひとつになってます。POKEで作った車もお見事! ちょっと処理が重いところを改善できるといいですね!