经典的俄罗斯小方块,这个小游戏的实现,用了不少时间,得有两天吧。期间中进行了各种试错,方块的旋转平移,边界检测,行的消除。
  期间遇到点问题,比如控制下落时间用的是WAIT()函数,但是会发现一个问题,在WAIT的时间段中,按键是没有任何响应的,是一个阻塞。也就是说,控制方块的变换和平移的按键在这个时间段按下的话,是没有任何反应的,而是等到WAIT时间段完成后,再去反应,这难免感觉有点卡顿,虽然不是真的卡顿。时间短会感觉不出来,如果等待1秒的话,卡顿感是很明显的。不得已用了一个FOR循环去替代WAIT函数,循环中检测按键值,如果没有按键按下,那继续循环,直到设置的循环次数。如果有按键按下直接跳出循环,进行方块平移和变换得到操作。虽然不太正规,但至少没有了卡顿感。

代码如下:(第281行)

FOR I FROM 1 TO 15000-t*130 DO
IF key≠-1 THEN BREAK;
ELSE
GETKEY►key;
END;
END;

代码中的15000是最高的循环次数,在模拟器中是没有问题的,如果到这真机上需要改成1500左右,这样不会等待很长时间再下落。

elluosi2.png
eluosi1.png
TETRIS.txt

标签: 图形计算器, 惠普HP 39gII, hp39gii, 俄罗斯方块, Tetris, 39gii 小游戏

已有 2 条评论

  1. fvan fvan

    能发布俄罗斯方块吗?

  2. XY XY

    能发布俄罗斯方块吗?

添加新评论