U257693 双人PVP(停更)

题目背景

注:__此网站的游戏下载仅仅适用于有洛谷账号的人__。没有账号者请跳转[*__百度网盘__*](https://pan.baidu.com/s/1zgOsBI7ylFh-VUZ6DGf7iQ?pwd=bnhh)(百度网盘的更新会慢一些,所以建议注册一个洛谷账号获取最新的更新)。 __已停更__ |版本|最新更新内容| |:-|:-| |`v1.16`|优化穿墙箭视觉效果,更改地图渲染方式,增加二段跳 ~~,移除了Herobrine~~。|

题目描述

### 游戏规则: 在地图中,左半屏为红方玩家的UI界面与视角,右半屏为蓝方玩家的UI界面与视角。玩家的目标是杀死对方。键位如下: $\color{red}红方玩家:$`a`,`d`控制左右移动;`w`跳跃;跳跃时也可移动。`f`射普通箭;`r`射加强箭。 $\color{blue}蓝方玩家:$`k`,`;`控制左右移动;`o`跳跃;跳跃时也可移动。`j`射普通箭;`u`射加强箭。 $\color{grey}系统:$ 地图有时会出现加载不全或某些方格被“吃掉”的情况,按`空格`重新加载UI界面(这种方式会比较慢,建议慎用);按`F1`退出当前正在进行的游戏。 红蓝双方均可进行二段跳。若想禁用或进行更多段跳,请更改源代码并重新编译。 击杀对手可以获得 $1$ 分,率先获得 $3$ 分者胜利。 加强箭的速度初始比普通箭快,随着发射出去的时间变长,它的速度会越来越快。击中敌方玩家后击退的距离、造成的伤害与速度成正比。射出加强箭会消耗饥饿度。 所有种类的箭均会消耗 $1$ 支箭,箭会按特定速度自动补充。默认设置普通箭不限制攻速,加强箭有较长的冷却且冷却期间无法发射普通箭,但玩家可以通过调整程序设置限制两发箭之间最小的时间间隔。 移动会消耗饥饿度,跳跃不会,但没有饥饿度时,玩家不能移动或跳跃。饥饿度会在玩家不动时自动回复。 饥饿度满时,玩家的生命会自动恢复。 当玩家击中敌方时,系统会给玩家 $0.2$ 的额外攻击伤害。即下次命中对方会额外打出这么多伤害。命中次数越多,额外伤害叠加越高。 (目前游戏还不成熟,更多详细信息参见微信视频号`includeKYH`(这里建议不要打开视频号,什么详细信息都没有)) ### 职业相关信息 __吸血鬼:__ 每次击中敌人可以回复相当于造成的伤害 $1$ 倍的生命值;生命上限变为原来的 $80\%$。 __劲弩手:__ 射的箭可以穿一次墙(连续的一段墙),但穿墙后的箭速度减半;攻速降为原来的 $\frac{1}{2}$。 __末影人:__ 红方按`e`、蓝方按`i`可以发射传送箭,其作用为在击中玩家或障碍物时消耗 $当前生命 \times 5\%$ 点生命令发射者传送至箭的位置。(勿喷,仅仅是想不到名字才用的“末影人”,如果有更好的点子请私信联系我修改,谢谢支持)。 __飞行者:__ 以飞行代替跳跃,飞行时消耗饥饿度。红方按`s`蓝方按`l`可以滑翔,滑翔时不消耗饥饿度,下降速度减慢 $8$ 倍,以移动速度前进(一旦滑翔就必须前进,只能控制方向)。

输入格式

__对于那些想体验更多功能的人:__ 在“游戏常量”部分按照注释自行修改即可。建议先玩几局,把规则摸透再修改。 __对于那些想了解代码结构并写出类似游戏的人:__ 1. 首先声明,了解、写出类似不代表抄代码、盗游戏!复制粘贴代码中的这些函数是没有问题的:`collide`, `color`, `gxy`, `pause`。 2. 您可以在“游戏常量”部分后面分别看到“函数概览”“变量数组”“结构体”等其他部分,其中“函数概览”部分的代码在主函数之后,需要`Ctrl+鼠标左键`以查看。 3. 有的地方有注释,可以参考注释理解代码。 4. 忠告:一个程序一秒可以进行 $10^8$ 次运算,但是只能在控制台进行 $10^3$ 次左右的输出,所以请尽量减少输出次数!

输出格式

说明/提示

### Update Log `v0.1` 画出基础UI界面 `v0.2` 实现地图的渲染功能。 `v0.3` 创建任务并实现人物的移动功能。 `v0.4` 实现人物视角跟随(左右移动)。 `v1.0` 实现射箭功能。 `v1.1` 加入地图“山丘” `v1.2` 实现人物视角跟随(上下移动)。 `v1.3` 加入地图“森林” `v1.4` 实现饥饿度。 `v1.5` 实现速度箭、力量箭。 `v1.6` 实现伤害叠加机制。 `v1.7` 实现不同种类的箭攻速不同;将速度箭、力量箭合并为加强箭;修改攻击机制。 `v1.8` 将伤害结算从 `int` 改为 `float`。 `v1.8.0` 将一局一胜制修改为计分制;增加最简单的开始游戏界面。 `v1.8.1` 将大部分全局变量改为“玩家”结构体中的变量(运行后的程序与`1.8.0`相同)。 `v1.9` 修改开始菜单;增加职业选择功能;增加职业“吸血鬼”、“劲弩手”。 `v1.10` 加入地图“天空”;增加掉入虚空死亡的游戏机制。 `v1.11` 加入职业“末影人”(勿喷,仅为借鉴,与MC中的末影人有非常大的差别)。 `v1.12` 修改职业“劲弩手” “吸血鬼”;增加输出校准、地图选择功能;将运行一次程序能进行的游戏局数改为无限次。 `v1.13` 修改所有职业;优化输入输出校准;增加中途退出功能;增加“卡在墙里会掉血”的游戏机制;增加屏幕渲染间隔的调整。 `v1.14` 加入职业“飞行者”。修改职业“劲弩手”。 `v1.15` 修复了老板键在开始界面无法使用的问题。 `v1.16` 增加二段跳。优化地图输出,让穿墙箭和被穿的墙同时出现在同一个格子。