资源下载地址:https://download.csdn.net/download/sheziqiong/85707555
资源下载地址:https://download.csdn.net/download/sheziqiong/85707555

1 设计目标

《超级玛丽》是一代人的童年经典游戏,其易于上手的操作和丰富的关卡元素让大家津津乐道,我们组计划用一个小狐狸素材包,制作一个《超级狐狸》,通过一定程度的模仿、复刻来致敬这个经典的游戏。

2 概要设计

2.1 功能实现

该游戏是 2d 的闯关游戏,其实现的是让玩家操控角色(小狐狸)在地图上进行移动、跳跃,然后收集物品和消灭敌人。主要要实现的功能有:

(1)小狐狸的移动和跳跃

(2)敌人的移动

(3)收集物品时计分

(4)暂停游戏,期间能更改游戏设置或退出游戏

(5)小狐狸进行一些动作或触发一些事件时,加入音效。

2.2 功能模块图

3 详细设计

3.1 类图

图中各个类的说明如下:

3.1.1 Scroll:实现地图背景的左右滚动

  • left:确定左边界
  • right:确定右边界
  • distance:左右边界之间的距离
  • Start():在游戏开始时获取边界和距离
  • Update():在游戏运行过程中更新左右边界的坐标,达到背景左右平移的效果。

3.1.2 Shift:实现地图背景的上下滚动

  • up:确定上边界
  • down:确定下边界
  • distance:上下边界之间的距离
  • Start():在游戏开始时获取边界和距离
  • Update():在游戏运行过程中更新上下边界的坐标,达到背景上下平移的效果。

3.1.3 PlayerControllor:操作人物

  • speed:速度
  • jumpForce:跳跃力度
  • isGround:是否在地面
  • isCroch:是否趴下
  • isHurt:是否受伤
  • jumpCount:跳跃次数,实现二段跳
  • cherry:收集的樱桃数目
  • Movement():实现小狐狸移动的函数。
  • Jump():实现小狐狸跳跃的函数。
  • SwitchAnim():切换小狐狸动画表现的函数。
  • OnTriggerEnter2D():判断小狐狸与其他触发器的碰撞,基于此实现收集物品。
  • OnCollisionEnter2D():判断小狐狸与其他碰撞器的碰撞,基于此实现与敌人战斗。
  • Restart():小狐狸死后游戏重置。

3.1.4 SceneManeger:实现场景(关卡)切换

  • Restart():游戏重置,回到主菜单。
  • Next():下一关。
  • Exit():退出游戏。

3.1.5 Audio:播放背景音乐和音效。

  • clip:获取播放的音乐片段。
  • audioSouece:音乐播放器。
  • Play():播放音乐。
  • Destory():停止播放。

3.1.5 Enemy:怪物类

  • anim:获取怪物的动画。
  • Start():开始游戏时播放怪物的动画。
  • Explosion():被消灭时爆炸。
  • Death():被消灭后销毁对象。

3.1.6 Enemy_Frog:青蛙

  • speed:移动速度
  • jumpForce:跳跃力度
  • Movement():实现青蛙边移动边跳跃的函数。
  • AnimSwitch():切换青蛙的动画效果。

3.1.7 Enemy_Eagle:老鹰

  • speed:移动速度
  • Movement():老鹰移动。

3.1.8 Enemy_Eagle:猫

  • speed:移动速度
  • Movement():猫移动。

3.1.9 Item:物品类

  • anim:获取物品的动画
  • Play():游戏开始时播放物品的动画(摇晃或闪烁)。
  • Destory():被获取后销毁对象。

3.1.10 Cherry:樱桃

  • score:樱桃的分数
  • Increase(int):增加分数。

3.1.10 Gem:宝石

  • score:宝石的分数
  • Increase(int):增加分数。

3.2 活动图

3.3 UI 设计

主菜单 UI:

介绍:

  • 开始:点击后开始游戏,进入第一关的场景。
  • 结束:点击后退出游戏

游戏内 UI:

介绍:

  • 左上角记录收集到的樱桃和宝石数目
  • || :暂停按钮,点击后游戏暂停,然后弹出返回主菜单或是继续游戏的窗口
  • X :退出按钮,退出游戏。
    资源下载地址:https://download.csdn.net/download/sheziqiong/85707555
    资源下载地址:https://download.csdn.net/download/sheziqiong/85707555

基于C语言制作的超级玛丽小游戏相关推荐

  1. 基于C语言的信息管理系统和小游戏

    基于C语言的信息管理系统和小游戏 一.课设题 本次课程设计有以两类题可以选择: 信息管理系统: 即实现个基于控制台的信息管理系统,例如选课系统.图书馆系统.公司财务系统等等 ,除满增删查改等基本功能, ...

  2. 基于C语言设计的俄罗斯方块小游戏(VS2017运行)

    (1)俄罗斯方块起源 <俄罗斯方块>(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏.        该游戏曾经被多家公司代理过.经 ...

  3. C语言制作一个五子棋小游戏【附代码】

    目录 五子棋游戏设计与实现 1.1 系统开发思路(需求分析) 1.2 系统功能设计 1.3 系统详细设计 1.3.1数据结构设计 1.4 系统实现 1.5 系统测试 五子棋游戏设计与实现 1.1 系统 ...

  4. 如何运用C语言制作猜数字小游戏?

     之前做课程设计无意中发现了这个好玩的游戏,于是就抱着做着玩的心态开始用c写这个东西,虽然东西不够精致,但是也没有太大瑕疵,希望各位大神们能给出点意见,也希望这篇小代码能给您帮助.(ps:游戏排行 ...

  5. [c语言]制作一个扑克牌小游戏

    扑克牌游戏 一.问题阐述 实现一个简单的扑克牌游戏,可以洗牌.发牌,还有玩家打牌等功能,具体任务如下: (1)一副扑克52张牌(去掉大小王),分别是A.2.3.4.5.6.7.8.9.10.J.Q.K ...

  6. c语言使用easyX图形库制作打气球小游戏

    大一c语言使用easyX图形库制作打气球小游戏 如果你是入门easyX图形库,那么这个打气球小游戏将会是和不错的入门项目选择,easyX开创了可视化窗口,使用户更加直观的了解到对象的变化,总代码以及素 ...

  7. c语言扔骰子随机数的相加,C语言编程学习:制作掷骰子小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  8. 基于 Vue 制作一个猜拳小游戏

    目录 前言: 项目效果展示: 对应素材: 代码实现思路: 实现代码: 总结: 前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧. 描述: 石头剪子布,是一种 ...

  9. C语言编程学习:制作掷骰子小游戏!超适合新手的练手项目!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  10. c 语言掷骰子游戏,C 语言编程学习: 制作掷骰子小游戏

    C 语言编程学习: 制作掷骰子小游戏 问题描述 骰子是一个有六个面的正方体, 每个面分别印有 16 之间的小圆点代表点数. 假设这个游戏的规则是: 两个人轮流掷骰子 6 次, 并将每次投掷的点数累加起 ...

最新文章

  1. mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解
  2. 关于.NET前后台提示框的那点事
  3. 将调试信息同时输出到终端和文件_暨_多参数函数封装
  4. 排序算法_桶排序(箱排序)
  5. 机器学习基础自学笔记2
  6. solidworks模板_工程师实用高级操作,Solidworks自定义属性链接到工程图模板
  7. laravel代码提示:laravel-ide-helper
  8. 计算机怎么新建word文档,右键新建没有word文档怎么办?Win10新建word文档的方法...
  9. 宇视NVR录像机密码忘记找回方式.pdf
  10. 【机器学习手册】【1】熟练使用向量矩阵和数组 —— 二维矩阵叉乘公式
  11. 杀毒软件简介:杀毒软件原理,教你如何选择一个好的杀毒软件
  12. google阅读器快捷键
  13. 第4届CCCC字符串大赛 L2-3深入虎穴
  14. Android 第三方 ROM
  15. Shake Shack上海第7家门店开业
  16. 7.6批量下载网易云歌曲
  17. 关闭msmpeng_你知道吗?把电脑系统里的这些进程关闭掉,可以提升系统流畅
  18. ipv4与ipv6的联系与区别
  19. DHL供应链将再投资2.18亿欧元加码中国市场
  20. 论影响高学习效率的几大因素

热门文章

  1. QT技巧系列(9)QModbusTcpClient客户端程序示例及代码
  2. getMonth()方法
  3. Cortex-A 架构
  4. linux中的ul命令,Linux ngrep 命令用法详解-Linux命令大全(手册)
  5. 手动打开与关闭软键盘
  6. 离散数学之数理逻辑——第2章 命题逻辑等值演算
  7. 你未必知道的 WebRTC:前世、今生、未来
  8. 激光投影仪和大屏液晶电视有哪些优缺点?二者应该怎么选?
  9. 扇形涂色问题(Python)
  10. kmplayer音轨切换(换配音)