超级玛丽/超级马里奥

您所在的位置:网站首页 pygame超级马里奥教程 超级玛丽/超级马里奥

超级玛丽/超级马里奥

2023-09-17 12:19| 来源: 网络整理| 查看: 265

MySuperMario----2D复刻之旅,缅怀童年时光

超级玛丽/超级马里奥

你好!欢迎浏览我的博客!超级玛丽是一款非常经典的2D游戏,今天我将代领大家学习如何从小白开始,用unity一步一步复刻这一经典。

一、开发工具准备 unity2017以上版本 ,我制作的时候用的unity2018.1.0版本; 下载链接: unity发行版本. 任何支持c#编程语言的集成开发环境 ,我使用的是visual studio2015; 搭建游戏的素材 ,这里我直接将做好的素材分享给大家,其中包括 游戏背景地图,相关人物设置,背景音乐 等。不过有兴趣的同学可以去爱给网上下载自己喜欢的素材,然后搭建自己喜欢的游戏素材; 素材链接:https://pan.baidu.com/s/16Kj96XLQ77gEtH1-r8KsHw 提取码: 2333 二、项目进展

1、场景布置:

游戏界面地图初始化 在这里插入图片描述 第一关卡最终场景布置 在这里插入图片描述 游戏音效 在这里插入图片描述 [x]素材图片 在这里插入图片描述 动态效果

超级玛丽

2、基本角色及相关功能介绍: 马里奥: *能够左右行走、跑步、跳跃; *能够通过吃金币得分; *马里奥吃到蘑菇会变大,拥有二次生命; *顶碎砖块开辟道路; *与敌人正面碰撞或者掉入深渊会死亡;

敌人: *能够左右行走 *能够和马里奥大叔交互 *死亡消失

3、登录注册界面 在这里插入图片描述 在这里插入图片描述 4、开始结束界面 开始 结束 5、场景之间的跳转 可以把现阶段所以的场景合起来,实现每个不同场景之间的切换。 6、隐形关卡(增加难度) 马里奥从第一关卡某个管道进入这个挑战关卡,关卡隐形。 在这里插入图片描述 7、第二关卡基本地图设计完成 在这里插入图片描述 8、第三阶段基本地图设计完成 在这里插入图片描述

三、项目基本功能架构和功能流程图示

1、基本功能架构 在这里插入图片描述 2、相关类介绍及关联 在这里插入图片描述 designed by Modelio Open Source 4.0

下一步计划

这一周把第所有关卡设计好

第十五周综合测试所有关卡、维护项目

第十五完善所有的设计文档,并细化制作细节

第十六周报告展示

点击下方链接,访问我们的github

链接: https://github.com/CAdom/MySuperMario.

目前项目提交情况: 在这里插入图片描述 ##关键代码展示

音频控制器.

using System.Collections; using System.Collections.Generic; using UnityEngine; public class AudioManager : MonoBehaviour { GameObject obj; AudioSource bgmPlayer; AudioSource sePlayer; //单例模式 public static AudioManager Instance;//声明当前类静态实例 private void Awake() { Instance = this;//this就代表当前这个类 } void Start () { obj = GameObject.Find("AudioPlayer"); bgmPlayer = obj.GetComponent(); sePlayer = obj.GetComponent(); } public void PlayMusic(string name) { AudioClip clip = Resources.Load("Audios/" + name);//加载音乐片段 bgmPlayer.clip = clip;//切换音乐 bgmPlayer.Play();//播放新的音乐 } public void StopMusic() { bgmPlayer.Stop(); } public void PlaySound(string name) { AudioClip clip = Resources.Load("Audios/" + name);//加载特效片段 sePlayer.PlayOneShot(clip);//播放加载的音频 } }

相机控制器.

using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraControl : MonoBehaviour { float minX; float maxX; public static Transform mario; void Start() { minX = -16; maxX = 16; mario = GameObject.Find(PlayerControl.wanjia).transform; } void Update() { //mario = GameObject.Find(PlayerControl.wanjia).transform; Vector3 pos = transform.position;//获取相机当前的位置 pos.x = mario.position.x;//更改位置的X轴的位置 if (pos.x > maxX) { pos.x = maxX; } if (pos.x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3