zoukankan      html  css  js  c++  java
  • 课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现

    课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现

    个人贡献

    • 参与课设题目讨论及完成全过程
    • 代码调试
    • 资料收集
    • 撰写小组结题报告

    实验环境

    • Eclipse软件开发环境;
    • ARM实验箱(HonyaS5PC100);
    • windows操作系统。

    实践内容

    • Windows环境下ARM集成开发环境的搭建与使用;
    • 安装软件到模拟器;
    • 连接ARM实验箱与PC机;
    • 将工程代码在ARM实验箱上实现;
    • 给程序增加新的功能

    实践步骤

    Windows环境下ARM集成开发环境的搭建与使用

    安装JDK和配置Java开发环境

    • 配置环境变量

    新建JAVA_HOME环境变量,赋值为JDK的安装目录:

    新建CLASSPATH环境变量,赋值为.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;

    在PATH环境变量中追加Java环境变量:

    CMD运行如下代码,测试我们的安装和配置

    java -version
    
    java
    
    javac
    

    Eclipse的安装

    • 点击 Download Packages;

    • 下载完成后,解压安装包,解压路径随意。

    • 打开之后,选中图中的文件,在桌面创建快捷方式,安装告一段落

    安装ADT插件

    • 在eclipse中导入ADT的插件,help-->install new software

    • 在打开的窗口中填写ADT的插件的存放路径

    • 注意:contact all update sites during install to find required software及hide items that are already installed这两个选项不要勾选,要不然安装会非常的慢

    • 导入完之后会重启eclipse,重启之后菜单栏当中会多了Android SDK Manager及Android Virtual Device Manager两个图标,或者在window标签卡中也会有这两个选项

    • 如果没有显示这些图标,可在window-->perspective-->customize perspective中添加

    • 在打开的customize perspective标签卡中选择action set availability中勾选Android SDK and AVD,然后再重启eclipse即可

    安装SDK

    • 下载android-sdk-windows之后 ,在window中prefereces-->点击左边的Android,然后导入SDK的存放路径。

    • 然后在点击菜单栏中的Android SDK Manager图标,更改下载所需要的安卓版本即可。

    系统设计

    所有功能实现类(接口)的简介

    main方法在类AwtMainComponet里面,main方法里设置了窗口参数和鼠标监听器。
    Constant:常量类,里面有游戏中运用到的常量。
    MainSurface:绘制图层类,图层的绘制就是在该类中实现的。
    CannonManager:大炮管理器类,大炮的所有属性以及该有的方法。
    CatchFishManager:捕捉管理器类,类中是鱼的捕捉方法。
    FishManager:鱼管理器类,类中解析了鱼的配置信息,管理着鱼的动作等信息。
    GameInitManager:游戏初始化管理器类,类中有游戏的初始化方法。
    HeadFish:领头鱼类,领头鱼是一种虚拟的鱼,其实就是把一群鱼模拟成一个对象。
    ImageConfig:图片的配置信息类,类中有图片的细节信息。
    ImageManager:图片管理器类,根据解析文件获取图片。
    Bitmap:图片信息类。
    LayoutManager:布局管理器,在类中有大炮底座类,提高降低大炮按钮,计分板计时板的设计。
    MusicManager:音乐管理器,管理游戏的背景音乐。
    ParticleEffectManager:粒子管理器,类中管理游戏的粒子效果。
    PathManager:鱼路径管理器,类中管理鱼的路径。
    ScoreManager:得分管理器,类中管理如何得分。
    ShoalManager:鱼群管理器类,类中管理鱼群的方法。
    SoundManager:音效管理器,类中管理游戏的音效。
    Ammo:子弹类,类中管理子弹的属性。
    AmmoParticleEffect:子弹粒子效果,类中写了子弹粒子效果的实现。
    BackGround:背景类,类中设计了游戏的背景。
    FishGold:显示捕捉到鱼后显示的金币数量。
    FishInfo:某一种鱼的细节配置信息类。
    FishingNet:鱼网类,类中是渔网的属性和方法。
    GamingInfo:游戏进行中需要共同用到的一些变量。
    Gold:金币类,类中是金币的属性和方法。
    GoldParticleEffect:金币粒子效果,类中是金币的粒子效果属性。
    HighPoint:高分显示类,当获取高分时游戏的显示。
    HundredPoint:百分显示,当获取百分时游戏的显示。
    LoadProgress:加载进度条,类中设计了加载进度条。
    NetParticleEffect:渔网粒子效果,类中配置渔网粒子效果。
    WaterRipple:水波纹类,水波纹的属性方法。
    Bottom:大炮底座类,类中设计大炮的底座。
    BottomGold:金币显示组件,显示金币。
    BottomTime:时间显示组件,显示时间。
    ButtonAdapter:按钮,大炮的按钮属性及方法。
    Cannon:定义所有大炮的模拟类,设计了发射大炮的动作。
    ChangeCannonEffect:设计了更换大炮时的变换效果。
    Componet:组件的父类,有设计组件的坐标的方法。
    DownCannonButtonListener:降低大炮质量的按钮逻辑。
    UpCannonButtonListener:提升大炮质量的按钮逻辑。
    Fish:鱼类,设计鱼的所有属性和方法,如鱼的动作和捕捉方法。
    Button:按钮的接口,有是否可用和当按钮被点击的方法。
    Drawable:图片的接口,可获取图片的宽高的方法。
    OnClickListener:单机事件的接口,单机时的方法。
    FishRunThread:鱼游动进程,设计了鱼游动的方法。
    PicActThread:控制鱼的动作的进程,设计了播放了鱼所有动作的方法。
    ShotThread:射击进程,设计了发射子弹的方法。
    CircleRectangleIntersect:圆与矩形碰撞检测类(鱼是矩形,网是圆)。
    Tool:获取目标与源之间的角度,判断击落与否。
    

    功能模块

    鱼模块:主要实现鱼图片的加载,鱼游动效果,鱼游动,还有鱼的一些基本属性,比如鱼的坐标,大小,还有血量值。一些基本方法,鱼的构造方法。
    渔网模块:主要实现渔网图片的加载,渔网的属性有坐标,大小的宽和高,还有渔网的power值,渔网中还有一个改变渔网大小的方法。
    鱼池模块:将鱼类的对象,网类的对象都在本类中进行调用,并将相应对象的图片显示出来,并将游戏的背景‘画’出来。
    游戏启动模块:将加载游戏图片加载进来
    

    调试过程中遇到的主要问题及解决方法

    • Windows10系统下配置环境变量问题
    path中加入JAVA_HOME 然后加一个"/bin"来指向jdk需要用到的命令的文件夹
    
    解决办法就是在系统变量path中不要写JAVA_HOME,而是写入jdk的全路径像这样
    
    • Eclipse配置问题

    copy一个jvm.dll放在该目录下就可以解决了
    
    • Fishlord
    public class Fishlord {
    main(){}
    }
    

    main方法实现程序的启动和游戏循环的开启;
    JFrame frame = new JFrame("捕鱼达人"),这句就创建了游戏的
    主窗口;Pool pool = new Pool()创建了鱼池;pool.action()开启游戏
    主循环;

    • JPanel
    class Pool extends JPanel {
    //加载游戏的背景,创建鱼类
    Pool() {}
    //游戏主界面绘制方法
    public void paint(Graphics g) { }
    //游戏主循环
    action(){}
    //捕鱼的逻辑实现
    catchFish(){}
    }
    

    Pool继承了JPanel就是在窗口上的一个面板,面板可以绘制在窗口中;

    • Fish
    class Fish extends Thread {
    }
    

    Fish继承了Thread,鱼就是一个线程,当它的x坐标不断改变的时候,鱼就
    向左移动了,当同一条鱼的图片不断改变的时候,这条鱼看起来就是动态的效果;
    超出边界的鱼应该消失,进入渔网的鱼应该消失,同时分数++;

    • Net
    class Net {
    }
    

    Net就是渔网,监听鼠标后,将鼠标的中心设置为渔网的中心,鼠标移动,网页会动;

    • 效果图

    实验体会

    我们小组的课题是基于ARM实验箱实现捕鱼游戏,主要就是环境配置以及对实验代码的理解,而课题要求中比较难的是ARM实验箱的操作。需要将PC机与ARM实验箱连接,才能将工程成功的在ARM实验箱上运行显示以及执行相应的操作。我负责的是代码运行环境的搭建和代码部分。这次课设让我对Java中类的理解更加深刻和透彻,在同组小伙伴的共同努力和老师的悉心指导下,克服了课设过程中遇到的各种问题,顺利完成了老师布置的要求。

    参考资料

  • 相关阅读:
    iOS中图片与视频一次性多选
    UIImagePickerController Class
    1月16日
    10月20日
    1月14日
    1月13日
    1月12日
    1月11日
    课程评价与建议
    加分总结
  • 原文地址:https://www.cnblogs.com/lnaswxc/p/9131165.html
Copyright © 2011-2022 走看看