相关主题
{{discussion.title}}
最牛社区
首页
新主题
新回复
热门
注册
登录
[野生程序员花三天时间用 Cursor 复刻经典游戏「俄罗丝方块」,求各位提点建议]
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 13:42:59') }}
#0
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 13:42:59') }}
#0
大家好!我就是那个周末爱倒腾键盘的野生程序员,日常沉迷用代码给生活开外挂(虽然 80%的工具写完就吃灰了 hhh )
🔥这次整了个大活!靠着和 Cursor 斗智斗勇三天,从连游戏引擎是啥都不知道的小白,硬生生用 J**aScript 搓出了能跑的「俄罗丝方块」!中途经历了:
▷ 让 AI 画了 14 版碰撞检测代码<br>
▷ 凌晨三点和幽灵方块 bug battle<br>
▷ 把 Cursor 训练成专业方块动画设计师<br>
现在这个「赛博儿子」终于能见人了!支持键鼠/触屏双操作,偷偷加了上班摸鱼专用 [老板键] 🤫
👉试玩地址: https://onlinetetris.org

原来 AI 不止能当搜索引擎,真能造出会动的快乐!这次搞成了,下次或许敢挑战贪吃蛇元宇宙?🚀
{{ getUsernameByUid(12869) }}
发布{{ getTimeInfo('2025-03-20 13:49:43') }}
#1
{{ getUsernameByUid(12869) }}
发布{{ getTimeInfo('2025-03-20 13:49:43') }}
#1
动画做的很不错呀,不愧是 Cursor 。
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 13:55:06') }}
#2
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 13:55:06') }}
#2
Cursor 做动画还是挺不错的,不过中间也踩过很多坑。就这个动画和屏幕适配两项我搞了一天多。
{{ getUsernameByUid(4988) }}
发布{{ getTimeInfo('2025-03-20 13:59:50') }}
#3
{{ getUsernameByUid(4988) }}
发布{{ getTimeInfo('2025-03-20 13:59:50') }}
#3
做的不错
{{ getUsernameByUid(12870) }}
发布{{ getTimeInfo('2025-03-20 14:00:19') }}
#4
{{ getUsernameByUid(12870) }}
发布{{ getTimeInfo('2025-03-20 14:00:19') }}
#4
不错 动画在线 用了第三方库吗
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 14:01:24') }}
#5
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 14:01:24') }}
#5
动画是单纯的使用 js 写的,没有使用任何第三方库。
{{ getUsernameByUid(8852) }}
发布{{ getTimeInfo('2025-03-20 14:06:58') }}
#6
{{ getUsernameByUid(8852) }}
发布{{ getTimeInfo('2025-03-20 14:06:58') }}
#6
你这个还是远古俄罗斯方块。
现代化的俄罗斯方块,需要加上 7-bag 机制,SRS 超级旋转系统,踢墙系统,你现在全都没有。
{{ getUsernameByUid(12871) }}
发布{{ getTimeInfo('2025-03-20 14:09:37') }}
#7
{{ getUsernameByUid(12871) }}
发布{{ getTimeInfo('2025-03-20 14:09:37') }}
#7
同意, 我也刚想说做的不够规范.
{{ getUsernameByUid(209) }}
发布{{ getTimeInfo('2025-03-20 14:14:13') }}
#8
{{ getUsernameByUid(209) }}
发布{{ getTimeInfo('2025-03-20 14:14:13') }}
#8
三天做出来的还要什么自行车
{{ getUsernameByUid(1375) }}
发布{{ getTimeInfo('2025-03-20 14:18:29') }}
#9
{{ getUsernameByUid(1375) }}
发布{{ getTimeInfo('2025-03-20 14:18:29') }}
#9
让 ai 保证,GTA 不要跳票
{{ getUsernameByUid(12872) }}
发布{{ getTimeInfo('2025-03-20 14:18:41') }}
#10
{{ getUsernameByUid(12872) }}
发布{{ getTimeInfo('2025-03-20 14:18:41') }}
#10
中间的过程方便总结下吗,一定也不简单
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 14:32:17') }}
#11
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 14:32:17') }}
#11
方块生成机制:我现在用的是双池化生成机制,跟 7-bag 机制差不多,都是将 7 个方块编成一组,打乱顺序放入候选池中,每次从候选池中取一个方块,直到池子里方块都取完了,再重新编组入池。
双池化其实就是一次将两组共 14 个方块放入候选池。
SRS 超级旋转系统,踢墙系统这两个目前还没有实现,很感谢你提出的宝贵建议🙏🙏🙏,后续我会继续使用 Cursor 来完善相关功能。
{{ getUsernameByUid(12873) }}
发布{{ getTimeInfo('2025-03-20 14:44:28') }}
#12
{{ getUsernameByUid(12873) }}
发布{{ getTimeInfo('2025-03-20 14:44:28') }}
#12
看我用 cursor 几分钟做出来的。动画效果也很好,有全屏震动
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 14:50:44') }}
#13
{{ getUsernameByUid(12868) }}
发布{{ getTimeInfo('2025-03-20 14:50:44') }}
#13
做动画这块确实踩了不少坑,好再最终摸索出来一个比较靠谱的经验。
避坑:
1. 提问时尽量避免“大而空”,一定要想清楚你想要什么。
2. 多给 AI 提供一点上下文,告诉它你的需求场景、应用条件等,已确保代码生成的准确性。
3. 遇到复杂问题,按逻辑分块提问,再把答案串起来,原则由浅到深、由粗到细。
拿动方块小时画来举例:
第一问:按游戏规则,当方块触底时如果拼成一行,需要将方块消除,常见的消除动画有哪些呢?
此时 ai 一般会给你列出一些消除动画,如:逐渐消失、闪烁效果、破碎效果、彩虹色/特效动画等。你可以根据动画名再深入提问。
第二问:请帮我列出「逐渐消失动画」方案具体实现步骤。
第三问:请根据以上方案,生成对应的业务代码。
{{ getUsernameByUid(160) }}
发布{{ getTimeInfo('2025-03-20 15:18:31') }}
#14
{{ getUsernameByUid(160) }}
发布{{ getTimeInfo('2025-03-20 15:18:31') }}
#14
cursor 确实好用。我周一写了一个小程序。周二上线。周三新增新功能。 代码我基本没看。我就是一个产品经理,不断和 AI 反复拉扯。
{{ getUsernameByUid(6511) }}
发布{{ getTimeInfo('2025-03-20 15:25:37') }}
#15
{{ getUsernameByUid(6511) }}
发布{{ getTimeInfo('2025-03-20 15:25:37') }}
#15
能不能把这个 ui 套进去 https://chvin.github.io/react-tetris/
{{ getUsernameByUid(6145) }}
发布{{ getTimeInfo('2025-03-20 15:26:13') }}
#16
{{ getUsernameByUid(6145) }}
发布{{ getTimeInfo('2025-03-20 15:26:13') }}
#16
AI 稿子看多了,总觉得 LZ 的帖子也是 AI 润色过的(
{{ getUsernameByUid(5699) }}
发布{{ getTimeInfo('2025-03-20 15:28:46') }}
#17
{{ getUsernameByUid(5699) }}
发布{{ getTimeInfo('2025-03-20 15:28:46') }}
#17
再进一步,可能这个用户也是 AI 创造的(
{{ getUsernameByUid(4249) }}
发布{{ getTimeInfo('2025-03-20 15:54:01') }}
#18
{{ getUsernameByUid(4249) }}
发布{{ getTimeInfo('2025-03-20 15:54:01') }}
#18
3 天时间要加上联网才行。
{{ getUsernameByUid(12874) }}
发布{{ getTimeInfo('2025-03-20 16:30:29') }}
#19
{{ getUsernameByUid(12874) }}
发布{{ getTimeInfo('2025-03-20 16:30:29') }}
#19
我还做了 RougeLike 扫雷呢。。
{{ getUsernameByUid(post.updatedByUid) }}
编辑于 {{ getTimeInfo(post.UpdatedAt) }}
{{ getUsernameByUid(post.uid) }}
发布于 {{ getTimeInfo(post.CreatedAt) }}
# {{post.num}}
{{ getUsernameByUid(post.updatedByUid) }}
编辑于 {{ getTimeInfo(post.UpdatedAt) }}
{{ getUsernameByUid(post.uid) }}
发布于 {{ getTimeInfo(post.CreatedAt) }}
# {{post.num}}
{{ getUsernameByPostNum(post.mentionNum) }}
登录回复
#{{nav.post.anchor}}
{{ alert.text }}
关闭