从零开始实现放置游戏(三)——实现后台管理系统(1)后台管理系统搭建

简介: 上一章已经把整体的代码框架搭建完毕。然而整个游戏的功能非常的多,这就要求我们必须思路清晰,把所有功能依次分解开,逐步实现。

 上一章已经把整体的代码框架搭建完毕。然而整个游戏的功能非常的多,这就要求我们必须思路清晰,把所有功能依次分解开,逐步实现。


需求分析


  整个游戏的核心玩法是放置挂机,打怪练级是核心功能,先实现一个最小可运行的DEMO,那么可以先实现玩家和怪物挂机战斗这部分。像装备、道具、掉落、随机词缀、组队等功能都可以放到后面做。想实现挂机战斗,那么要有一个战斗的逻辑模块,根据输入的战斗信息,计算出战斗结果,输出给客户端播放。整体逻辑大致如下图:


502227-20190618143027923-1156890540.png


这里,我们需要对游戏战斗相关的属性有个规划。我们暂时规定一级属性有力量、敏捷、智力、耐力,二级属性有生命值、护甲、攻击强度、法术强度、命中率、躲避率、暴击率。一级属性对二级属性提供加成,二级属性参与战斗逻辑计算,装备加成既可以加一级属性也可以加二级属性。人物每个等级自身四围的属性数值是固定的。人物的战斗属性由自身属性+装备加成+得出。怪物的属性比较简单,只有等级、生命值、护甲、伤害值,直接参与计算。


  以上,我们需要配置人物每个等级的属性,怪物的属性。另外,人物和怪物都是在地图上移动的,因此还需要配置地图信息。要配置这些信息,我们就需要先搭建后台管理系统,通过excel,把我们的数值配置导入系统。下面,我们就开始搭建我们的rms模块。


RMS系统搭建


1.引入依赖


首先,有一些常用的工具类,插件类,几乎每个模块都要用到的,我们在父级节点idlewow的pom中引入:


注意:lombok是个IDE的插件依赖,需要有一步在Idea中安装此插件的操作。插件的安装请查看此篇:Idea插件lombok的安装和使用


idlewow的pom.xml


idlewow-core模块需要访问数据库,添加相关依赖:


pom.xml


在idlewow-rms中,我们使用springmvc+mybatis,需要添加的引用较多:


pom.xml


2.添加相关配置


  已经引入了依赖,还有很多配置文件需要配。


  首先,我们来配置一下最基本的配置,也就是web容器的配置: web.xml


web.xml


在 web.xml 里主要配置了一个spring的上下文listener,用来在启动时,自动扫描注入;一个spring的servlet,用来实现mvc路由;还有一个字符编码的filter,用来把请求数据转换成utf-8编码,防止出现乱码。


  现在我们针对web.xml中Spring的上下文listener和servlet添加单独的配置。在resources目录下新建spring文件夹,并新建applicationContext.xml文件,applicationContext.xml 主要配置spring需要扫描的包,并引入了数据源的配置文件。


applicationContext.xml


在/resources/spring路径下,新建spring-mvc.xml文件,主要配置mvc的路由规则,并启动spring的mvc注解。


spring-mvc.xml


 在/resources/spring路径下,新建dataSource.xml文件,主要配置数据库连接,连接池,启动spring的事务注解。并指定mybatis需要扫描的包。


dataSource.xml


在resources目录下,新建properties文件夹,并新建文件jdbc.properties。具体定义了数据库连接的账号、密码等,供dataSource.xml使用。


jdbc.properties


3.最简页面搭建


  配置完毕,我们先搭建一个最简的管理员登陆页面和登陆后的首页,让整个项目能够跑起来。


  这里我们直接使用一套网上开源免费的基于layui实现的前端框架xadmin,下载地址:http://x.xuebingsi.com/。下载后,把css, js, fonts, images, lib目录都拷贝到webapp目录下即可。


  然后,我们写一个简单的登陆验证。这里,我规定数据库建表时,所有表均需包含id, create_user, update_user, create_time, update_time, is_delete, version几个字段。在facade模块中,新建一个包com.idlewow.common.model, 并新建一个抽象类BaseModel,后面凡是数据库的实体类,均需继承此类。


BaseModel.java


另外,再facade模块中,新建一个包com.idlewow.admin.model,并添加管理员类SysAdmin,


SysAdmin.java


在rms模块中,新建包com.idlewow.rms.controller, 并新建一个登陆认证的controller, 在这里,我们直接写死账号admin可登陆,并自动添加密码123456,方便开发,


AuthorizeController


在webapp目录下,添加login.html登陆页面,这里直接使用xadmin提供的模板,对js稍作改动,


login.html


在webapp目录下,添加authorize.jsp,用来验证身份,后面所有需要登陆的页面,均需引用此页面,


authorize.jsp


在webapp目录下,添加index.jsp,作为登陆成功后的跳转首页,这个页面也直接使用xadmin提供的模板,


index.jsp


4.项目启动


  这里,为了方便快捷,我们使用maven插件启动,在rms的pom中添加build节点如下,指定我们使用maven的tomcat7插件启动,好处是启动、热更新比较快,不用单独下载tocmat,缺点是内置的tomcat版本较低是7.0.47,并且不能调整。


View Code


 和前面编辑打包命令类似,我们打开编译启动配置即 “Build -- > Edit Confiruations", 新建一个maven项,目录选择rms模块路径,命令输入:tomcat7:run,如下图:


502227-20190618154429298-237350972.png


 点击OK后,使用此项配置,启动RMS项目即可。运行效果如图:


微信图片_20220423170303.gif


结语


  本章对RMS模块进行了配置搭建,使整个网站能够运行起来。


下面将开始实现后台数据的配置录入功能。主要涉及到的模块,core, facade, rms。





相关文章
|
数据采集 数据处理 索引
DataFrame
【10月更文挑战第13天】
1285 2
|
数据采集 开发者 Python
Python之怎么爬取图片网站
Python之怎么爬取图片网站
|
Python
Python中threading模块的常用方法和示例
Python 的 `threading` 模块提供了多线程编程的能力,允许同时执行多个线程。主要类包括 `Thread`、`Lock` 和 `Condition`。`Thread` 类用于创建和管理线程,`Lock` 用于同步线程,防止资源竞争,`Condition` 用于线程间协调。本文介绍了这些类的常用方法及示例代码,帮助你更好地理解和使用多线程编程。
349 0
|
弹性计算
阿里云服务器最新价格参考,100元-5000元预算可购买的云服务器配置及价格汇总
2024购买阿里云服务器多少钱?由于个人和企业用户的上云场景和预算不同,不同预算可购买的阿里云服务器实例规格和配置不同,一般来说个人用户购买云服务器的预算都在100元-500元以内,普通企业用户预算大多在1000-3000元之间,大型企业因为对云服务器性能要求更高,一般会将预算提高到3000元-5000元以上,那么这些预算能买到一个什么配置的阿里云服务器呢?下面是截止目前不同预算情况下,可购买的阿里云服务器配置和活动价格及券后价格整理,以供大家参考选择。
2445 1
阿里云服务器最新价格参考,100元-5000元预算可购买的云服务器配置及价格汇总
|
机器学习/深度学习 算法 数据可视化
面向萌新的数学建模入门指南
面向萌新的数学建模入门指南
1347 0
|
自然语言处理 Java 测试技术
序列化性能之巅:使用Fury替换Protobuf/Flatbuffers实现10倍加速
问题背景Protobuf/Flatbuffers是业界广泛使用的序列化库,服务于大量的业务场景。但随着业务场景的复杂化,Protobuf/Flatbuffers逐渐不能满足性能需求开始成为系统瓶颈,在这种情况下,用户不得不手写大量序列化逻辑来进行极致性能优化,但这带来了三个问题:大量字段手写序列化逻辑冗长易出错;手写重复序列化逻辑开发效率低下;难以处理发送端和接收端字段变更的前后兼容性问题;这里将
5536 0
序列化性能之巅:使用Fury替换Protobuf/Flatbuffers实现10倍加速
|
定位技术
从零开始实现放置游戏(一)——游戏设计
想要做一款成功的游戏,离不开优秀的策划,设计,玩法,美术,等等等等。这其中需要学习的东西太多。然而多想无益,这些东西越学越多,只有先尽快做出成品,然后不断迭代,才能更加深入了了解。因此,这里我们直接参考已有的成功案例,并加入一些我们自己的理解,适当改良。
从零开始实现放置游戏(一)——游戏设计
|
存储 前端开发 算法
从零开始实现放置游戏(十五)——实现战斗挂机(6)在线打怪练级
 本章初步实现游戏的核心功能——战斗逻辑。   战斗系统牵涉的范围非常广,比如前期人物的属性、怪物的配置等,都是在为战斗做铺垫。   战斗中,人物可以施放魔法、技能,需要技能系统支持。   战斗胜利后,进行经验、掉落结算。又需要背包、装备系统支持。装备系统又需要随机词缀附魔系统。   可以说是本游戏最硬核的系统。   因为目前技能、背包、装备系统都还没有实现。我们先初步设计实现一个简易战斗逻辑。   战斗动作仅包括普通攻击,有可能产生未命中、闪避和暴击。
从零开始实现放置游戏(十五)——实现战斗挂机(6)在线打怪练级
|
程序员 C# 数据库
一个C#开发的Windows远程桌面工具
一个基于 MSTSC 连接 Windows 远程桌面,并对其进行封装实现管理多个远程桌面配置的小工具,兼容Windows XP及以上的系统。支持多个服务器同时连接,远程登录信息保存管理,基本可以满足日常的工作需求。
680 0
一个C#开发的Windows远程桌面工具
交换机堆叠技术
交换机堆叠技术
386 0
交换机堆叠技术