11 2016 档案

摘要:涉及到 CSS3 的动画(animation)、2D 转换(transform: scale),具体如代码所示。 github: https://github.com/wind-stone/CSS3-Circle-Diffusion 阅读全文
posted @ 2016-11-30 15:10 jiangxiaobo 编辑
摘要:最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意。后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什么区别,就去查了查。原来是MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 MyI 阅读全文
posted @ 2016-11-29 16:00 jiangxiaobo 编辑
摘要:60进制就是时间中的分秒0.629度*60=3.774分0.774分*60=4.644秒所以114.629度就是114度3分4.644秒 追问:方法对,但得数好像不对吧。追答:呃,我是口算的 我再算一遍 0.629度*60=3.774分 0.774分*60=4.644秒 就是144度3分4.644秒 阅读全文
posted @ 2016-11-29 14:31 jiangxiaobo 编辑
摘要:语句 set names utf8;用于设定数据库编码,让中文可以正常显示。 1.创建数据库:CREATE DATABASE `database` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci '; 2.创建表:CREATE TABLE `databas 阅读全文
posted @ 2016-11-28 18:10 jiangxiaobo 编辑
摘要:使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小、字符集、用户等等。下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 2:查看当前使用的数据库 3:查看数据库使用端口 4:查看当前数据库大小 例如,我要查看INVOICE数据库的大小,那么可以通过下面SQL查看 查看数据 阅读全文
posted @ 2016-11-28 18:03 jiangxiaobo 编辑
摘要:前言: 游戏领域, 特别是移动端的社交类游戏, 排行榜成为了一种增强体验交互, 提高用户粘性的大法宝. 这边讲述在不同用户规模下, 游戏服务化/游戏平台化趋势下, 如何去设计和实现游戏排名榜. 本文侧重于传统关系型Mysql的方案实现, 后续会讲解Nosql的作用. 小编(mumuxinfei)对这 阅读全文
posted @ 2016-11-28 16:34 jiangxiaobo 编辑
摘要:前言: 游戏领域, 特别是移动端的社交类游戏, 排行榜成为了一种增强体验交互, 提高用户粘性的大法宝. 这边讲述在不同用户规模下, 游戏服务化/游戏平台化趋势下, 如何去设计和实现游戏排名榜. 本文侧重讲解Nosql在游戏排名榜中的作用. 小编(mumuxinfei)对这块认识较浅, 所述观点不代表 阅读全文
posted @ 2016-11-28 16:33 jiangxiaobo 编辑
摘要:前言: 对弈类游戏的智能算法, 网上资料颇多, 大同小异. 然而书上得来终觉浅, 绝知此事要躬行. 结合了自己的工程实践, 简单汇总整理下. 一方面是对当年的经典<<PC游戏编程(人机博弈)>>表达敬意, 另一方面, 也想对自己当年的游戏编程人生做下回顾. 承接上三篇博文: (1). 评估函数+博弈 阅读全文
posted @ 2016-11-28 16:32 jiangxiaobo 编辑
摘要:前言: 闲得没事, 网上搜"游戏AI", 看到一篇<<2048游戏的最佳算法是?来看看AI版作者的回答>>的文章. 而这篇文章刚好和之前讲的对弈类游戏AI对应上. 于是有了想法, 想把它作为一个实例来进行解读, 从而对之前偏理论的文章做个总结. 承接上四篇博文: (1). 评估函数+博弈树算法 (2 阅读全文
posted @ 2016-11-28 16:31 jiangxiaobo 编辑
摘要:前言: 首先, 我得假正经的郑重宣布: "取这个名字, 并非卖萌", ^_^. 萌萌哒的世界, 大叔你不懂, hoho. 言归正传, 记得我还在读大学的时候, 学院老师和某社团搞了一个"老鼠吃大米"的游戏比赛, 其平台是基于J2SE实现, 意在推广JAVA语言, 门槛不高, 活动反响好. 游戏重在参 阅读全文
posted @ 2016-11-28 16:30 jiangxiaobo 编辑
摘要:前言: 08年的时候, 写过一个台球游戏, 用的是java, 不过代码真的是用传说中的神器notepad写的(你信吗? 其实是用GVIM写的, ^_^), 很多类都在同一java文件中编写. 可见当时的JAVA水平真的不咋地, 时过进迁, 还是一样的不咋地. 这边是当时的CSDN下载链接: java 阅读全文
posted @ 2016-11-28 16:28 jiangxiaobo 编辑
摘要:前言: 最近研究了box2dweb, 觉得自己编写Html5版台球游戏的时机已然成熟. 这也算是圆自己的一个愿望, 一个梦想. 承接该序列的相关博文: • 台球游戏核心算法和AI(1) 同时结合html5的学习笔记: • box2dweb 学习笔记--sample讲解 这篇文章, 具体讲解台球游戏的 阅读全文
posted @ 2016-11-28 16:27 jiangxiaobo 编辑
摘要:前言: 俄罗斯方块和五子棋一样, 规则简单, 上手容易. 几乎每个开发者, 都会在其青春年华时, 签下"xx到此一游". 犹记得大一老师在布置大程作业的时候提过: "什么都可以写, 唯一不能写的是俄罗斯方块". 这次想借学Html5的机会, 重温下俄罗斯方块. 当然不是单一的实现, 希望有所创新, 阅读全文
posted @ 2016-11-28 16:26 jiangxiaobo 编辑
摘要:前言: 上文中谈到了H5版俄罗斯方块的需求和目标, 这次要实现一个可玩的版本. 但饭要一口一口吃, 很多东西并非一蹴而就. 本文将简单实现一个可玩的俄罗斯方块版本. 下一步会引入AI, 最终采用cocos2d-js来重构之. 本系列的文章链接如下: 1). 需求分析和目标创新 这些博文和代码基本是同 阅读全文
posted @ 2016-11-28 16:25 jiangxiaobo 编辑
摘要:前言: 算是"long long ago"的事了, 某著名互联网公司在我校举行了一次"lengend code"的比赛, 其中有一题就是"智能俄罗斯方块". 本着一向甘做分母, 闪耀分子的绿叶精神, 着着实实地打了一份酱油. 这次借学习H5的机会, 再来重温下俄罗斯方块的AI编写. 本系列的文章链接 阅读全文
posted @ 2016-11-28 16:23 jiangxiaobo 编辑
摘要:前言: 勿忘初心, 本系列的目标是实现一款类似QQ"火拼系列"的人机对战版俄罗斯方块. 在完成了基本游戏框架和AI的算法探索后, 让我们来尝试一下人机大战雏形编写. 本系列的文章链接如下: 1). 需求分析和目标创新 2). 游戏的基本框架和实现 3). 游戏的AI算法 这些博文和代码基本是同步的, 阅读全文
posted @ 2016-11-28 16:22 jiangxiaobo 编辑
摘要:前言: 产品的形态是不断迭代的, 从粗糙到精致, 从简易到立体. 有了最初的技术积累和时间思考后, 终于明确了该游戏的方向. 我想说的是: 技术不是重点, 产品/用户体验才是核心议题. 结合朋友的游戏体验反馈和意见, 本文梳理了最新版火拼俄罗斯游戏的草案, 为后续指明方向. 本系列的文章链接如下: 阅读全文
posted @ 2016-11-28 16:20 jiangxiaobo 编辑
摘要:前言: 记得上大学那会, 有位传说中的大牛, 写了一个网页闯关类的游戏. 当时我们玩得不亦乐乎, 也是第一次接触到这种形式的游戏. 不过当时纯玩家心态, 并没有想过去创造一个. 最近想起这事, 突然想复制实现一个类似的网页闯关游戏. 说干就干, 抄起家伙, 就是一顿猛打, ^_^. 期间的坎坷曲折暂 阅读全文
posted @ 2016-11-28 16:19 jiangxiaobo 编辑
摘要:前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 本文讲描述, 如何在网页端实现一个仿微信的聊天窗口界面, 以及其中涉及到的一些技术点. 作者前端是初学者, 请大拿们轻拍. 效果展示: 先打 阅读全文
posted @ 2016-11-28 16:18 jiangxiaobo 编辑
摘要:前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞, 比如SQL注入攻击, XSS攻击. 本文将简述SQL注入攻击的原理, 并分享下关卡设计, 其在打 阅读全文
posted @ 2016-11-28 16:16 jiangxiaobo 编辑
摘要:前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 对于刮刮卡, 想必大家都很熟悉, 也很喜欢这种方式. 你可能会很好奇, 它是如何实现的呢? 本文将阐述其原理, 并结合具体实例来演示如何借助 阅读全文
posted @ 2016-11-28 16:09 jiangxiaobo 编辑
摘要:1.下载box2dweb.直接在页面中引用即可。 -Box2D.js是未压缩版 -Box2d.min.js是压缩版 2.编写HelloWorld代码。 阅读全文
posted @ 2016-11-28 15:02 jiangxiaobo 编辑
摘要:1 概述 前篇基础文章看完后基本上就应该对box2dweb能上手了,下面来介绍一下box2dweb非常重要的一个概念,关节(joint)也有叫连接器的,总之是一个意思。下面是关节详细的类库说明: BOX2D.Dynamics.Joints>>>动态关节包;b2DistanceJoint 距离连接b2 阅读全文
posted @ 2016-11-28 14:55 jiangxiaobo 编辑
摘要:简介 大名鼎鼎的物理引擎box2d基本上大家都听说过,网上有两个javascript版本的box2d库,一个时box2djs,已经停止维护,一个是box2dweb。下面就来介绍一下box2dweb的基本信息。 一 包,类介绍 二 创建世界 上面这段代码就创建了一个box2d的世界(Box2D.Dyn 阅读全文
posted @ 2016-11-28 14:54 jiangxiaobo 编辑
摘要:https://github.com/kripken/box2d.js/ Demo: http://kripken.github.io/box2d.js/webgl_demo/box2d.html 演示: http://kripken.github.io/box2d.js/webgl_demo/bo 阅读全文
posted @ 2016-11-28 13:54 jiangxiaobo 编辑
摘要:存储过程和存储函数 MySQL的存储过程(stored procedure)和函数(stored function)统称为stored routines。 1. MySQL存储过程和函数的区别 函数只能通过return语句返回单个值或者表对象。而存储过程不允许执行return,但是通过out参数返回 阅读全文
posted @ 2016-11-25 14:09 jiangxiaobo 编辑
摘要:1、生成思路 利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中 2、创建内存表及普通表 CREATE TABLE `vote_record_memory` ( `id` INT (11) NOT NULL AUTO_INCREMENT, `us 阅读全文
posted @ 2016-11-25 12:04 jiangxiaobo 编辑
摘要:前提是你电脑里已装有SVN,这时只是设置快捷调用SVN. 1、通过快捷键 ctrl+` 或者 View > Show Console 菜单打开控制台 2、粘贴对应版本的代码后回车安装 适用于 Sublime Text 3: 适用于 Sublime Text 2: 3.sublime Text2/3 阅读全文
posted @ 2016-11-24 09:53 jiangxiaobo 编辑
摘要:版本管理一直是程序员使用频率比较高的一个工具软件。不管你是自己使用还是提供给别人使用,svn服务器的架设是一个入门功课。今天我们先来介绍一下怎么样在本地搭建svn服务器。这种应用一般是网络不是很好,提交频繁或者没有专门的独立主机的同学们适用。 版本管理一直是程序员使用频率比较高的一个工具软件。不管你 阅读全文
posted @ 2016-11-21 10:25 jiangxiaobo 编辑
摘要:万丈高楼平地起,基础很重要。 viewport 表示SVG可见区域的大小,或者可以想象成舞台大小,画布大小。 上面的SVG代码定义了一个视区,宽500单位,高300单位。 注意这里的措辞是“单位”,不是“像素”。虽然说,width/height如果是纯数字,使用的就是“像素”作为单位的。 也就是说, 阅读全文
posted @ 2016-11-20 00:32 jiangxiaobo 编辑
摘要:删除警告 为了减少文件大小,Vue 精简独立版本已经删除了所有警告,但是当你使用 Webpack 或 Browserify 等工具时,你需要一些额外的配置实现这点。 Webpack 使用 Webpack 的 DefinePlugin 来指定生产环境,以便在压缩时可以让 UglifyJS 自动删除代码 阅读全文
posted @ 2016-11-18 11:00 jiangxiaobo 编辑
摘要:介绍 在很多Vue项目中,我们使用 Vue.component 来定义全局组件,紧接着用new Vue({ el: '#container '}) 在每个页面内指定一个容器元素。 这种方案在只是使用 JavaScript 增强某个视图的中小型项目中表现得很好。然而在更复杂的项目中,或者当你的前端完全 阅读全文
posted @ 2016-11-18 10:58 jiangxiaobo 编辑
摘要:开发插件 插件通常会为Vue添加全局功能。插件的范围没有限制——一般有下面几种: 添加全局方法或者属性,如: vue-element 添加全局资源:指令/过滤器/过渡等,如 vue-touch 通过全局 mixin方法添加一些组件选项,如: vuex 添加 Vue 实例方法,通过把它们添加到 Vue 阅读全文
posted @ 2016-11-18 10:57 jiangxiaobo 编辑
摘要:基础 混合是一种灵活的分布式复用 Vue 组件的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。 例子: 选项合并 当组件和混合对象含有同名选项时,这些选项将以恰当的方式混合。比如,同名钩子函数将混合为一个数组,因此都将被调用。另外,混合对象的 阅读全文
posted @ 2016-11-18 10:55 jiangxiaobo 编辑
摘要:简介 除了默认设置的核心指令( v-model 和 v-show ),Vue 也允许注册自定义指令。注意,在 Vue2.0 里面,代码复用的主要形式和抽象是组件——然而,有的情况下,你仍然需要对纯 DOM 元素进行底层操作,这时候就会用到自定义指令。下面这个例子将聚焦一个 input 元素,像这样: 阅读全文
posted @ 2016-11-18 10:53 jiangxiaobo 编辑
摘要:过渡状态 Vue 的过渡系统提供了非常多简单的方法设置进入、离开和列表的动效。那么对于数据元素本身的动效呢,比如: 数字和运算 颜色的显示 SVG 节点的位置 元素的大小和其他的属性 所有的原始数字都被事先存储起来,可以直接转换到数字。做到这一步,我们就可以结合 Vue 的响应式和组件系统,使用第三 阅读全文
posted @ 2016-11-18 10:31 jiangxiaobo 编辑
摘要:大部分的基础内容我们已经讲到了,现在讲点底层内容。Vue 最显著的一个功能是响应系统 —— 模型只是普通对象,修改它则更新视图。这会让状态管理变得非常简单且直观,不过理解它的原理以避免一些常见的陷阱也是很重要的。在本节中,我们将开始深挖 Vue 响应系统的底层细节。 如何追踪变化 把一个普通 Jav 阅读全文
posted @ 2016-11-17 17:54 jiangxiaobo 编辑
摘要:什么是组件? 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。 使用组件 注册 之前说过, 阅读全文
posted @ 2016-11-16 22:57 jiangxiaobo 编辑
摘要:基础用法 你可以用 v-model 指令在表单控件元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖,它负责监听用户的输入事件以更新数据,并特别处理一些极端的例子。 v-model 并不关心表单控件初始化所生成的值。因为它会选择 阅读全文
posted @ 2016-11-16 05:42 jiangxiaobo 编辑
摘要:监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码。 示例: 结果: 增加 1 这个按钮被点击了 0 次。 这个按钮被点击了 0 次。 方法事件处理器 许多事件处理的逻辑都很复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v- 阅读全文
posted @ 2016-11-16 05:14 jiangxiaobo 编辑
摘要:v-for 我们用 v-for 指令根据一组数组的选项列表进行渲染。 v-for 指令需要以item in items 形式的特殊语法, items 是源数据数组并且 item 是数组元素迭代的别名。 基本用法 结果: Foo Bar 在 v-for 块中,我们拥有对父作用域属性的完全访问权限。 v 阅读全文
posted @ 2016-11-16 03:43 jiangxiaobo 编辑
摘要:v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: 在 Vue.js ,我们使用 v-if 指令实现同样的功能: 也可以用 v-else 添加一个 “else” 块: template v-if 因为 v-if 是一个指令,需要将它添加到一个元素上。但是如果我们想切换多 阅读全文
posted @ 2016-11-16 03:27 jiangxiaobo 编辑
摘要:Class 与 Style 绑定 数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。因为它们都是属性 ,我们可以用v-bind 处理它们:只需要计算出表达式最终的字符串。不过,字符串拼接麻烦又易错。因此,在 v-bind 用于 class 和 style 时, Vue.js 专门增强 阅读全文
posted @ 2016-11-16 03:22 jiangxiaobo 编辑
摘要:计算属性 在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作。在模板中放入太多的逻辑会让模板过重且难以维护。例如: 在这种情况下,模板不再简单和清晰。在实现反向显示 message 之前,你应该确认它。这个问题在你不止一次反向显示 message 的时候变得更加糟糕。 这就是为什么任何复 阅读全文
posted @ 2016-11-16 03:11 jiangxiaobo 编辑
摘要:Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上, Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,在应用状态改 阅读全文
posted @ 2016-11-16 03:03 jiangxiaobo 编辑
摘要:构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的: 虽然没有完全遵循 MVVM 模式, Vue 的设计无疑受到了它的启发。因此在文档中经常会使用 vm 这个变量名表示 Vue 实例。 在实例化 Vue 时,需要传入一个选项对象,它可以包含数据、模板、挂载元 阅读全文
posted @ 2016-11-16 02:29 jiangxiaobo 编辑
摘要:FAQ 哇,非常长的一页!是否意味着 Vue2.0 已经完全不同了呢,是否需要从头学起呢,Vue1.0 的项目是不是没法迁移了? 非常开心地告诉你,并不是! 几乎90%的 API 和核心概念都没有变。因为本节包含了很多详尽的阐述以及许多迁移的例子,所以显得有点长。不用担心,你也不必从头到尾把本节读一 阅读全文
posted @ 2016-11-15 22:18 jiangxiaobo 编辑
摘要:有人在twitter上提到了:在Chrome的JavaScript终端中,你只需要输入一个元素的ID,就可以访问到这个元素.@johnjbarton给了解释,这是因为所有的元素ID都是全局变量.本文再详细解释一下 HTML5规范文档中指出:如果一个元素符合下面两条规则中的任一条,则window对象中 阅读全文
posted @ 2016-11-14 14:30 jiangxiaobo 编辑
摘要:matrix(<a> <b> <c> <d> <e> <f>),以六个值的变换矩阵形式指定变换 translate(<tx> [<ty>]),通过 tx 和 ty 指定平移 scale(<sx> [<sy>]),通过 sx 和 sy 指定缩放操作 rotate(<rotate-angle> [<cx 阅读全文
posted @ 2016-11-11 18:02 jiangxiaobo 编辑
摘要:泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能。算法的原理很简单,就是从一个点开始附近像素点,填充成新 的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。泛红填充实 阅读全文
posted @ 2016-11-10 14:12 jiangxiaobo 编辑
摘要:封闭连通域的图像填充是个常见的算法,最近有机会接触到大图像的例子,做一下总结。 这类问题最基本的算法是种子填充。即先给出封闭区域内的一点,从这点出发搜索邻域,只要不到边界,就把相邻点纳入连通域,赋予填充色。边界的判断比较灵活,可以使用固定颜色,也可以用一定阈值的色彩容差,类似photoshop中的魔 阅读全文
posted @ 2016-11-09 14:48 jiangxiaobo 编辑
摘要://定义点的结构体 function point(){ this.x=0; this.y=0; } //计算一个点是否在多边形里,参数:点,多边形数组 function PointInPoly(pt, poly) { for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) (... 阅读全文
posted @ 2016-11-09 12:53 jiangxiaobo 编辑
摘要:hammerJS是一个优秀的、轻量级的触屏设备手势库,现在已经更新到2.04版本,跟1.0版本有点天壤地别了,毕竟改写了事件名并新增了许多方法,允许同时监听多个手势、自定义识别器,也可以识别滑动方向。 不过对于新版本的hammerJS却及其匮乏中文指引文档,就着这一点我还是上 官网翻译下英文文档,写 阅读全文
posted @ 2016-11-06 23:32 jiangxiaobo 编辑
摘要:canvas剪裁图片并上传,前端一步到位,无需用到后端 背景: 当前主流的图片剪裁主要有两种实现方式。 1:flash操作剪裁。2:利用js和dom操作剪裁。 目前看来这个剪裁主要还是先通过前端上传图片到服务器,然后前端操作后把一些坐标和大小数据传到后台, 然后后台来执行剪裁。我一直觉得这样有很多问 阅读全文
posted @ 2016-11-06 17:57 jiangxiaobo 编辑
摘要:鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemove 如果按下鼠标上的设备(左键,右键,滚轮……),则触发mousedown 当设备弹起的时候触发mouseup 目标元素的滚动条发生移动时(滚动滚轮/拖动滚动条。。)触发scr 阅读全文
posted @ 2016-11-03 11:48 jiangxiaobo 编辑
摘要:DOM0事件模型 事件模型在不断发展,早期的事件模型称为DOM0级别。 DOM0事件模型,所有的浏览器都支持。 直接在dom对象上注册事件名称,就是DOM0写法,比如: 意思就是注册一个onclick事件。当然,它和这种写法是一个意思: 这没什么,只不过是两种访问js对象属性的方法,[]的形式主要是 阅读全文
posted @ 2016-11-03 09:56 jiangxiaobo 编辑
摘要:1 (function() { 2 3 // 创建一个全局对象, 在浏览器中表示为window对象, 在Node.js中表示global对象 4 var root = this; 5 6 // 保存"_"(下划线变量)被覆盖之前的值 7 // 如果出现命名冲突或考虑到规范, 可通... 阅读全文
posted @ 2016-11-01 14:16 jiangxiaobo 编辑

点击右上角即可分享
微信分享提示