01 2014 档案
摘要:前言和在所有其他编程语言中一样,在Lua中,我们依然应当遵循下述两条有关程序优化的箴言:原则1:不要做优化。原则2:暂时不要做优化(对专家而言)。这两条原则对于Lua编程来说尤其有意义,Lua正是因其性能而在脚本语言中鹤立鸡群。当然,我们都知道性能是编程中要考量的一个重要因素,指数级时间复杂度的算法会被认为是棘手的问题,绝非偶然。如果计算结果来得太迟,它就是无用的结果。因此,每一个优秀的程序员都应该时刻平衡在优化代码时所花费的资源和执行代码时所节省的资源。优秀的程序员对于代码优化要提出的第一个问题是:“这个程序需要被优化吗?”如果(仅当此时)答案是肯定的,第二个问题则是:“在哪里优化?”要
阅读全文
摘要:SublimeText2快捷键大全(2011-12-12 23:01:15)转载▼标签:杂谈分类: 杂谈Ctrl+L选择整行(按住-继续选择下行)Ctrl+KK从光标处删除至行尾Ctrl+Shift+K删除整行Ctrl+Shift+D复制光标所在整行,插入在该行之前Ctrl+J合并行(已选择需要合并的多行时)Ctrl+KU改为大写Ctrl+KL改为小写Ctrl+D选词(按住-继续选择下个相同的字符串)Ctrl+M光标移动至括号内开始或结束的位置Ctrl+Shift+M选择括号内的内容(按住-继续选择父括号)Ctrl+/注释整行(如已选择内容,同“Ctrl+Shift+/”效果)Ctrl+S
阅读全文
摘要:Sublime Text2.0.2注册码 - Aries‘s的部落2013-09-26 17:09:30|分类:IT新闻|举报|字号订阅Sublime Text2.0.2注册码直接输入注册码就可以了----- BEGIN LICENSE -----Andrew WeberSingle User LicenseEA7E-855605813A03DD 5E4AD9E6 6C0EEB94 BC99798F942194A6 02396E98 E62C9979 4BB979FE91424C9D A45400BF F6747D88 2FB8807890F5CC94 1CDC92DC 8457107A
阅读全文
摘要:Flash11新增加了SWF对LZMA压缩的支持这种压缩算法比以前的压缩率要高不少著名压缩工具7zip默认就是使用这种压缩算法ZSWF是一个替换SWF压缩方法和版本号的工具使用方法很简单把swf拖到命令行工具里就可以了或者根据命令提示操作经测试一般能减少30%-40%但由于jpg等图片本身已经有很高的压缩率所以图片居多的时候压缩率不高这是我用aswing2做的测试2011-11-11 11:59:59 上传下载附件(11.91 KB) 另外因为FP11才能解码LZMA压缩过的SWF所以我用AS3写了一个精简的解码器来解码LZMA以及LZMA压缩过的swf(ZWS)比较特别的是我发现就算主文
阅读全文
摘要:网页游戏常见外挂原理及防御第一种:动作式原理:模仿键盘鼠标来操作UI工具:按键精灵例子:录制(基于GUI)——生成脚本——编辑脚本——回放防御:增加人机交互(重点是玩家输入,如登陆口常用的验证码机制)第二种:本地修改1)修改flash LSO本地共享对象C:\Documents and Settings\(你的Windows用户名)\Application Data\Macromedia\Flash Player\#SharedObjects\(一些随机数字和字母)\工具:sol editor2)修改游戏在内存中的数值工具:cheat engineer搜索并修改内存数值的一般步骤:1.运行
阅读全文
摘要:cocos2d-x-使用fopen函数读取assets里的内容导致crash2012年11月25日 Alex Zhou发表评论阅读评论7,613 人阅读 最近把win32和ios上运行成功的游戏移植到android时,程序直接挂了,查到原因是:使用fopen读取assets里的数据会导致应用crash,因为数据已经被压缩打包进apk文件里了。解决办法:1.使用cocos2d-x提供的CCFileUtils工具类2.把assets中的文件读取出来复制到/data/data/you_app_packagename/或者sd卡目录下,然后再使用fopen函数读取。下面来看看如何使用CCFile.
阅读全文
摘要:边缘触发(Edge Trigger)和条件触发(Level Trigger)概述边缘触发 是指每当状态变化时发生一个io事件; 条件触发 是只要满足条件就发生一个io事件; 详述 int select(int n, fd_set *rd_fds, fd_set *wr_fds, fd_set *ex_fds, struct timeval *timeout); select用到了fd_set结构,此处有一个FD_SETSIZE决定fd_set的容量,FD_SETSIZE默认1024,可以通过ulimit -n或者setrlimit函数修改之。 int poll(struct pollfd
阅读全文
摘要:高精度计时器2010-12-28 21:28:34|分类:Game|字号订阅 以前写游戏时习惯用QueryPerformanceFrequency和QueryPerformanceCounter来做高精度计时器。DirectX SDK自带的DXUT中有个CDXUTTimer就是这么用的。很多应用都会建立在高精度计时器上,计时器的精度可以在一定程度上影响游戏帧率的准确、稳定。 但要注意QueryPerformanceFrequency函数在多核CPU上是有猫腻的: On a multiprocessor computer, it should not matter which proces.
阅读全文
摘要:libev和libevent区别风河 Common2013-10-29 两者都是事件驱动编程库,对于它们之间的区别,看了stackoverflow上libev的作者Marc Lehmann的解释,有所了解。简单说libev对libevent做了改进和精简。libevent使用全局变量,导致非线程安全。它的watcher结构也过大,把I/O、计时器、信号句柄整合在一起。而且(作者认为)libevent的附加组件如http和dns库都实现不好,且有安全问题。libev对这些地方做了改进,避免使用全局变量,拆分watcher等。另外libev去掉了外部库(比如http和dns),只专注于事件驱动
阅读全文
摘要:CDHtmlDialog探索----Javascript与窗体交互CDHtmlDialog提供了C++与网页的双向交互,通此一系统简单的宏调用可以把网页中各元素的事件直接映射到C++程序中,而在网页中调用C++功能代码就显的不那么直观了。归根结底交互的基理就是实现相应COM接口。实现方式如下:1、在窗体初始化时调用EnableAutomation函数。 通常情况下是放在窗体的构造函数中,EnableAutomation();当然也可以放在OnInitDialog中,不过要注意顺序,其调用不应该晚于对SetExternalDispatch的调用。此函数在底层的实现就是引用到正确的IDispat.
阅读全文