队员:无21李锦轩 无23尤忆晨
2048进阶版;
本游戏以经典2048游戏逻辑为基础,加入了一些其他元素,设计出2048化学版,2048 3D版两个游戏模块,最终呈现出一个以休闲为主的益智小游戏(同时我们也保留了2048经典版的玩法),我们希望这个游戏让高中的同学在游戏中巩固化学知识,培养空间想象力;我们也希望能让每天沉浸在数学、物理和各种专业课的电子系同学们也能感受到一些化学的乐趣,能够体会到化学元素的碰撞之间产生的奇妙火花,在简单的操作方法中感受到与经典2048不一样的乐趣。
2048经典版
unityHub 3.3.0-c8 unity2021.3.18.f1c1 visual studio2022
- 2048经典版:实现基本游戏功能、积分功能;
- 3D版:实现场景旋转功能、帮助提示功能、积分功能等;
- 化学版:实现右侧完整方程式显示功能、消除功能、打乱功能、模式选择功能、帮助提示功能、积分功能以及若干动画;
- pc端和android端都可游戏。
尤忆晨:主要负责主体游戏代码的实现,部分场景搭建;
李锦轩:UI设计,方程式部分的代码编写与修正。
- 经典版:我们充分发挥C#面向对象编程的特点,游戏设有TileBoard(主体游戏面板),TileGrid(数字移动的格子),Tile(格子中的方块),GameManager(游戏操作系统),SceneChange(场景转换)等8个代码文件,分别挂载在对应的对象上,使得管理更方便;当检测到玩家滑动屏幕或按下方向键时,遍历面板在对应方向进行方块移动和相同数字合并操作,同时触发移动动画和合并动画,并记录本次操作的分数,通过playerprefs函数进行数据持久化存储;
- 3D版:在以上基础上加入两个方向,加入场景旋转按键,根据旋转的次数判断哪个面朝向玩家,同样有积分功能和移动合并动画,以及游戏结束时的动画;
- 化学版:保留经典版的游戏操作方法,在游戏规则玩法上有较大创新;将数字替换为化学物质,每次移动两个方块相碰时,若能发生反应则生成对应的物质;
经典版的逻辑是相同数字遇到时数值翻倍,化学版的逻辑是检测到能发生反应时从代码库中调用对应的反应产物,我们创建了一个CRD.cs代码库用来存储(高中范围内常见的)所有的化学反应,以及Rections.cs代码库来存储完整的方程式,用来在游戏界面右侧显示具体方程;右侧创建了一个可以滚动的列表来显示对应的方程;
加入消除功能,通过Input.mouseposition来获取点击位置或者手指触摸位置,进行换算后,消除对应的不想要的方块;
加入打乱功能,遍历所有物质,随机移动到空缺的位置上;
加入模式选择功能,根据不同模式,选择不同的随机数池,通过池中不同数字的数量来实现不同物质的产生概率不同,不同的模式对应不同的主题;
- 2048经典版:通过上下左右键或者wsad键控制移动,相同数字合并为原来的2倍,有计分和记录最好成绩功能;
- 2048化学版:与经典版游戏逻辑和操作方法类似,但规则不同:
-
游戏规则:
- 每次移动后随机位置随机生成一个化学物质;
- 当两个物质相同时,合并为一个;
- 当两种物质可以反应时,若生成物为1种物质则合并为新的物质;
- 当生成物为2种物质时,两种物质都保留;
- 当生成物3种以上时,保留其中任意两种;
- 在某些情况下会省略水来简化情况;
-
补充:
- 两个HCl合成浓盐酸,浓盐酸与H2O合成HCl,硫酸和硝酸类似;
- 当物质量多量少反应不同时,模拟高中化学滴定实验,同样的两种物质反应时,操作方向不同生成物不同,例如:HCl向Na2CO3移动时,视为Na2CO3过量,生成NaHCO3,反之视为HCl过量,生成CO2
-
额外功能:
- 消除功能,进入消除模式后,选择一个不想要的方块鼠标点击或手指点击消除,每局限10次;
- 打乱功能,打乱所有方块,次数不限;
- 模式选择,选择不同的主题,随机生成的物质有所不同;
- 2048 3D版:
-
pc端:wasd控制上、左、下、右移动方块;左右按键控制立方体旋转;
-
Android端: 左右按钮控制旋转,手指滑动控制移动方块;
注:游戏内的帮助界面有更具体规则介绍。