基于java实现的超级马里奥游戏

源码下载 http://www.byamd.xyz/hui-zong-1/项目简介刚进入的时候会有一个界面,为地图编辑器。可以使用此编辑器进行地图编辑,地图编辑器的内容包括:关卡。向左箭头,带有金币的砖块,带有花朵的砖块带有蘑菇的砖块,带有星星的砖块,普通砖块,向左运动的板栗仔,向右运动的板栗仔,向左运动的乌龟,向右运动的乌龟,金币。带有食人花的管道。普通管道,洞。向右的箭头。橡皮擦,可以使用鼠标点击图标然后拖动到面板上点击面板进行地图编辑。橡皮擦可以擦除已经建立好的模型。部署完地图之后可以选择下
摘要由CSDN通过智能技术生成
源码下载  http://www.byamd.xyz/hui-zong-1/

项目简介

刚进入的时候会有一个界面,为地图编辑器。可以使用此编辑器进行地图编辑,地图编辑器的内容包括:关卡。向左箭头,带有金币的砖块,带有花朵的砖块带有蘑菇的砖块,带有星星的砖块,普通砖块,向左运动的板栗仔,向右运动的板栗仔,向左运动的乌龟,向右运动的乌龟,金币。带有食人花的管道。普通管道,洞。向右的箭头。橡皮擦,可以使用鼠标点击图标然后拖动到面板上点击面板进行地图编辑。橡皮擦可以擦除已经建立好的模型。部署完地图之后可以选择下一关进行下一个关卡的编辑,也可以点击开始游戏开始游戏。游戏开始后从编辑的第一关卡开始进行闯关,人物可以移动通过ad键进行控制,可以跳跃,通过k控制,跳的时候可以跳到管子和砖块上面。人物有两种状态。大马里奥和小马里奥。小玛丽奥可以撞普通的砖块或者带有包含物的砖块使得砖块可以向上稍微移动。砖块上的一些包含物也会随着砖块移动。大马里奥可以顶破普通砖块。怪物分为三种,分别为板栗仔,乌龟和食人花。马里奥可以通过跳跃的方式踩死怪物。板栗仔在被踩的时候会变扁,乌龟被踩的时候。走动状态会变成龟壳状态,龟壳状态被碰到可以变成跑动的龟壳状态,跑动的龟壳可以杀死马里奥。板栗仔和其他的乌龟。运动的龟壳在运动的时候被马里奥踩到会变成静止的龟壳,食人花长在管道中。会定时出现对管道上方的物体进行攻击。当马里奥踩在管道上的时候不会出现。还有三种物体是包含在砖块中的。分别是星星。蘑菇。花朵。马里奥自下向上顶砖块之后砖块上方会生长出相应的植物星星和蘑菇会向右方向行走。花朵会在原地,。马里奥可以通过触碰的方式吃掉植物,不同植物有不同的加成效果,其中,吃掉蘑菇之后会变成大马里奥。吃掉星星之后会变成无敌状态。吃掉花朵之后会有发射子弹的技能。任何物品。尤其是可移动物。包括子弹,在碰到洞之后会掉落到洞中人物掉落之后会损失一命,人物一共有五条生命。每次正面碰到乌龟或者板栗仔,或者掉落到洞中之后便会损失一条生命,每次损失生命则该关卡从头开始当五条生命全部损失之后便会到gameover状态。当马里奥走到地图的最后一个模型之后的位置的时候说明本关通过。本关通过时会有马里奥跳下拉动旗帜旗帜拉倒底端的时候会向右跑到城堡位置。跑到城堡位置即属于本关卡已经通过。则消除所有的加成状态转到下一关卡。最后通关所有的关卡即为game
ends.跳跃的时候有重力效应,降落的会越来越快游戏界面上方会有剩余生命,当前时间为0的时候会损失一命,还有计分系统。当玩家杀死怪物,或者吃掉某种可生长物,或者过关的时候都会获取相应的分数加成。分数显示在面板上方。吃掉金币会有金币数量统计,统计结果在生命右边。本项目的亮点在于应用ioc技术的地图编辑器和精美的人物模型。

需求分析

人物跳跃的重力,条约落下的时候碰到其他的硬物可以停止下落。踩死怪物。怪物死亡方式不同展现的画面不同。吃东西,有属性加成。大马里奥顶破砖块。小玛丽奥顶砖块砖块可跟随移动。砖块上方的东西可以跟随移动。地图编辑功能。声音功能。人物胜利拉旗进城堡。

系统设计

本项目共有20个公共类。5个接口。分成三种。分别是控制类。模型类。工具类。功能方面有两大块。分别是地图编辑器和正式游戏。地图编辑器部分使用了spring框架的ioc技术。关于三种类。控制类中有两个类分别为Main和Control作用分别为控制地图编辑,地图编辑的思路如下:玩家点击图标之后鼠标的状态变成点击的图标的状态值,本类中有一个map键值分别为Integer和model鼠标移动到某位置点击之后会使integer加一。构造出相应的model然后put到map中如果用户点击的是橡皮擦。那么会计算哪一个类在橡皮擦点击的位置,并且把相应的位置的model设为忽略。最后解析这个map构造xml文件和保存着各个类的数量的一个properties文件Control类通过解析xml和properties文件解析关卡信息还原用户编辑的地图。还有一个全局的properties为game.properties保存着关卡数目。在点击开始游戏之后开始运行Control类中的work方法。Work方法的作用是初始化整个游戏的完整页面读入xml中的内容实例化对象存到容器中。然后启动paintThread线程画出面板,启动其他的必要线程进行工作,根据用户的操作对容器中的对象的一些参数进行改变呈现不同的视觉效果。

系统实现

本项目由于需要实现用户自由设计地图,所以应该尽量降低耦合度&#

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值