ONEKEY JUMPER by YOSSYREDS

再生

 タイトル通り1ボタンだけで操作する、シンプルなアクションゲーム。
 スタートするとプレイヤーは自動的に右に進んでいく。道には落とし穴が開いているので、タイミングよくAボタンでジャンプ!
 ジャンプ時、Aボタンを押し続けているとさらに飛距離の長い2段・3段ジャンプが使えるぞ。先に見える落とし穴との距離を計ってうまく使おう。
 穴に落ちるとゲームオーバー。この画面で十字ボタンを押すとBGMの変更ができる。特に右ボタンは高得点だが難しいハードモードに変更するボタンだ。STARTボタンでゲーム終了を選ぶこともできる。ただし……?

私が作りました

YOSSYREDS

20年前にうまくプログラムを組めなくて挫折したBASICをこの歳で再挑戦できることがとてもうれしく思います。
手始めに単純なワンキーゲームを作りましたので拙作を投稿させていただきます。


 CHECK POiNT 

神崎
反射神経が問われるタイプのゲームだね。ジャンプで飛ぶ距離と落とし穴との位置関係がわかるようになると、ぐっとスリリングになるよ。

博士
コンソール画面を使っていると8ドット単位でしか移動できないのがネックになるかの。これをそのままスプライトやBGで1ドット単位のスムーズ移動に書き換えてみるというのも面白そうじゃ。

ワンパク
オイ、シット! 上の説明に書いてあるゲームオーバー画面の操作が反映されねェぞ? ガッデム、ハイスコアもだぜ!

インテリ
おっと。これは104行以降で決定した変数が、5行目に戻ったことでゼロに戻されてしまったんだね。106行の飛び先を@SYOKIから@STARTにするだけで回避できるよ。

博士
ホッホッホ、送るときにテキストを書き間違えたかの? リスタート時に初期設定に戻すことで、大事な変数までリセットしてしまう……プログラムではありがちじゃな。

プログラムリスト

  1. ’бб ONEKEY JUMPER бб VER.1.1
  2. ’PROGRAMED BY YOSSYREDS
  3. ’LAST UPDATE  2011.3.22
  4. @SYOKI
  5. CLS:CLEAR:VISIBLE 1,1,0,0,0,0
  6. MS=0:HS=0:HD=0
  7. @START
  8. CLS
  9. Y=21:SC=0:LV=1
  10. LOCATE 18,0:COLOR 3
  11. PRINT”HI-SCORE:”;HS
  12. COLOR 13
  13. IF HD==1 THEN LV=5
  14. IF HD==1 THEN LOCATE 18,1:PRINT”HARD MODE”
  15. COLOR 0
  16. LOCATE 0,0:PRINT”SCORE:”;SC
  17. LOCATE 0,1:PRINT”LEVEL:”;LV
  18. LOCATE 2,21:PRINT”г”;
  19. COLOR 12-LV
  20. FOR I=0 TO 30
  21.  LOCATE I, 2:PRINT”В”;
  22.  LOCATE I,22:PRINT”В”;
  23.  LOCATE I,23:PRINT”В”;
  24. NEXT
  25. BGMPLAY 4
  26. COLOR 0
  27. LOCATE 13,11:PRINT”READY!”;
  28. FOR I=0 TO 150000:NEXT
  29. LOCATE 13,11:PRINT”      ”;
  30. WT=5000-HD*2000
  31. BGMPLAY MS
  32. @MAIN
  33. SC=SC+10+HD*10
  34. IF SC==LV*1000 AND LV<10 THEN LV=LV+1
  35. R=RND(12-LV)
  36. LOCATE 30,22
  37. IF R==0 THEN PRINT ” ”;
  38. FOR I=0 TO 30
  39.  CC=CHKCHR(I+1,22)
  40.  COLOR 12-LV
  41.  LOCATE I, 2:PRINT”В”;
  42.  LOCATE I,22
  43.  IF CC==32 THEN PRINT” ”;
  44.  IF CC!=32 THEN PRINT”В”;
  45.  LOCATE I,23
  46.  IF CC==32 THEN PRINT” ”;
  47.  IF CC!=32 THEN PRINT”В”;
  48. NEXT
  49. COLOR 0
  50. LOCATE 0,0:PRINT”SCORE:”;SC
  51. LOCATE 0,1:PRINT”LEVEL:”;LV
  52. KY=BUTTON()
  53. IF KY AND 1024 THEN GOSUB @PAUSE
  54. IF KY AND 16 THEN GOSUB @JMP
  55. IF Y==18 AND KY!=16 THEN Y1=1
  56. IF Y==15 AND KY!=16 THEN Y1=1
  57. IF Y==13 THEN Y1=1
  58. LOCATE 2,Y:PRINT” ”;
  59. Y=Y+Y1
  60. LOCATE 2,Y:PRINT”г”;
  61. IF Y==21 THEN Y1=0
  62. CC=CHKCHR(2,22)
  63. IF CC==32 AND Y==21 THEN @OVER
  64. FOR I=0 TO WT:NEXT
  65. GOTO @MAIN
  66. @PAUSE
  67. BEEP 3
  68. COLOR 0:LOCATE 13,11
  69. PRINT”PAUSE”
  70. FOR I=0 TO 30000:NEXT
  71. @PLOOP
  72. K=BUTTON()
  73. IF KY AND 1024 THEN GOSUB @PEND:RETURN
  74. GOTO @PLOOP
  75. @PEND
  76. BEEP 3
  77. FOR I=0 TO 20000:NEXT
  78. LOCATE 13,11:PRINT”     ”
  79. RETURN
  80. @JMP
  81. IF Y==21 THEN Y1=-1:BEEP 8
  82. IF Y==18 AND Y1==-1 THEN BEEP 8
  83. IF Y==15 AND Y1==-1 THEN BEEP 8
  84. RETURN
  85. @OVER
  86. LOCATE 2,21
  87. PRINT” ”;
  88. COLOR 13:LOCATE 2,23
  89. PRINT”г”;
  90. COLOR 0:LOCATE 11,10
  91. PRINT”GAME OVER”
  92. LOCATE 9,12
  93. PRINT”PRESS A BUTTON”
  94. BGMPLAY 6
  95. IF SC>HS THEN HS=SC
  96. FOR I=0 TO 30000:NEXT
  97. @BTN
  98. KY=BUTTON()
  99. IF KY AND 16 THEN @SYOKI
  100. IF KY AND 1024 THEN @GEND
  101. IF KY AND 1 THEN MS= 0:HD=0:GOSUB @BGMCHG
  102. IF KY AND 2 THEN MS=14:HD=0:GOSUB @BGMCHG
  103. IF KY AND 4 THEN MS=23:HD=0:GOSUB @BGMCHG
  104. IF KY AND 8 THEN MS=13:HD=1:GOSUB @BGMCHG
  105. GOTO @BTN
  106. @BGMCHG
  107. COLOR 3:LOCATE 10,14
  108. PRINT”BGM CHANGE!”
  109. COLOR 13:LOCATE 18,1
  110. IF HD==1 THEN PRINT”HARD MODE”
  111. IF HD!=1 THEN PRINT”         ”
  112. BGMPLAY MS
  113. FOR I=0 TO 50000:NEXT
  114. LOCATE 10,14:PRINT”           ”
  115. RETURN
  116. @GEND
  117. BGMSTOP:END