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中类的理解更加深刻和透彻,在同组小伙伴的共同努力和老师的悉心指导下,克服了课设过程中遇到的各种问题,顺利完成了老师布置的要求。

    参考资料

  • 相关阅读:
    Educational Codeforces Round 20 D. Magazine Ad
    Educational Codeforces Round 20 C. Maximal GCD
    紫书第三章训练2 暴力集
    Educational Codeforces Round 20 B. Distances to Zero
    Educational Codeforces Round 20 A. Maximal Binary Matrix
    紫书第三章训练1 D
    紫书第一章训练1 D -Message Decoding
    HAZU校赛 Problem K: Deadline
    Mutual Training for Wannafly Union #8 D
    紫书第三章训练1 E
  • 原文地址:https://www.cnblogs.com/lnaswxc/p/9131165.html
Copyright © 2011-2022 走看看