在我的朋友Uwu建议没有HTML5俄罗斯方块(我想过,但我仍然很感兴趣)之后,我开始考虑制作俄罗斯方块。 因此,我就像创建了所有好的项目一样,创建了一个目录并开始工作。
起初我以为使用画布的方法是可行的,不久我放弃了使用所有DOM元素都很好的图形制作图片的想法,我很高兴自己做到了,用画布来制作图形将是难度更大,尤其是在添加效果/样式时(因此,我尊重使用画布制作复杂的俄罗斯方块游戏的任何人)。
- 使15
- After Burner Climax Mod Apk + Obb数据[解锁/无广告] v0.0.6 Android
- Red Dead Redemption 2
- 灰姑娘自由落体
- 使用Swing UI在Java中创建斗牛游戏
因此,我们从这里开始:





经过大约10天的工作:

我没有实现一些常见的俄罗斯方块Hold头,例如T-Spins和Hold。 但是我添加了一些自己的东西:
- 清除一条线会使所有接触该条的零件变得独立且松动。
- 放置通电块时,所有放置的块都变得独立且松动。 此加电称为POW。 玩家以3开头,每20行清除赢得1。
- 清除多于4行会激活一个拣选器,使您可以拣选接下来4个片断的类型。
- 清除所有行会产生很大的影响。 大块看起来像常规块,但它们的块量是其两倍。
选件
- 显示/隐藏幽灵
- 启用/禁用音乐
- 启用/禁用声音效果
- 启用/禁用背景
- 行数
- 列数
- 预览数
- 块大小(像素)
- 数学随机种子
- 目标(得分,等级,分钟或无)
我学到了什么
我再次了解到制作视频游戏很有趣,因为在您的视野中制作出完整的体验是充满挑战和满足的。 在玩家完成大部分设计之后,很高兴收到反馈。
制作俄罗斯方块并不容易。 也许这是我决定控制零件和网格的方式,但是使所有零件表现出它们应该花几天的时间。 有时我会睡着一个大虫子,待第二天修复,这对我来说是罕见的,因为我想在上床睡觉之前感觉一切都已经完成。 即使一切似乎都完成了,但花了几分钟的时间才产生出更多可能的想法和问题,我试图在第二天就解决这些问题。
但是,是的,制作俄罗斯方块,至少是相当复杂的,并不容易,这对每个人来说都是一个很大的挑战,所以我鼓励人们自己做。 我的意思是,自从我能够在10天之内完成此任务后,这并不难,但是这需要大量的思考和反复。 同样,在画布上制作将更加困难。
异步操作(Promises,Await)似乎是一个好主意,易于处理,但是由于必须考虑状态是做还是不做,它们使开发变得更加困难。 删除了一个大型的基于Promise的函数,我意识到它并不需要真正异步,从而解决了我遇到的许多问题。 仍然有一些超时我必须处理,这些超时是不可避免的。 但是我认为Promise很棒,而且通常是工作的工具,我只是说如果可以避免,最好避免这样做。
俄罗斯方块是一个有趣的游戏,足够简单/灵活,可以实现原始想法。
在开发此程序的过程中,我观看了游戏历史学家的俄罗斯方块故事,发现这本书非常有趣,并使我欣赏Henk Rogers和Alexey Pajitnov的努力。 因此,我非常尊重他们,并希望我的游戏不会给他们带来麻烦,这只是一个简单的实验。
链接到游戏:http://tetris.merkoba.com
链接到仓库:https://github.com/madprops/Archon-Tetris