Skip to content

Commit

Permalink
C语言实现超级玛丽
Browse files Browse the repository at this point in the history
  • Loading branch information
404name authored Feb 16, 2021
1 parent 09a50c2 commit 3b084b4
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions 超级玛丽/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
> !!!!!!!!!!!!!!!!!!!!!!!!!
> !!!!!!!一定要先看完基础说明!!!!!!!!
> !!!!!!!!!!!!!!!!!!!!!!!!!
# -----------------基础说明---------------------
关于游戏: C语言实现《超级玛丽》基础玩法
体验玩家: 请看完具体说明 1-2 【基础玩法】
代码学习: 请看完具体说明 3-4 【代码说明】
自定义关卡: 请看完具体说明 4 【代码说明】

游戏日志&&彩蛋: 看具体说明 5 【游戏实现】

# -----------------具体说明---------------------

#### --------------------1.关于操作--------------------------
ad移动
w原地跳
qe斜跳
斜跳同时按住移动键实现远距离跳跃
蹲下和发射子弹没有写)

#### --------------------2.关于机制--------------------------

小马里奥: 不能破坏砖块
大马里奥: 能破坏砖块
变大蘑菇/星星: 作用都是变大
蘑菇怪: 踩头就死
乌龟: 踩头变龟壳 再踩就死亡
(没写龟壳来回碰撞 刷屏太严重了)
相机跟随: 仿超级玛丽机制
#### --------------------3.关于游戏性能----------------------------------
游戏刷新靠的是暴力打印 + 局部动态更新实现
由于镜头 + 玩家 + 敌人 都是动态变化的所以
敌人太多的时候会十分卡顿
固游戏设置好了上限: 5个蘑菇怪 + 2个乌龟 + 1个变大蘑菇 + 1个星星

#### --------------------4.关于游戏参数--------------------------------------
镜头大小: W*h = 300*98
马里奥参数:
小状态 高8 宽18 跳30
大状态 高16 宽20 跳30
文件目录下pass地图文件txt参数说明(以下举例)

1. 地图一定要300*98每张,代码会按照顺序依次拼接成长地图,
(自定义添加按照 pass数字.txt去追加且要在源码里面改动(不推荐))
2. txt修改局部内容:
-'M': 不可破坏墙体
-'#': 可破坏砖块
--且满足规则:
---必须是矩形且中间不能含有#
---左上角写入'1' 表示顶完生成变大蘑菇 然后变成墙体
---左上角写入'2' 表示顶完生成星星 然后变成墙体
---其他的内容则顶完砖块就碎裂且产生粒子效果
---算法会寻找矩形,所以不满足矩形边框代码就会卡死
-'3':生成蘑菇怪
-'4': 生成乌龟怪
--生成满足规则
---相机移动最右边一列读取到'3'/'4'才会生成内容
---也就是说一开始在视野内的3和4无效
---所以必须在初始视野外的(pass0.txt以外)地图输入才有效
---最多满足同时5个蘑菇怪 3个乌龟同时在场
-其余的内容都是背景忽略碰撞效果
-也就是只有“#M1234”6个内容才是动态的,其他的都是静态写死的
------------------------------------------------------------------------
```txt
------------------------------------------------------------------------
###############################################|
#1 OOOO ##2 OOOO ##OOOOOOO#|
# OOO OOO ## OOO OOO ##随便填O #|
# OO OOO ## OO OOO ##OOOOOOO#|
# OO ## OO ##OOOOOOO#|
# OO ## OO ##OOOOOOO#|
###############################################|
|
MMM |
3 4 MMM |
OOO OOOO OMMM |
OOOOO OOOOOOOOOOO OOOOMMM |
OOOOO OOO OOOOO OOOOOO MMM |
O OOOOO O OO OOOOOOOOOOMMM |
OO OO OOO OOOOOOOOOOOOMMM |
OOO OOOO OOOOOOOOOOOOOOOMMM |
OOOO OOOOOOOOOOOOOOOOOOMMM |
OO O OOOOO O O OOOOO O OOMMM |
OO OO OO OO O OO OO O MMM |
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM |
OO OOOOOO OOOOOOOO OO OOOOO OOOOOOOOOO OOOOO OOOOOOOOOO OOOOOO OOO|
```
#### --------------------5.关于游戏彩蛋和实现内容--------------------------------------
-马里奥不同形态有不同的走动动画
-乌龟往不同方向走也会切换不同的形态
-蘑菇怪和乌龟只要离开相机/掉入坑中 会消亡
-碰到乌龟壳会死亡
-死亡也有和游戏类似的画面

未实现:
-没有秘密管道
-马里奥没有下蹲和发射子弹系统
-没有第二关


Binary file added 超级玛丽/超级玛丽打包.rar
Binary file not shown.

0 comments on commit 3b084b4

Please sign in to comment.