这节课实现具体的匹配系统
记录一个玄学错误。先打开前端 vue ui,再打开MySQL服务,报错。
内容包括匹配系统,联机对战,实况直播。
开发项目的思路--需要啥,定义啥
// 减少大量冗余代码
@Data注解的功能与使用方法
## 注解功能
1、@Data可以为类提供读写功能,从而不用写get、set方法。
2、他还会为类提供 equals()、hashCode()、toString() 方法。
实现地图,以及玩家基本信息同步之后。现在开始实现玩家同步。
三棋盘,两个玩家和一个云端,棋盘同步问题。
游戏完整的流程
在当你声明了一个变量,但是没有创建一个对象,会发生Exception。如果您在创建num对象之前尝试取消引用,则会得到一个NullPointerException。在最琐碎的情况下,编译器将捕获问题并让您知道“num可能尚未初始化”,但有时您编写的代码不会直接创建对象。
记录控制蛇的移动的bug。反思,先理清思路。
前端移动,事件监听,得到移动方向。
前端,监听事件没有错误
后端 OnMessage 接受信息。
空指针异常的原因,game是null,空值。这里多线程,注意下赋值。
现在错误来到了前端
else if(data.event==="move") {
console.log(data+" move 这里没错。");
// 设置蛇的移动。取出来两条蛇。设置全局变量. 存储gameObject
// 这里,去除变量有错误。
const game = store.state.pk.gameObject;
console.log("move .const game"+game);
const [snake0,snake1] = game.snakes;
console(" event move "+data.a_direction+" "+data.b_direction);
snake0.set_direction(data.a_direction);
snake1.set_direction(data.b_direction);
// 注意,是GameMap vue函数存储 GameObject全局变量
现在自己能力不足,一些玄学错误暂时没有能力解决。先从简单的开始。
现在开始实现蛇的碰撞检测。
【前端报错】Uncaught TypeError: Cannot read property'变量名' of undefined
通常undefined错就是用了一个没有定义的变量,也引申到下面这种情况:
一、现状说明
变量名定义正常;
数据成功渲染到前端;
但是一直报错Uncaught TypeError: Cannot read property' 变量名' of undefined
在js中所有没有定义的变量都是undefined,而infos[infos.length]并不存在,所以它就是undefined类型,所以报这个错误很正常。
// 这里玄学报错
const game = store.state.pk.gameObject;
console.log("全局变量 game。event 函数中 "+game);
const [snake0, snake1] = game.snakes;
Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库,缓存和消息代理。
简单来说,它是一个以(key,value)的形式存储数据的数据库.
Java bean
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
Mapper 注解
Mybatis是一个优秀的持久层框架,什么是持久层呢?就是可以长时间保存数据到数据库或者硬盘当中,不会像放在内存中,一断电就丢失了。
@Mapper注解是由Mybatis框架中定义的一个描述数据层接口的注解,注解往往起到的都是一个描述性作用,用于告诉sprigng框架此接口的实现类由Mybatis负责创建,并将其实现类对象存储到spring容器中。
首先我们需要引入jar包(依赖),分别是JDBC、MYSQL、MYBATIS。
吐血了。找了半天。