前面几章实现了在RMS系统中进行数据的增删查改以及通过Excel批量导入.但仍有遗留的问题,比如在新增或编辑时,怪物的生命值.护甲等数据我们可以输入负值,这种数据是不合理且没有意义的.本章我们就实现服务端对参数的校验. 一.添加依赖项 在rms模块的pom.xml中,添加校验组件的依赖项(注意:之前的组件我们都引用了最新版本.但因hibernate-validator的最新版本6.xx+中引用的el-api.jar有冲突,无法用maven插件启动,所以这里使用5.1.1版本): <!-- 参数校…
前面实现RMS系统时,我们让其直接访问底层数据库.后面我们在idlewow-game模块实现游戏逻辑时,将不再直接访问底层数据,而是通过hessian服务暴露接口给表现层. 本章,我们先把hessian服务搭好,并做一个简单的测试,这里以用户注册接口为例. 先简单介绍下,实现hessian接口,只需要在facade模块暴露接口,然后在core模块实现接口,最后在hessain模块配置好接口路由,将其启动即可. 实现步骤 idlewow-facade 新建包com.idlewow.user.mod…
前两张,我们已经实现了登陆界面和游戏的主界面.不过游戏主界面的数据都是在前端写死的文本,本章我们给game模块添加websocket组件,实现前后端通信,这样,前端的数据就可以从后端动态获取到了. 一.添加maven依赖 在game模块的pom中,我们添加3个依赖包如下: <!-- websocket组件 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spr…
前面我们已经实现了在后台管理系统中,对配置数据的增删查改.但每次添加只能添加一条数据,实际生产中,大量数据通过手工一条一条添加不太现实.本章我们就实现通过Excel导入配置数据的功能.这里我们还是以地图数据为例,其他配置项可参照此例. 涉及的功能点主要有对office文档的编程.文件上传功能.流程图大致如下: 一.添加依赖项 解析office文档推荐使用免费的开源组件POI,已经可以满足80%的功能需求.上传文件需要依赖commons-fileupload包.我们在pom中添加下列代码: <!-…
前面我们已经实现了在后台管理系统中,对配置数据的增删查改.但每次添加只能添加一条数据,实际生产中,大量数据通过手工一条一条添加不太现实.本章我们就实现通过Excel导入配置数据的功能.这里我们还是以地图数据为例,其他配置项可参照此例. 涉及的功能点主要有对office文档的编程.文件上传功能.流程图大致如下: 一.添加依赖项 解析office文档推荐使用免费的开源组件POI,已经可以满足80%的功能需求.上传文件需要依赖commons-fileupload包.我们在pom中添加下列代码: <!-…
上一章讲到小程序页面的四种常见的跳转的方法,这一章写如何引入一个外部的js文件,既utils文件夹的用处,其实步骤很简单: 1:准备好外部想要引入的外部文件,命名为util.js,并且填充固定的文件内容(一般是固定的库) 2:打开util.js ,继续填写重要内容将要使用的方法用module.exports给暴露出来,如图所示( 我暴露了一个方法: imageUtil,若有很多方法,则用json形式) module.exports = { imageUtil: imageUtil } 3:将外部…
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. 配置文件说明 网站配置文件是在根目录下的**_config.yml文件,是yaml格式的. 所有的配置项后面的冒号(:)与值之间要有一个空格.** 官方配置文件说明 # Hexo Configuration ## Docs: https://hexo.io/docs/configuration.h…
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 弹出地鼠 现在我们已经确认地鼠被放置在正确的位置上了,让我们添加它们弹出洞的代码吧. 首先,将原来999的z序改回0,使地鼠呆在地底下. 然后添加如下代码到init方法的底部…
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 用plist列表文件来表示游戏数据 因为在这个炸弹人游戏中有很多不同的关卡,难度依次上升,所以对于每个关卡的数据我们必须存放在某个地方,有很多种保存方法,这里我们选择使用plist列表文件来保存每个关卡的数据. 选择Resources目录,在其中新建一个plist文件,命名为LevelsData.plist. 下面我们要想一想里面到底要存放神马数据. 大致有这些…
背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七牛云OSS来存储图片.视频等资源了. 先说一下OSS对象存储的优点: 1)通过Raid与LVM等手段,对数据提供了保护 2)可以将多块廉价的硬盘组合起来,称为一个大容量的逻辑盘对外提供服务,提高了容量 3)写入数据时,由于是多块磁盘组合出来的逻辑盘,所以几块硬盘可以并行写入的,提升了读写效率 4)很…
一,类的属性 (1)示例 通过属性获取已经创建对象的个数 class Plane: pCount = 0 #类属性 def __init__(self,name,category): self.name = name self.category = category #实例属性 Plane.pCount += 1 print ('已生产,Plane.pCount,'架飞机') p1 = Plane('平安','播音777') print ('已生产',PlanepCount,'架飞机') #输出…
一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基本上就算是搭好了,您坑定迫不及待的想做开发了吧.先等一等,容我先来介绍一下一些3d方面的基础知识. 一.坐标轴 说到坐标轴,很多同学第一时间想到的可能是这样的 不错这也是坐标轴,只不过这里是二维坐标轴,untiy里面是3D坐标轴.讲到3D坐标轴不得不讲一下,3D坐标轴分为左手坐标轴系和右手坐标轴系(…
一.OpenFegin 介绍 Feign是一个声明性的Web服务客户端. 它使编写Web服务客户端变得更容易. 要使用Feign,请创建一个界面并对其进行注释. 它具有可插入的注释支持,包括Feign注释和JAX-RS注释. Feign还支持可插拔编码器和解码器. Spring Cloud增加了对Spring MVC注释的支持,并使用了Spring Web中默认使用的相同HttpMessageConverters. Spring Cloud集成了Ribbon和Eureka,在使用Feign时提供…
一.内联式css样式,直接写在现有的HTML标签中 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>认识html标签</title> <style type="text/css"> span{ color…
CCParticleSystem是用来设置粒子效果的类 1.粒子分为两种模式:重力模式 和 半径模式 重力模式独占属性: gravity 重力方向,Vec2类型,可以分别指定不同方向的重力大小 speed 粒子运动的速度 radialAccel 向心加速度 tangentialAccel 切向加速度 rotationIsDir 自转方向 半径模式独占属性: startRadius 开始半径 endRadius 结束半径 rotatePerSecond 每秒旋转多少角度 两种模式共有属性: ang…
import java.io.Serializable; import lombok.Data; import org.springframework.http.HttpStatus; @Data public class Result implements Serializable { private static final long serialVersionUID = -1802122468331526708L; private Integer code;// 状态码 private S…
1.强制类型转换需要在后面加两个感叹号 2.如果需要在java代码调用kotlin的方法时候使用文件名+kt.方法 3.object 类名 是创建匿名内部类的写法 调用 传入class对象 4.在toklin中所有的class都是kclass 5.如果调用字段起冲突使用两个反引号''包裹进去 6.如果有基本数据类型和包装类型会认为是同一个,没有包装类型一说,如何调用包装类型反射可以. 7.传入字符串如果自己不确定是否为空,可让代码为空安全,第三种 8.@JvmStatic可以让方法称为publi…
package com.summer.cn; import java.util.Scanner; public class Test041509 { /** * java 随机数 Math * Math java.lang.Math包 数值型 操作 * * 随机数 Math.random() [0,1) 随机数产生的是一个 大于等于0 小于1的数 * * 产生[0,5)之间随机整数 Math.random()*5 * * 10-15 [10,15]之间的随机整数? * int a=(int) (…
前言 下面就开始总结C#4.0的一些变化了, 也是这本书中最后的一点内容了, 这一部分终于要更新完了. 同时感觉再来读第二遍也有不一样的收获. 今天很嗨的是武汉下雪了,明天周六,一切都是这么美好.哈哈哈.主要内容有: 可选参数和命名实参, 泛型的可变性, 动态类型 1,可选参数和命名实参1.1可选参数可选参数和命名实参就如同一对好基友, 因为它们经常一起使用. 可选参数重在"可选", 即在调用方法时, 该参数可以明确指定实参, 也可以不指定实参.如下代码: class Program…
基于Java自身包实现消息方式的系统间通信的方式有:TCP/IP+BIO,TCP/IP+NIO,UDP/IP+BIO,UDP/IP+NIO.下面就这4种类型一一做个详细的介绍: 一.TCP/IP+BIO 在java中可基于Socket,ServerSocket来实现TCP/IP+BIO的系统间通信.Socket主要用于实现建立连接以及网络IO的操作,ServerSocket主要用于实现服务器端端口的监听及Socket对象的获取.基于Socket实现客户端的代码如下: public class C…
AA 碰撞体 就是将所有的物体设置为矩形框进行碰撞计算.下面是代码 /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a c…
注意:mac ox .lua version :5.15 下载lua官网的lua, 注意:最好是5.15下面.5.2的lua不支持table的getn()方法,这让我情何以堪.(获取table长度.相当与cout.size,length) 下载解压, cd 文件夹 make macosx sudo make install (是的.就是小写的install,尽管目录下的是INSTALL) ook,进入命令行.输入lua 看下,效果…
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST"]) 为什么要这么用?其中的工作原理我们知道多少? @app.route() 装饰器中的参数 methods methods : 当前 url 地址,允许访问的请求方式,默认是GET @app.route('/login', methods=['GET', 'POST']) # methods指定这个列表后…
进程的切换和系统的一般执行过程 一.内容总结与分析 进程调度与进程调度时机 进程调度需求的分类: 第一种分类方式: I/O -bound(频繁进行I/O,通常会花很多时间等待I/O操作) CPU-bound(计算密集型.需要花大量CPU时间进行运算) 第二种分类方式: 批处理进程(后台进行,典型:编译程序.科学计算) 实时进程(有实时需求响应时间短.稳,典型:视频.音频.机械控制) 交互式进程(与用户交互多,响应时间要快,典型:shell.文本编辑程序.图形应用程序) Linux调度基于分时和优…
一.缺省模板参数 回顾前面的文章,都是自己管理stack的内存,无论是链栈还是数组栈,能否借助标准模板容器管理呢?答案是肯定的,只需要多传一个模板参数即可,而且模板参数还可以是缺省的,如下: template <typename T, typename CONT = std::deque<T> > class Stack { … private: CONT c_; }; 如果没有传第二个参数,默认为deque 双端队列,当然我们也可以传递std::vector<T> 下…
原创文章,欢迎转载.转载请注明:关东升的博客 参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现.看下面的一个示例: func increment(inout value:Double, amount:Double = 1.0) { value += amount } var value : Double = 10.0…
函数 function function_name(){    statement1    Statement2    ....    statementn} function_name $var1 $var2 .... 传参原理 参数 $0 当前脚本的文件名 $n 传递给脚本或函数的参数. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数.(把所有参数视为一个参数,不可迭代) $@ 传递给脚本或函数的所有参数.(可迭代每一个参数) $? 上个命令的退出状态,或函数的返回值.…
一. 简介 1.路由的概念 路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源.那么url地址和真实的资源之间就有一种对应的关系,就是路由. 路由分为前端路由和后端路由: (1).后端路由是由服务器端进行实现,并完成资源的分发. (2).前端路由是依靠hash值(锚链接)的变化进行实现. 前端路由的基本概念:根据不同的事件来显示不同的页面内容,即事件与事件处理函数之间的对应关系前端路由主要做的事情就是监听事件并分发执行事件处…
Windows游戏编程之从零开始d I'm back~~恩,几个月不见,大家还好吗? 这段时间真的好多童鞋在博客里留言说或者发邮件说浅墨你回来继续更新博客吧. woxiangnifrr童鞋说每天都在来浅墨的博客逛一下看有没有更新,"每天都来就像看女神那般不依不舍",弄得我再不更新都不好意思了,哈哈~怎么说呢,前段时间忙毕设,回国,暑假,间隔年旅行休整,然后是适应新的生活,各种事情,也真正没有心境来更新博客了,最近正好心境安定下来,就继续开始写博.额,关于思想汇报改天我专门写一篇文章和大…
<从零开始PYTHON3>第七讲 人生是由无数个选择组成,每个选择都有不同的限定条件.现在来说人生有点早是吧:)不过事实的确是这样的. 程序也充满着选择,满足不同的条件,则运行不同的运算.这些对不同运算的选择,则被称为分支,或者叫"条件分支". 在Python中,最简单的条件分支是这个样子(伪代码): if 条件: 满足条件时执行的分支 条件不满足时,或者条件满足.执行完分支之后,会继续从这里开始执行 用真实的代码来看个例子: #当a的值大于3的时候,显示a的值 if a…