zoukankan      html  css  js  c++  java
  • 植物大战僵尸课设个人报告

    植物大战僵尸课设个人报告--009

    1.实现功能及解释

    1.1音乐文件的读取和写入


    通过已经存在的系统函数将音频输入流音频数据写入缓冲区,对音频进行捕捉。

    1.2 子弹状态

    子弹与僵尸发生碰撞

    使用已经存在的Rectangle.intersects(double x, double y, double w, double h)进行判定,

    运动的子弹与运动的僵尸的两个矩形框发生接触时,表明子弹撞到了僵尸

    之后再循环遍历僵尸容器中各个僵尸,确认子弹碰到的僵尸为哪一只。

    接着对僵尸和子弹的状态分别进行改变。

    造子弹

    由于不同时间充能完成,会生成不同的子弹,对于子弹也是使用子弹容器进行保存,当充能过程完成时,造成一颗新的子弹,同时把这颗子弹放入容器中。如果子弹被移除,也就意味着被移出容器。

    1.3 阳光

    阳光容器

    用容器存放场上当前存在的所有阳光,当阳光被收取时,从容器中脱离,同时用户拥有的阳光数量增加

    收取阳光

    点击阳光后,阳光会根据公式缓慢地上移

    2.学会的知识

    对于界面的设计,我了解到可以通过图形用户界面(GUI)工具包swing中的面板容器类来实现需求。
    对于音频的插入和读取,使用AudioSystem、AudioFormat等技术,了解到超类DataLine、超级界面Line等新事物
    通过鼠标监听器来获取鼠标的位置坐标,进行一系列关于坐标位置而进行操作
    通过矩形边框的碰撞来获取信息
    Image类的getImage来获取图片,张贴背景图等。

    3. 可以改进的部分

    卡片类还可以添加更多种类的植物,在进入游戏时应该有超出卡片区的多种植物供用户挑选,对不同的植物卡片进行不同的标记。
    阳光的掉落可以更加富有随机性,掉落的收取和种植时阳光的变化可以更加多样化。
    对于能射出不同方位子弹的植物进行特殊标记,同一时刻射出的子弹根据直线方程等数学计算方法进行轨迹的模拟。
    特殊效果的子弹装入不同的容器之中,或再创建一个effect效果属性,对于不同的属性进行不同方法的标记。

  • 相关阅读:
    约数的问题
    广度搜索基本逻辑
    奇葩概念
    一枚前端UI组件库 KUI for React
    一枚前端UI组件库 KUI for Vue
    跨域的常见问题和解决方案
    Comet,SSE,WebSocket前后端的实现
    web渐进式应用PWA
    IIS 部署node
    javascript 时间戳
  • 原文地址:https://www.cnblogs.com/keepgoingccc/p/15790776.html
Copyright © 2011-2022 走看看