King of Bots 项目开发
项目构思
PK 界面:匹配界面(微服务)/ 对战实况(
websocket
)/ 真人PK(websocket
)对战列表:录像回放
排行榜:
Bot
列表用户中心(注册登录 我的
Bot
Bot
记录)websocket 长连接 服务器主动向客户端发请求
扩展形式:后端:Mysql redis 硬盘 微服务 前端/小程序:vue3
1. 配置Git与项目创建
Git
的作用:存档、同步代码、多人协作(Git
原理:Linux
基础课)
git
操作:git init/git status/git add ./git commit -m "添加一些描述"/git push
2. 创建菜单
个人开发也是一般先写前端,再写后端。
创建导航栏组件:NavBar.vue 每个组件要有两个字母大写(限制)。这里不要忘了在app.vue里面导入,这里还需要导入bootstrap中的js和css,在script部分写。
NavBar.vue界面:不需要自己写前端代码,直接复制Bootstrap中的对应的代码就行,这里类似的前端框架有很多,Bootstrap、ElementUI等。
导航栏设计界面:1. PK界面 2. 记录界面 3. 排行榜界面 4. 对局列表 5. 404 界面。分别创建.vue文件,写三个基本标签。
设置路由规则:/router/index.js中,在主页上和每个button一一对应
用router-link
代替a标签可以实现点击不刷新页面。
设置一个统一的组件ContentField
作为card用来设计内部内容,如果需要修改样式只要在这个统一的组件里修改即可。
3. 游戏界面
requestAnimationFrame()
每次刷新页面需要递归调用的回调函数
构造函数中的start ()
只执行一次,update ()
每一帧执行一次,除了第一帧之外 on_destroy ()
删除之前执行 destroy ()
移动的速度概念:帧与帧之间的时间间隔timedelta
蛇:每1,2,3,4,5,6,7,8,9,10,13,16,3n+1时刻增长一格
1 | <canvas ref="canvas" tabindex="0"> </canvas> |
tabindex="0"
使得canvas可以获取用户键盘输入
4. Mysql
mysql
服务的关闭与启动:
- 关闭:
net stop mysql80
- 启动:
net start mysql80
mysql
的常用操作
- 连接用户名为
root
,密码为123456
的数据库服务:mysql -uroot -p123456
show databases;
:列出所有数据库create database kob;
:创建数据库drop database kob;
:删除数据库use kob;
:使用数据库kobshow tables;
:列出当前数据库的所有表create table user(id int, username varchar(100)
):创建名称为user
的表,表中包含id
和username
两个属性。drop table user;
:删除表insert into user values(1, 'yxc');
:在表中插入数据select * from user;
:查询表中所有数据delete from user where id = 2;
:删除某行数据
配置SpringBoot
:
在pom.xml文件中添加依赖:
1
2
3
4
5
6
7
8
9Spring Boot Starter JDBC
Project Lombok
MySQL Connector/J
mybatis-plus-boot-starter
mybatis-plus-generator
spring-boot-starter-security
jjwt-api
jjwt-impl
jjwt-jackson在
application.properties
中添加数据库配置:
1 | spring.datasource.username=root |
SpringBoot
中的常用模块pojo
层:将数据库中的表对应成Java
中的Class
mapper
层(也叫Dao
层):将pojo
层的class
中的操作,映射成sql
语句,实现crudservice
层:写具体的业务逻辑,组合使用mapper
中的操作controller
层:负责请求转发,接受页面过来的参数,传给Service
处理,接到返回值,再传给页面
Mybatis Plus 封装了很多crud,不用手写sql语句。一个表对应一个pojo,对应一个mapper
查找用户:(1)selectOne (2)selectById
1 | (1)selectOne |
1 | @Autowired 和 @Service |
密码加密存入数据库中
URL:(1)公开URL 例如/login 与数据库比对,比对成功分配一个sessionID(jwt-token),存在浏览器cookie中
(2)授权URL 例如/ 判断session(jwt-token)是否有效,有效将user定位到上下文。访问controller
JWT验证,便于跨域,而且不需要在服务器端存储(获取到一个令牌就可以登录多个服务器)
写一个API的流程:(1)service里写接口 (2)在service.Impl里实现接口 (3)在controller里调用
4.3 任务:前端页面的授权、注册页面、登录状态持久化
如果一个页面不修改store中state的值,那么就不用把ajax放进vuex里面。store中存放的是全局变量。
actions中放那个异步操作,mutations中放同步操作。
5. 个人中心界面
数据库新建一个表,date类型数据只有时间,datetime包括年月日时分秒
数据库中用下划线,pojo里面用驼峰命名法。
流程:
1、建数据库
2、写pojo
3、写mapper
4、写controller
4.1写service接口
4.2写impl实现(重点)
4.3写一个controller
怎么找maven依赖??