C++Primer中并没有对const过多的解析,只说明为是一个使变量不可修改的限定符.但是仅仅知道这点对于我来说是远远不够的,const是怎么做到的限制修改?谁在帮const做这个限制?编辑器是怎么实现不可修改的?在认识const之前 我知道C++中唯一不可修改的就是常量,例如:

int i = 1000;

这个1000就是常量,除了修改生成的文件之外 任何方式都无法修改这个1000 .(修改生成的文件是怎么修改?例如生成了exe可执行文件,直接定位到代码区 找到这个变量定义的地方 把 1000的字节码E8 03 00 00改了..).

继续阅读

服务端配置:ubuntu14/32bit

现在把服务端的也说一下,网上也有很多的配置教程,但是和我的配置都有点差别.由于是配置到私人的vps上,所以我希望能限制IP访问.我的vps曾经被攻击过,并被运营方警告,所以这方面得小心翼翼才行.

配置过程中我参考了一下两个地方:

根据这两篇教程配置的在vps应当可以运行SS服务器了.但是由于我需要限制IP使用.所以把端口限制改了一下,首先是安装配置iptables,安装完毕后对shadowsocks端口做出限制访问策略:

// 把端口先全部封掉
// 例如4000 是之前配置服务器设置的端口
iptables -I INPUT -p tcp --dport 4000 -j DROP 
// 对特定IP允许访问
// 116.*.*.42 为你使用ss客户端的本机IP
iptables -I INPUT -s 116.*.*.42 -p tcp --dport 4000 -j ACCEPT
// 保存
iptables-save 

如此就只有我本机的IP能访问端口进行翻墙了.

开发日志系列(十二)

环境: cocos2d-x 2.2.3 , win7

碰撞相信大家都不陌生了,无论在手游的游戏按钮对触摸事件的响应 还是页游时代游戏按钮对鼠标点击事件的侦听,都需要使用碰撞来判断.例如以下一个按钮,规格为:200X200,第二张图绿色部分原本为透明

按钮的原图

ButtonHasAlpha

绿色为透明部分

ButtonNoAlpha

坐标矩阵碰撞

类似这样一个按钮 如果是单纯使用坐标碰撞的话,只要坐标落在按钮图片内部,就会判断为点中,在cocos2d-x中坐标碰撞的一般做法是:

//pt 为鼠标 或者 触摸 击落时候的屏幕坐标
//cc  为按钮对象 继承CCNode
CCPoint pos = cc->convertToNodeSpace(pt);
CCRect rect = cc->boundingBox();
rect = CCRectApplyAffineTransform(rect, nodeToParentTransform());
if (rect.containsPoint( pos ))
{
    printf("用户点击了cc");
}

继续阅读