Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/07/05 22:16:21

MixJuice GET URL : kidspod.club/mj/508

Rough Drivin'

最高速でぶっ飛ばせ!って感じの荒っぽい3D(?)ドライブゲームです。

操作は左右キー。スペースキーがアクセルです。
ブレーキなんてありません!

タイムが0になる前に距離(D)100 走ると次ステージにいけます。
このとき、画面がフラッシュしてタイム加算します。残っているタイム分ちょっとボーナスタイムも加算されます。

VIDEO 3のときって、画面のメモリ4分の1しか使ってないっぽいので、残り4分の3のところ使えるんじゃないの?と思って試したら使えました。
ここを使って、画面の表示切替を速くしています。
プログラムで言うと、行番号30から80のところであらかじめ道路のパターン(左急カーブ、左カーブ、直線、右カーブ、右急カーブの5パターン)を描いて、使っていないメモリのところにコピーしています。
これを行番号170のところで使っています。
「A=16*(T%2)」では、わざと画面をちらつかせるようにしています。スピード感を出したかったんです。

VIDEO 3の大きな文字の画面なので、もとに戻すときは VIDEO 1(F8キー)で戻してください。
行番号60のスペースは9個です。

けっこう楽しいゲームなのでやってみてください!

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

SOURCE CODE

10 'Rough Drivin'
20 CLV:VIDEO 3
30 FOR I=0 TO 4:CLS:BEEP 100
40 FOR C=0 TO 111:PRINT CHR$(#8D-C/10+RND(3));:NEXT
50 Z=30:FOR J=9 TO 3 STEP -1
60 LOCATE Z/10,J-3:PRINT "-";STR$("         ",J);"-";
70 Z=Z+5+(I-2)*5:NEXT
80 COPY #9C0+I*112,#900,112:NEXT
90 'Main
100 CLS:X=70:H=2:S=20:T=700
110 G=G+1:LOCATE 0,1:PRINT "STAGE ";G;:VIDEO 4:BEEP 4,30
120 T=T+400+T/5:D=0:WAIT 20:VIDEO 3
130 D=D+S/10:W=W+S/30
140 IF W<200 THEN GOTO 170 
150 W=0:R=RND(3)-1
160 H=H+R+(H+R<0)*2-((H+R)>4)*2
170 A=16*(T%2):COPY #940,#9C0+H*112+A,112-A
180 B=BTN(SPACE):S=S+B-(1-B)*2*(S>20):BEEP (274-S)*(S<274)+1
190 V=(BTN(RIGHT)-BTN(LEFT))*500-(H-2)*S*2
200 X=X+V/100
210 POKE #9A0+X/10,#86,#8F,#89
220 T=T-1:LOCATE 0,0:PRINT "TIME:";T;" D:";(G-1)*100+D/100;" ";
230 LOCATE 5,11:PRINT S;"Km/h ";
240 IF D>10000 THEN GOTO 110
250 IF T=0 THEN GOTO 280
260 IF X/10>2 AND X/10<12 THEN GOTO 130
270 SCROLL 0:WAIT 4:SCROLL 2:WAIT 4:S=S-S/3*(S>30):GOTO 130
280 LOCATE 3,5:PRINT "GAME  OVER";:WAIT 120
290 IF BTN(SPACE)=0 THEN CONT 
300 GOTO 20

COMMENT

Kidspod運営チーム
Kidspod運営チーム2018/07/06 18:00:21

カーブに来たときの慣性がすごい! スピードを上げながらも何とか沿道に出てしまわないように制御するのが最高にスリリングで楽しいです! ステージ切り替えの演出もかっこよくて、スピードを追い求めたくなりますね。VIDEO3で使っていない画面のメモリを利用するという、プログラム上のアイデアもすごい!