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

2021/03/18 22:36:56

MixJuice GET URL : kidspod.club/mj/2059

Wire Climber (BASIC版)

★★★ IchigoJam R 向けのプログラムです ★★★

※IchigoJam でも動かなくはないですが、動作速度が非常に遅いです。

伸び縮みするワイヤーを駆使して上方向に進んでいくアクションゲームです。
主人公はカーソルキーの[↑]で真上に、[←][→]で斜め45度にワイヤーを射出します。
ワイヤーの先端を画面内のバーにひっかけて、反動を利用して進んでいきます。

画面左下にはスコアが表示されます。
主人公が画面下に落下してしまうとゲームオーバーです。

プログラムを実行すると、タイトル画面無しにいきなりゲームが始まりますので注意してください。

※電子工作マガジン2021年秋号の「マイコンBASICマガジン」コーナーに掲載されました

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

SOURCE CODE

NEW

1 '### "WIRE CLIMBER" DATA ###
2 Z=#C03:Y=#700:U=0
3 X=0:IF PEEK(Z)!=39 GOTO 9
4 X=X-1:W=PEEK(Z-X)
5 W=W-41-W/32*6:IF W<0 GOTO 8
6 V=V<<6+W:POKE Y,V>>(X*2&7)
7 Y=Y+(X&3<3):U=U^W:GOTO 4
8 IF U LIST PEEK(Z-3):END
9 Z=Z+PEEK(Z-1)+4:W=PEEK(Z-3)
10 IF W GOTO 3 ELSE LRUN 1
11 '1ZIUFmgP5mwcJ/eoSbVsw//Bx
12 '203eJC0k/41cI9VI0ks9JG0:A
13 ':FpRPmVI1hGui:Xk0V3841dI7
14 's6//Y9VEe4E62UdJ73oi6VvD2
15 '94E9tBfMqD2631cJ9ZHUQ7lAV
16 'c41cJ/QCzs1JjtyzZTzz/4LzE
17 'zzxJzzw0JTzxzpLzz

SAVE 0

NEW

10 '### "WIRE CLIMBER" MAIN ###
20 CLS:CLV:F=12:[5]=F:[11]=F
30 C="    (#E0)(#E1)(#E2)(#E3)(#E4)(#E5)(#E6)(#E7)(#E8)(#E9)(#EA)(#EB)":P=256
40 V=V*15/16:W=(W+4)*15/16
50 P=P+V:IF P<8 OR 487<P P=P-V
60 Q=Q+W:IF Q<96 GSB 210
70 FOR I=0 TO 23:X=[(I-S)&31]
80 IF X LC X,I:?"(#EC)(#ED)(#ED)(#ED)(#ED)(#ED)(#ED)(#EE)";
90 NEXT:B=BTN(-1)
100 IF !(B&D) D=0:L=0:U=0
110 IF U GSB 270 ELSE GSB 290
120 IF D DRAW P/8,Q/8,G/8,H/8
130 Y=(Q+8)/16:Z=(P-8)/16+Y*32
140 A=C+8+R*4:GSB 180:LC 0,23
150 ?S;:WAIT5:IF H>399 GOTO 400
160 IF D DRAW P/8,Q/8,G/8,H/8,0
170 A=C:GSB 180:GOTO 40
180 IF Y<25 LC Z-32:?STR$(A,2);
190 IF Y<24 LC Z:?STR$(A+2,2);
200 RTN
210 S=S+1:Q=Q+16:H=H+16
220 K=K-1:Z=-S&31:SCROLL 2
230 IF K>0 [Z]=0:RTN
240 X=S/24:F=F+RND(X*2+1)-X
250 IF F<2 OR21<F F=(41-F)%20+2
260 [Z]=F:K=6+S/96:RTN
270 X=G-P:R=(X>32)-(X<-32)
280 V=V+X/4:W=W+(H-Q)/4:RTN
290 IF B=1 D=1:R=-1
300 IF B=2 D=2:R=1
310 IF B=4 D=4:R=0
320 IF !D G=P:H=Q:RTN
330 L=L+(L<4):G=P+L*R*18:X=G/16
340 Y=H/16:H=Q-L*(3+!R)*6
350 T=H/16:Z=T-Y:Z=(Z>0)-(Z<0)
360 Y=Y+Z:U=SCR(X,Y)>#EB
370 IF U H=Y*16+8:RTN
380 IF Y=T RTN
390 GOTO 360
400 BEEP:WAIT 60:?:CLK

SAVE 1

LRUN 0

COMMENT