Skip to content

Latest commit

 

History

History
29 lines (17 loc) · 3.8 KB

Winter_Play_by Hectum.md

File metadata and controls

29 lines (17 loc) · 3.8 KB

Winter Play by Hectum

平台:Windows 11

C语言环境:gcc version 8.1.0

编译选项:

压缩包附带Cmakelist(注:需自行配置好SDL2的相关环境,包括image,ttf库)

游戏机制与游玩方式

本游戏主要分为三个区块,首先先运行服务端启动游戏,此时打开一个或者两个客户端准备(注意:此时尚在准备状态)加入服务端的游戏,然后服务端进入开始界面加载(复刻原神界面)然后可选双人联机模式或者单人模式,此时客户端填入主机IP可以加入游戏,等待服务端点击开始两位玩家将一同进入游戏。

游戏的主题是复刻秋津游艺的打砖块小游戏,因此玩家的目标是尽可能打碎更多的砖块,限时3分钟,具体的机制如下:

  • 砖块血量为3,即发生三次普通碰撞后才能消失。当一幅图的砖块全部消除之后,将自动切换新地图

  • 游戏使用WSAD表示上下左右,SPACE发射初始小球(服务端发射小球避免两端抢球),小球在上左右三面碰撞会发生反弹,假如唯一的小球从下面飞出将扣除20分并且小球重新发射。P键用于暂停游戏,暂停后可选择直接退出结算或者重新开始或者继续,结算分两种情况:暂停结算或者3min时间达到后的结算,将给出你的当前得分。

  • 砖块、小球和弹板都有七种元素(砖块元素类型不是每个地图都全部涉及),通过数字1-7更换板对应的元素类型,分别是:火,水,冰,岩,草,风,雷,小球在运动时不会变化元素类型,但与板相撞后会变换为板的元素类型

  • 小球与砖块相撞时,如果元素类型一致只会发生一般碰撞(砖块血量-1),如果发生增幅(雷-草,火-冰,火-水)将会造成2倍伤害,如果发生 LINK(包括感电,超导,冻结)(雷-水,雷-冰,水-冰)则会对相连接的一系列砖块造成协同伤害,如果发生爆炸(火-雷,草-水)则会对该砖块周围一圈的砖块协同爆炸伤害,如果发生岩相关的反应,则会生成结晶盾,在一段时间内维持,在这段时间球将会在下底面发生反弹而不是堕入其中,如果发生风系相关反应则会将当前砖块元素染色到周围一圈元素并造成伤害一点。

  • 游艺要策一——天动万象:为了进一步加强武神钟离(划掉),设计了一个Q技能(一回合只能使用一次),使用后将对在场全部砖块产生2点伤害。

  • 游艺要策二——特装连续球:得分,每上升60分,会增加小球数量,由小球与板碰撞触发。注意:多余的小球掉下去了将不会重新生成!

  • 没有要策三了……

作者的悄悄话

写这个游戏首先是花了很大的精力在学习和实践SDL2上,曾经考虑先跟着教程写一个完整的,但是写了一半发现C++的一些功能我转换为C很吃力,最后那个“小项目”半途而废(。所以写这个项目前积累了一定经验,这里还要特别鸣谢撒酱,他去年项目的开源代码给我提供了莫大的指引和帮助(让我的屎山堆积的模样好看了一点——就一点)然后项目其实整体逻辑还是不佳,三个界面的切换、砖块的撞击失常、DLC的丰富度我都觉得有所欠缺,但是也没有更多的精力给完全实现了。非常感谢蚂蚁老师与助教团队在自学部分给予的充分支持,自我探索能力我觉得在此有了显著成长(至少我会找资料了不是嘛)。总之,这个小游戏还是有很多可以完善的地方,虽然能力所限很多地方都用了一些我觉得不太合适的,怎么说呢,小小的Tricks,就应该不是最好的、不会出错的策略,但还是勉强实现了。