中国指股网 > 基金 > 内容页

2小时写一个俄罗斯方块小游戏

2023-08-20 22:32:50 来源:哔哩哔哩

最终效果

一、简单游戏设计

游戏规则:


(资料图)

1、游戏界面有8x8的方阵组成 

2、游戏总共有4种类型的方块,每个方块都可以按照90度旋转显示 

3、游戏开始后,底部出现3个随机待放置方块 

4、底部3个待放置方块在全部填充放置后,会创建3个新的随机待放置方块 

5、用户触摸到任意待放置方块后,拖动方块到方正中未放置方块的格子中进行填充 

6、拖动方块在可放置区域释放表示填充到对应区域,在不可放置区域释放表示取消,待放置方块放回原位 

7、方阵填满一整行或者一整列,该行和该列进行消除8、所有待放置方块都没有地方可以放置的时候游戏结束。

游戏设计部分,根据网上热门的俄罗斯方块玩法定义。

目标是让GPT帮我完整实现代码部分。

二、先让GPT了解并学习需求

于是就得到了下面的游戏实现步骤

游戏对象和场景设计:

创建一个空的游戏场景,设置为2D模式。

在场景中创建一个8x8的网格,作为方阵。

创建一个底部区域用于展示待放置方块。

为待放置方块创建一个预制体,包含不同方块类型的形状和旋转状态。

方块生成和管理:

创建一个方块生成器脚本,用于随机生成3个待放置方块。

每个方块应该有一个脚本,处理方块的移动、旋转和放置逻辑。

方块的脚本应该检测是否可以在方阵中放置,如果不可放置则回到原位。

交互和拖动:

为待放置方块添加触摸和鼠标事件,使其能够被拖动。

当玩家开始拖动方块时,方块应该跟随鼠标或触摸位置移动。

方块应该能够在可放置区域放置,或者在不可放置区域松开时回到原位。

消除和游戏结束:

创建一个方块管理器脚本,用于检测并处理行或列的消除。

当一整行或一整列方块被填满时,调用消除逻辑并移除相应的方块。

在生成新的待放置方块时,检查是否有可放置位置,如果没有则判定游戏结束。

界面和UI:

创建游戏界面UI,包括得分、游戏结束提示等。

显示当前得分,记录玩家的消除行数。

三、游戏实现

游戏对象和场景设计

直接生成的代码,会出现一些意外状况。

多沟通一下,然后让GPT不断改进。

努力调教以后,就做了个背景。

方块生成和管理

定义好背景和方块类型类型,背景坐标参考左边,方块坐标参考右边。

按照设计的逻辑,

让GPT实现方块。

然后就是拷贝粘贴代码了。

中间依然出现各种问题。

多描述下,然后就可以得到解决方案了。

然后就获得了一个比较奇怪的棋子。

不过没关系,让GPT改一下初始化的大小就正常了。

交互和拖动

交互和拖动实现。

核心逻辑其实就是几个状态机转换。慢慢向GPT解释,并且让他按照期望状态机处理就可以了。

处理触摸事件

设置选中颜色处理

简单是了下,效果还可以。

接下来是消除和游戏结束

消除也可以了

ui和界面

让GPT指导如何创建ui

偷懒简单拖了个ui。

让GPT实现了下菜单逻辑。

ok

最终效果

1、支持方块消除

2、实现游戏分数显示

3、游戏结束重新开始游戏。

后续可以优化点。

1、增加方块种类(单纯添加方块类型就可以了)

2、各种动画效果添加

3、ui美化

4、增加音效果和设置相关内容

关键词: