kwor'blog


kwor.cn

docker镜像发布提交

0 条评论 默认分类 无标签 kwor

首先登陆(如果没账号到hub.docker.io注册):

docker login
docker创建版本

docker commit -a "kwor" -m "备注" 82a220946895 kwor/hexo
docker提交

docker push kwor/hexo:latest

docker haproxy 安装使用

0 条评论 默认分类 无标签 kwor

1.获取最新的版本

sudo docker pull haproxy
2.新建目录并创建配置文件haproxy.cfg

global

defaults
    log global
    mode    tcp
    option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000

frontend v2ray-in
    bind *:666
    default_backend v2ray-out
backend v2ray-out
    balance     roundrobin
      server server1 104.197.157.17:666 check

frontend ss-in
    bind *:888
    default_backend ss-out
backend ss-out
    balance  roundrobin
      server server2 45.76.230.172:84 check

listen admin

bind :9090
mode   http
server web6c :9090 check
stats enable
stats uri /
stats auth kwor:385765654
stats realm Admin\ HA
stats hide-version
stats refresh 10s
stats admin if TRUE

3.启动服务

${pwd} 表示当前所在目录。
-p 端口映射,前面是本地端口(这里的80是用的shadowsock的端口,使用vmess的换成88)

-v 目录文件映射

docker run -d -p 9090:9090 -p 666:666 -p 888:888 --name haproxy -v /home/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:1.9.11

Privoxy安装配置,http代理

0 条评论 默认分类 无标签 kwor

Privoxy 是一个 代理软件

针对各个平台,Privoxy 均提供有安装说明。

下面简单提一下几个平台。

Windows 平台

Windows 平台下的安装通常都可视化,下载安装包,双击,然后根据提示,一路点击即可安装。

Linux 平台

多数时候可以通过仓库安装。

比如 Ubuntu:

sudo apt-get install privoxy
又比如 openSUSE:

sudo zypper install privoxy
mac 平台

mac 上如果有安装 homebrew,则可以执行 brew install privoxy 来安装 Privoxy。

也可以源代码自己编译安装。

配置文件#
对于 Windows 系统,主配置文件放置在跟 privoxy.exe 相同的目录下,文件名为 config.txt

对于“Linux/Unix”,主配置文件放置在 /etc/privoxy 目录下,文件名为 config

Privoxy 的配置文件,都是纯文本文件。如果某一行是以 井号 # 开头,说明这一行是注释。

如何定制 Privoxy 的“监听端口及绑定地址”#
先来说最最基本的配置——设定 Privoxy 的监听端口号和绑定的地址。

介绍这个的目的,是让你先稍微熟悉一下——如何修改 Privoxy 的主配置文件。因为后面的定制,需要经常去修改它。

Privoxy 的监听端口号,默认是 8118,默认绑定的地址是 127.0.0.1(这个地址代表“当前系统”)。由于默认是绑定在 127.0.0.1 这个地址,所以只有当前系统的软件才可以连接到 Privoxy 的监听端口。

如果你希望其它操作系统的软件也可以连接到 Privoxy 的监听端口,可以修改绑定的地址,把 127.0.0.1 改为 0.0.0.0 表示绑定在“任意地址”。

操作步骤如下:

找到“主配置文件”,用你比较顺手的文本编辑器打开,在尾部增加如下一行

listen-address 0.0.0.0:8118
如果你不喜欢 8118 这个端口号,也可以换成别的。

修改完之后,启动 Privoxy,然后在命令行使用 netstat 命令,就可以看到多出来一个 8118 的端口。

如何定制“HTTP 代理转发”#
“HTTP 代理转发”就是说:Privoxy 把自己收到的 HTTP 请求转给另一个 HTTP 代理,再由该代理转到你最终访问的网站。

HTTP 代理转发的语法如下(把该语法添加在“主配置文件”尾部):

forward target_pattern http_proxy:port
语法解释:

该命令分3段,各段之间用空格分开(可以用单个空格,也可以多个空格)

第1段的 forward 是固定的,表示:这是 HTTP 转发

第2段的 target_pattern 是个变量,表示:这次转发只针对特定模式的 HTTP 访问目标

第3段的 http_proxy:port 也是变量,表示:要转发给某个 HTTP 代理(IP 冒号 端口)。如果“第3段”只写一个单独的小数点,表示直连(不走代理)。

举例1

forward / 127.0.0.1:8080
上述这句表示:

把所有的 HTTP 请求都转发给本机(127.0.0.1 表示本机)的 8080 端口

如果报错可以在执行这种方式启动,就能看到具体问题了。

sudo /usr/sbin/privoxy --no-daemon --pidfile /var/run/privoxy.pid --user privoxy /etc/privoxy/config

cocoscreator的一些资料

1 条评论 默认分类 无标签 kwor

最近需要做一款小游戏开发,必须得自己动手了。于是在网上收集了写资料。
场景切换。

1.按钮触发绑定的代码

onLoad :function(){

   var clickEventHandler = new cc.Component.EventHandler();
   clickEventHandler.target = this.node; //这个 node 节点是你的事件处理代码组件所属的节点,这里就是Button2
   clickEventHandler.component = "btnclick2";//这个是脚本文件名
   clickEventHandler.handler = "btnClick2"; //回调函名称
   clickEventHandler.customEventData = "click2 user data"; //用户数据

   var button = this.node.getComponent(cc.Button); //获取cc.Button组件
   button.clickEvents.push(clickEventHandler); //增加处理
},
btnClick2:function(event, customEventData){

   //这里 event 是一个 Touch Event 对象,你可以通过 event.target 取到事件的发送节点
   var node = event.target;
   var button = node.getComponent(cc.Button);
   //这里的 customEventData 参数就等于你之前设置的 "click2 user data"
   cc.log("node=", node.name, " event=", event.type, " data=", customEventData);

}

2.场景切换(转自:https://www.jianshu.com/p/f90bcd26e472这篇的前半部分。)
知识点
场景(scence)是ccc中必不可少的元素,游戏中需要构建不同场景,例如关卡、板块的切换等。

Director导演类是整个CCC的核心,类似游戏的导航仪。常用的操作都是由导演类来控制的,如初始化、场景切换、暂停继续等。

常用方法

cc.director.loadScene('sceneName')加载场景cc.director.preloadScene('sceneName') 预加载场景,场景切换中,预加载下一次场景的资源this.node.on(action, callback) 绑定事件
案例:场景切换

脚本1:Welcome场景中“开始游戏”脚本

play.js

cc.Class({

extends: cc.Component,

properties: {

},
onLoad: function () {
    this.node.on('mousedown',function(){
        cc.director.loadScene('Main');
    });
}

});
请输入图片描述
pasted-2.png
3.人物移动,需要绑定人物到属性。

properties: {

player: {
    default: null,
    type: cc.Node

},

amer: {
    default: null,
    type: cc.Node
}

},

// LIFE-CYCLE CALLBACKS:
onLoad: function () {

cc.log("=====" + this.player.getPosition());
var moveaction=cc.moveTo(2,cc.p(this.player.position));
this.amer.runAction(moveaction);

}
4.镜头跟随人物在背景中走动(参考https://blog.csdn.net/zidian666/article/details/87924292)
方案一、

/*cc.follow(第一个参数为this.realplayer是要跟随的节点,第二个参数可选:cc.Rect),返回cc.Action,需要复制camera为这个node的下级节点,才能生效。
*/
Camera.node.runAction(cc.follow(this.realplayer));
//camera执行动作跟随node
Camera.node.runAction(cc.follow(this.realplayer,new cc.Rect(-10,-10,20,20)));
//node在Rect的矩形范围内镜头不跟随移动,将要出范围时镜头跟随移动
还需要复制camera为这个node的下级节点,才能生效,如下图配置。
pasted-3.png
方案二、

//镜头跟随角色移动
this.camera.node.setPosition(this.player.x,this.node.y);