mbasic吧 关注:19贴子:210
  • 2回复贴,共1

mobilebasic编写的“下一百层”-首发

只看楼主收藏回复


经过本人的断断续续的努力,用mobilebasic编写的小游戏——下一百层正式发布。
此次源代码也经过认真注释,希望看到的顶一顶。


IP属地:北京1楼2020-05-17 13:07回复
    1 rem 游戏基本介绍
    2 print "jumping game!"
    3 print "press left/right/down key!"
    4 print "QQ :1039022875"
    5 sleep 2134
    6 rem 初始化基本参数(界面宽高、活动对象等参数)
    7 H=SCREENHEIGHT(0):W=SCREENWIDTH(0)
    8 IF H<=W THEN A=H
    9 IF H>=W THEN A=W
    10 CNT%=0:B%=A/4:C%=A/16:CBX%=6:CBY%=6
    11 DIM W%(17):DIM H%(16):REM 定义石块数据(横纵坐标)
    12 FOR E%=0 TO 15
    13 WD%=RND(0):X%=13:R%=ABS(MOD(WD%,X%))
    14 W%(E%)=R%:H%(E%)=E%
    15 NEXT E%
    16 W%(16)=16:rem 设置石块间距
    17 FOR L%=0 TO 15
    18 IF MOD(L%,2)<>1 THEN W%(L%)=16
    19 NEXT L%
    20 rem 绘制界面及游戏对象
    21 CLS
    22 SETCOLOR 255,0,0
    23 FILLRECT 0,0,W,H
    24 SETCOLOR 255,255,255
    25 FILLRECT 0,0,A,A
    26 REM 绘制活动对象和石块
    27 SETCOLOR 0,0,255
    28 FILLRECT CBX%*C%,CBY%*C%,C%,C%
    29 SETCOLOR 0,255,0
    16 FOR N%=6 TO 15
    31 IF W%(N%)<>16 THEN FILLRECT W%(N%)*C%,H%(N%)*C%,B%,C%
    32 NEXT N%
    33 GOTO 45
    44 rem 捕获输入参数
    45 KT%=0:DT%=0
    46 REM:保存输入
    47 IF LEFT(0) AND CBX%>0 THEN DT%=-1
    48 IF RIGHT(0) AND CBX%<15 THEN DT%=1
    49 IF DOWN(0) THEN GOTO 58
    50 KT%=KT%+1
    51 NCBX%=CBX%:NCBY%=CBY%
    52 IF DT%<0 AND CBX%>0 AND (CBX%-W%(CBY%)<>4) THEN NCBX%= NCBX%+DT%:REM 对象向左移动
    53 IF DT%>0 AND CBX%<15 AND (CBX%+1<W%(CBY%)) THEN NCBX%= NCBX%+DT%:REM 对象向右移动
    54 GOSUB 102:REM 重绘对象
    55 CBX%=NCBX%:CBY%=NCBY%
    56 GAP%=120-CNT%:SLEEP GAP%:IF KT%<=4 THEN GOTO 46
    57 rem 对象向下移动
    58 SUPERPOSE%=0:REM 计算对象和石块接触状态
    59 BOUND%=CBX%-W%(CBY%+1)
    62 IF BOUND%>=0 AND BOUND%<=3 THEN SUPERPOSE%=1
    63 IF SUPERPOSE%<>0 THEN GOTO 72:REM 对象与石块上下接触,无法下落
    64 IF SUPERPOSE%<>1 AND CBY%>=15 THEN GOTO 101:REM 对象触底,结束
    65 NCBX%=CBX%:NCBY%=CBY%+1:REM 对象下移并绘制
    67 GOSUB 102
    68 CBX%=NCBX%:CBY%=NCBY%
    69 GOTO 71
    71 REM 石块上升,更新数据
    72 IF SUPERPOSE%<>0 AND CBY%<1 THEN GOTO 101:REM 对象触顶,结束
    74 CNT%=CNT%+1:IF CNT%>=100 THEN GOTO 100:REM 完成任务,结束
    75 FOR N%=0 TO 14
    76 W%(N%)=W%(N%+1)
    77 NEXT N%
    78 IF W%(14)<>16 THEN W%(15)=16:REM 完成石块上升,并添加新石块数据
    79 IF W%(14)>=16 THEN WD%=RND(0):X%=13:R%=ABS(MOD(WD%,X%)):W%(15)=R%
    80
    81 IF SUPERPOSE%<>1 THEN NCBX%=CBX%:NCBY%=CBY%:GOTO 85
    82 IF SUPERPOSE%<>0 THEN NCBX%=CBX%:NCBY%=CBY%-1:REM 石块上升,判断对象更新
    83
    84 REM 重绘界面
    85 GOSUB 105:REM 擦除旧石块和对象
    86 GOSUB 102:REM 重绘对象
    87 CBX%=NCBX%:CBY%=NCBY%
    88 GOSUB 106:REM 重绘石块
    89 GOTO 45:REM 再进入输入状态,循环
    99 REM 渲染,屏幕输出
    100 PRINT "congratulation!":END
    101 PRINT "game over":END
    102 SETCOLOR 255,255,255:FILLRECT CBX%*C%,CBY%*C%,C%,C%
    103 SETCOLOR 0,0,255:FILLRECT NCBX%*C%,NCBY%*C%,C%,C%
    104 RETURN
    105 SETCOLOR 255,255,255:FILLRECT 0,0,A,A:RETURN
    106 SETCOLOR 0,255,0
    107 FOR N%=0 TO 15
    108 IF W%(N%)<16 THEN FILLRECT W%(N%)*C%,H%(N%)*C%,B%,C%
    109 NEXT N%
    110 RETURN


    IP属地:北京2楼2020-05-17 13:09
    回复
      大家可以从以下链接下载我打包好的100ceng.jar
      链接: https://pan.baidu.com/s/1-WED3oxbsfZssKW98vNExg 提取码: ityj


      IP属地:北京3楼2020-05-17 13:14
      回复