超级马里奥

一、项目简介

功能描述:              超级马里奥游戏
设计了3关,每一关都存在敌人和障碍,触碰敌人角色死亡。第三关存在旗帜和城堡,进入城堡游戏通关。

二、功能架构图

整个系统的功能架构图,可以使用团队博客的图,但要在自己负责的部分标为黄底

 

三、个人任务简述

1. 完成的任务与功能

简单描述将自己完成的有特色的地方、重难点地方。

序号

完成功能与任务

描述

1

图片的导入和初始化

使用ImageIO流技术实现了读取图片文件,方便了对图片的调用,提高了代码效率。

2

马里奥类和敌人类的构建

实现马里奥和敌人的移动,跳跃,死亡,使用keyListener完成对键盘的监听。

3

背景选取和障碍物的放置

利用可视化的坐标完成对障碍物的放置,和对场景地面的建造。

4

游戏框架的设计

让自己的框架继承Jframe类实现游戏界面的基本构建,重写paint方法绘制游戏所有图画。

1. *马里奥的包图和类图

 

 

 

 

 

 

 

 

2. *图片的导入和初始化

将图片单独使用图片包存储,并使用System.getProperty(use.dir)获得该工程根目录,与包名和文件名拼接获得完整绝对路径,再使用ImageIO流中的read方法获得输入流,再将这些流存储到初始化对象中。对于连续切换调用的图片使用列表存储,根据列表中每一张图片的下标不同来实现图片的切换调用。比如马里奥的行走,食人花的张嘴和闭嘴,连续放置不同的砖块。

 

3. 马里奥类和敌人类的构建

简述所完成模块采用的技术、难点及解决方法。

定义出马里奥和敌人的初始坐标,移动速度和朝向,以及死亡方式,初始坐标与移动速度相加为现在坐标,从而移动,当马里奥或者敌人运动到障碍物处无法向前运动,马里奥可以跳跃移动通过障碍物,敌人则改变运动方向。当马里奥的纵坐标位于敌人上方一定距离时敌人死亡,其他方式与敌人接触,则马里奥死亡。在框架类中使用keyListener监听键盘的动作。根据监听到键盘的信息来确定马里奥的动作。

 

 

4. 背景选取和障碍物的放置

定义出关卡和障碍物列表,根据关卡的不同选取不同的背景。分别通过双重循环为每一关放置地面,设置障碍,根据障碍物在列表中的下表不同,设置不同的障碍物。在马里奥类中将障碍物处的坐标定义为马里奥不能通过的位置,从而完成障碍物的设置。

 

 

  1.  游戏框架的设计

使框架类继承Jframe类使用setLocationRelativeTo,setSize和setVisible等方法创造出框架,调用背景类中初始化方法,并重新定义Paint方法使用循环并调用drawImage方法,绘画出敌人类和障碍物类。当马里奥的坐标到达旗杆处时,自动移动到城堡中,游戏结束,调用JoptionPane.showMessageDialog弹出对话框提示结束。如若马里奥死亡,同样调用JoptionPane.showMessageDialog提示马里奥死亡。

 

 

五、课程设计感想

描述课设中碰到的困难及自己为了解决困难的所思所想。

在设置坐标时经常性出现偏差,导致bug层出不穷,需要不停调试,但之后在纸上画出坐标后一目了然,十分有利于设置坐标,在寻找图片路径时经常找不到,参考代码后知道了路径可以拼接,省时省力,可以用一个字符串代表相同部分再拼接不同部分就能形成绝对路径。

绘制动态画时,需要使用死循环,不停绘制。为每一个动态对象创造一个线程十分便于控制每一个对象的运动和死亡。

六、展望

没有为游戏实现网络编程不能在网络上随意访问该游戏,也没有为该游戏添加音频,没找到马里奥音频资源,之后会为马里奥添加更多关卡,为马里奥添加boss,增加剧情,尽可能接近真正的马里奥游戏,还要增加障碍物的种类,同时也要实现马里奥进入水管开副本的功能。

提高游戏的可玩性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值