Minecraft_Plugin

  • 1.项目概述
  • 2.系统设计
  • 3.功能模块成果展示
  • 4.个人总结

1.项目概述

1.1 项目简介
小组准备编写一个具有武器战斗,道具收集、互动社交和任务悬赏四大系统的聚合插件。
武器战斗系统主要包括武器强化,武器特效和武器词缀三个模块。武器强化和武器词缀用于强化武器的属性,而武器特效则用于优化武器的攻击画面。
道具收集系统是以图鉴形式展示玩家对于游戏的探索程度,可以满足玩家的收集欲。这个系统主要由装备图鉴、怪物图鉴、植物图鉴、烹饪图鉴和收集奖励五个模块组成。装备图鉴可以细分为武器图鉴和防具图鉴。怪物图鉴记录玩家击杀过的怪物的种类和个数。植物图鉴记录玩家通过自己种植收获的植物的种类。烹饪图鉴需要玩家使用自己收获以及拾取的食材制作成对应的食物进行解锁。而玩家在每样图鉴收集到一定数目之后都可以领取相应的收集奖励。
互动社交系统主要包括好感度和羁绊两大模块,玩家之间的互动比如互送礼品、相互交流和组队打怪都可以增加好感度,而如果两个玩家之间相互攻击则会减少好感度。当好感度达到不同的数值时就可以解锁不同的羁绊,不同等级的羁绊可以解锁不同等级的羁绊属性加成。并且如果两个玩家之间的好感度达到一定程度就可以确定相处关系,目前讨论的有陌生人/熟人/朋友/闺蜜(死党)/情侣/夫妻这几个等级。而如果两个玩家之间的好感度为负则会转化为仇恨值,仇恨值会降低这两个玩家组队时的收益,并且也会让他们仇人见面分外眼红,两玩家对战时都会有伤害加成。
任务悬赏系统是一个需要玩家完成系统提供的或者其他玩家提供的悬赏任务来换取奖励的系统,在这个系统中既会有简单的刷怪和收集任务也会有与好感度系统相关的送礼或者追杀任务。完成任务之后就可以获取相应的奖励。

2.系统设计

2.1 概要设计
图2-1 系统功能图

2.2 数据结构/数据库设计

表2-1 数据字典表

2.3界面设计
1.图鉴列表(包括植物、生物、装备、成就)
植物、生物、装备、成就均可通过ButtonClick直接跳转
同时还有 一个返回主菜单按钮 一个关闭Gui按钮
2.植物图鉴(一个返回图鉴列表按钮 一个关闭Gui按钮 以及排列好的植物Image若干)
3.生物图鉴(一个返回图鉴列表按钮 一个关闭Gui按钮 以及排列好的生物Image若干)
4.装备图鉴(一个返回图鉴列表按钮 一个关闭Gui按钮 以及排列好的装备Image若干)
5.成就图鉴(一个返回图鉴列表按钮 一个关闭Gui按钮 一个可跳转至成就奖励界面的Button 以及排列好的成就及需求若干)
6.奖励图鉴(玩家成就点数 及排列好的成就段位、段位奖励极其装备的跳转按钮
一个返回图鉴列表按钮 一个关闭Gui按钮 以及预设的成就点数使奖励分级可点击)

2.4 敏捷任务看板/燃尽图

图2-2 燃尽图

3.功能模块成果展示

图鉴命令+图鉴Gui设计+成就系统:
①编写yml文件,赋予玩家可用操作命令以及权限,包括打开图鉴及装备称号等相关需要输入命令以实现;
②编写Command类,对命令进行输入和玩家权限判断以及对玩家进行操作提示;
③在插件main方法中对命令进行注册,使命令可用可操作;
④利用VexView绘制图鉴Gui,添加VexButton并利用ButtonClickEvent实现界面跳转等操作;
⑤绘制成就系统及奖励界面Gui;通过管理员设置成就点数或玩家完成成就任务以获取成就点;
⑥通过成就点数判断成就段位,并获取可用奖励,包括特效和称号。

3.1 图鉴命令设计

3.2 图鉴Gui设计


3.3 成就系统

4.个人总结

个人完成部分代码管理:
链接: Minecraft_Plugin:图鉴Gui+命令权限+成就系统+简单特效.
仅供参考

经验及收获
基于Java的Minecraft游戏后端自定义插件项目中逐步学习了并编码实现了初识服务端与客户端;认识了服务端与开的户段的交互流程;开发环境的配置与搭建;github与gitee使用;编写了一个插件并了解了javaDoc;学会了注册命令与处理;学习了权限;游戏事件监听;以及容器与方块;Entity对象实体的操作;以及粒子特效的编写与BukkitRunable;和物品与玩家数据持久化存储;以及Vexview界面绘制与扩展时间的使用。实践开始前,没有多少敏捷模式项目经验,加强了对项目的认识和管理,体验了敏捷开发的项目过程和过程交付物,对项目过程划分和各个阶段的职责有一个初步了解。此外,对敏捷项目开发模型有了基本认知,熟悉了Java的语言开发工具IDEA和Spigot插件开发的Bukkit等相关内容的开发技术。在基于Java的Minecraft游戏后端自定义插件开发过程中,学习了命令与权限、SQLite、VexView界面绘制、Inventory与方块、粒子特效绘制与BukkitRunable定时器的相关操作。

答辩或质疑记录:
1.如何进行命令的设计以实现玩家输入相应的指令完成相应的操作?
①编写yml文件,赋予玩家可用操作命令以及权限,包括打开图鉴及装备称号等相关需要输入命令以实现,例如/open 以打开各种界面,/vftxi 以装备特效及称号,/chengjiu 设置或查询玩家的成就点数;
②编写Command类,
如对命令进行输入和玩家权限判断以及对玩家进行操作提示;
③在插件main方法中对命令进行注册,使命令可用可操作。

2.如何实现VexView绘制的Gui界面中VexButton的点击完成相应的操作如界面跳转?
通过赋予VexView绘制的Gui界面中相同功能的VexButton以相同的ButtonID,通过ButtonClickEvent中的getButtonID();方法获取每一个按钮的ID并赋予其所需要的方法,当监听到玩家点击了某个Button时,获取其ID并调用其方法如VexViewAPI.openGui()方法以实现界面跳转或其他功能。

3.如何实现成就系统中段位奖励的分级可点击跳转装备?
成就点数,玩家可以通过完成成就任务获得,或是直接由管理员设置;此次实践中采用/chengjiu set 方法设置玩家的成就点数并存储到数据库中,可以通过/chengjiu
get 方法查询。奖励界面通过判断玩家的成就点数,是否符合段位要求,如果符合Vex绘制Gui中显示的为Button,可以点击跳转进行装备奖励;如果不符合段位要求,则显示的为Image,并提示为“不可点击”。

基于Java的Minecraft游戏后端自定义插件 的Java实践项目整理相关推荐

  1. 基于Java的Minecraft游戏后端自定义插件 01客户端服务端

    客户端服务端 课程大纲 初识客户端与服务端 服务端 客户端 客户端下载与启动 客户端文件目录介绍 服务端与启动 服务端目录 服务端文件详解 常规游戏通信同步 课程大纲 常见服务端简介 服务端目录结构介 ...

  2. 基于Java的Minecraft游戏后端自定义插件 05事件监听器

    事件监听器 内容简介 事件监听器 内容简介 事件监听器 文档中org.bukkit.event都是事件包 https://www.youtube.com/watch?v=PWQNsqwD-AY. pu ...

  3. 基于Java的Minecraft游戏后端自定义插件 04注册命令与处理

    注册命令与处理 内容简介 如何注册命令 权限设置 plugin.yml权限 luckpermission 内容简介 如何注册命令(理解) 如何重写JavaPlugin中的onCommand方法来做到命 ...

  4. 基于Java的Minecraft游戏后端自定义插件 06绘制简单粒子特效与BukkitRunable定时器

    绘制简单粒子特效与BukkitRunable定时器 粒子特效 多线程BukkitRunable 粒子特效 利用定时器来设定特效出现是否延迟,以及周期频率 奖励特效一: VexLighting 在玩家处 ...

  5. Java窗体小游戏开发飞机大作战Java小游戏开发源码

    Java窗体小游戏开发飞机大作战Java小游戏开发源码

  6. 【推荐】Java自学网站HOW2J.CN 手把手带你做实践项目

    写在前面:HOW2J.CN 最近开始找实习,发现大部分公司更需要会Java的,而不是只会Python的,所以只好开始重新学习Java了.因为之前学过,所以对基本语法的掌握还是非常快的. 学习Java不 ...

  7. 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )

    文章目录 一.Java VisualVM 工具安装 Visual GC 插件 二.使用 Java VisualVM 分析 GC 内存 一.Java VisualVM 工具安装 Visual GC 插件 ...

  8. messageformat.format() 自定义参数名_DedeCMS的Java版mcms 第四季之一: 自定义插件

    自定义mcms插件 包含自定义字典.自定义搜索.自定义模型.自定义表单.自定义页面等功能 依赖: Apache Maven <dependency><groupId>net.m ...

  9. java植物大战僵尸游戏下载安装_用 Java 写一个植物大战僵尸简易版

    植物父类.子弹父类就同理可得了. 上面说到子类共有的方法需要抽到父类中,那么部分子类共有的方法该如何处理呢?比如,豌豆射手.寒冰射手可以发射子弹,坚果墙就没有射击的这个行为.所以这里就需要用到接口(I ...

最新文章

  1. iOS Public Beta 5值得关注的7个变化
  2. json与javabean、list、map之间的转化
  3. 开源数据库连接池之Tomcat内置连接池
  4. Docker安装与镜像,容器命令管理
  5. 23种设计模式之观察者模式
  6. 第一次作业-四则运算
  7. 计算机编程游戏本还是商务本,游戏本和商务本哪个比较适合编程?
  8. 简单方法去除WPS广告
  9. 智能开关双控实现方法(附电路图)
  10. 如何处理给MacBook安装win10双系统时拷贝windows安装文件出错?
  11. linux相关操作命令(*)
  12. 【毕业设计】基于大数据的电影数据爬取分析可视化系统
  13. diy高性能存储服务器,存储服务器 diy
  14. POJ 1392 Ouroboros Snake 欧拉回路
  15. python 相关性检验_Python中的相关分析correlation analysis的实现
  16. 传时珍医药伟业谱本草科学新篇——访李时珍医药集团董事长林朝辉
  17. 《DSP using MATLAB》Problem 7.16
  18. 1.4、云计算HCIA虚拟化存储基础知识
  19. 微信小程序编写一个试卷demo
  20. linux学习笔记二

热门文章

  1. PLA在计算机领域是什么意思,pla(pla是什么工作)
  2. xp系统网上邻居看不到局域网电脑_Windowsxp系统网上邻居一片空白怎么办
  3. 基于Twitter数据的情感预测与案例分析
  4. python中类的继承关系使用什么符号表示_智慧职教: Python中类的继承关系使用( )符号表示?...
  5. zram lz4 和 lzo 算法性能评估比较
  6. 卡尔曼滤波 - 状态空间模型中的状态方程
  7. [笛卡儿积]业务中的复选框条件--输出所有的情况结果
  8. 学校人事管理系统python实现
  9. 【浏览器】1022- 47 张图带你走进浏览器的世界!
  10. Python基于二维码实现的在线编解码系统