浅析2DX-Lua原理(一)

  • 题外

目前我的团队正使用2DX的另一个实现quick-cocos2dx来制作下一款产品,又一次得益于开源社区.提到开源 作为受益者们 很多都缺乏对自由软件认知.下面针对安卓平台记录我的一些理解,如你有更深的认识 或者 发现我的误区欢迎指点.(以下分析可能存在谬误)

  • 题内 – android机器结构

由于2DX本质是使用C/C++编写 所以在安卓平台上必须使用到NDK,NDK是一种基于原生程序接口的软件开发工具。通过此工具开发的程序直接以本地语言运行,而非虚拟机。因此只有java等基于虚拟机运行的语言的程序才会有原生开发工具包。NDK与JAVA的关系 对比AIR来说 相当于ANE与AS.只是速度和深度他们都不在一个水平上.通过下图展示的是android整个系统的大题结构:

继续阅读“浅析2DX-Lua原理(一)”

用Vim写C++

(本教程属于小白入门篇,神Vim手请自觉XX)

我家的老机器终于对VS2012发起致命性反抗了.在这之前他服务了VS2005,2008,2010,可谓三朝元老,最终在第四朝的时候倚老卖老,以死谏轩辕.可悲可叹可敬!

于是我陷入了沉思,从vs2005到FlashBuilder,eclipse,xcode,androidStudio,cocoStudio,用过一个又一个远近闻名的IDE之后 总觉得好累好累了,是否有一个IDE能让我不会觉得那么沉重,在用VS2012,XCODE的很多时候我都找不到当年用MASMPlus(我居然还记得它的官网)那种轻松自然的感觉.

于是我想起了它 Vim,号称编辑器之神的编辑器.

  • 检查本机Vim版本

首先要打开你的bash.输入:

[code]
vim -version
VIM – Vi IMproved 7.3 (2010 Aug 15, compiled Oct 23 2012 13:50:52)
Garbage after option argument: "-version"
More info with: "vim -h"
[/code]

继续阅读“用Vim写C++”

[android逆向]活用反射机制

首先看一个简单的实现

在需要调用的地方写入一下代码:

[code lang=”java”]
try
{
sJump = Class.forName("com.rect.jumpdemo.JumpHandle");
if(sJump != null)
{
Method method =
sJump.getMethod("CallBack", new Class[] { Integer.TYPE});
if(method != null)
method.invoke(null, new Object[] { Integer.valueOf(11)});
}
}
catch (Exception e) {
// TODO: handle exception
}
[/code]

继续阅读“[android逆向]活用反射机制”

[RDT更新]全面支持AIR4.0

2014.03.06 – RDT

仅支持以下功能:(3.5以前的部分功能 adobe官方已修复 所以在4.0中去掉.)

  • 自定义AIR主activity的launchMode
  • 去除android资源国际化限制.
  • 彻底解决android资源ID找不到的问题.
  • ANE中加入多jar库引用,去除ANE中合并jar的步骤.
  • ANE中彻底解决资源ID错乱问题.(不是找不到ID,是ID数值偏差,在ANE中偶有发生).
  • 可打包任意文件进APK根目录,以应对类似移动MM 联想支付等问题.
  • 尽最大限度让AIR for android项目在打包上无限接近原生android项目.

更多详情请移步github!

案例地址

Anti-ADT:https://github.com/recter/Anti-ADT

feed: BANGF846973A2B0A360D19518E1BXIANGUO

手游立项前瞻-前端篇

这篇文章的观点来自一位前端程序员兼端游爱好者,无法面面俱到.很多观点可能具有时效性和片面性.

#
在进入游戏行业的那一刻,我就一直反复问我自己这个问题.和以前玩游戏那会儿梦想在那里打造一个属于自己的游戏王国;和刚进入游戏行业那会儿大势叫嚣着要做一款属于自己的游戏去颠覆传统;和上一个项目是通过移植平台实现的情况所不同的是:当年只是喊喊口号,如今我真的有机会能参与到一款”游戏”的各种过程.以下是我认为在切实的做这个项目之前必须认清楚的问题.

我想做一款怎样的游戏?

我想做一款怎样的游戏?现在我需要回答自己这个问题,因为在未来半年甚至更长的一段时间里我将天天为了实现它而工作,这虽然是游戏但不是儿戏,换句话讲:

  1. 我希望用接下来的时间里去做一件怎样的事情?
  2. 我希望在接下来的时间里去实现一个怎样的产品?
  3. 我希望未来的半年甚至更长的时间里写的每一句代码都为了一个怎样的目标?
  4. 我希望做一个怎样的产品让自己有成就感?
  5. 还是类似阿里手游平台APP仿造应用宝APP一样,花时间去做一个自己完全没成就感的产品?
  6. 去做这一款游戏,除了谋生之外,我还有什么诉求?

这几个比较偏向于个人的问题可以转换为比较偏向于团队思考的问题:
继续阅读“手游立项前瞻-前端篇”

[阅读]人生元编程

阅读是我心里一直坚定要继续的东西,但是在过去一年到现在一直断断续续买了各种人文,技术类的书,真正读完的只有70%不到,似乎心里和身体达不到一个平衡点,谁都喜欢追美剧刷微博,今天偶然看到一篇人民日报的文章,说到了现代人阅读缺乏的“心若磐石”,和缺乏阅读的习惯性,似乎多年的应试教育告诉我们读书就是为了考试。

可能我还需要花很多的时间才能从多年的教育思维中走出来,但是现在我知道阅读不能停.在初中到高中结束的年代我比较倾向于名著,古典名著,外国名著,但凡标明是名著的书,但凡作者一栏写的是鲁迅郭沫若,当时拿着总有一种高端大气的感觉.

但是今天的我反而比较喜欢比较小众的书籍,很多作者甚至还不能叫出名,或者只能在各自的圈子里出名.例如焉冰,不看山东台不关注西藏不关注民谣的可能根本连这个名字都没听过,但是他的那本书<他们最幸福>却让我爱不释手,不是因为我向往那种生活状态,而完全是因为我从作者身上看到了一种本质,那就是:

你完全可以成为你想象中的那个人.

继续阅读“[阅读]人生元编程”

优雅的使用Markdown吧

Markdown

  • Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)和亚伦·斯沃茨(Aaron Swartz)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。

自从我初次接触Markdown就深深的喜欢上了

  • 但是在我的博客上一直没找到一款适合的插件,安装过很多款,例如WP-Markdown,Markdown on Save Improved,Markdown on Save 都不能达到我想要的效果,或者会出现各种问题,由于我的博客是非营利性网站,主机配置的Mysql php版本更新比较慢,导致了有些插件无法安装.

今天终于对wordpross的编辑器忍无可忍,几经周折才找到了一下这款轻量的插件

Markdown for P2

Markdown for P2 支持wp3.1,虽然用户并没有上面提到的那么多,而且作者本人也觉得另外的比这个好,但是安装过后发现它比较适合我的博客.于是乎以后写博客就可以优雅的使用markdown编码了!

  • 在后台插件搜索安装,直接启动便可
  • 不需要再多额外的设置.

终于可以抛弃深恶痛绝的CKEditor for WordPress了!

[code lang=”java”]
//这篇博客就是使用markdown编写的
enjoy your code
[/code]

EOF

AIR项目个人技术总结(完结)

之前


在九月份的时候我对自己参与的项目做了一次粗浅的总结:传送门,到了四个月后的现在,这个项目我能参与的部分应该只剩接渠道的时候写ANE(前后端)和更新版本的时候负责出所有渠道的版本,关于我的第一个项目的所有模块几乎都已经转给其他同事了,而项目新版本的开发我也完全没有参与了,在这项目最后的这几个月也让我对AIR这个跨平台"引擎"又有了新的认识.在前一个月多的时间里我把AIR仔细分析了一遍,对于跨平台的认知感觉和之前又有了区别,我们总是抱怨在现有的环境下学不到东西,很多道友在抱怨每天写同样的if-elseif-else逻辑枯燥无比,其实很多时候你换几个视角看东西会让你获益匪浅.

 

之一


对于我参与的这个AIR项目,我虽然并没有在项目中参与运营,但是这个项目从无到有,再到上平台,到第一个玩家付费,到第一个单笔10K的大R出现,每一个让团队激动的时刻 我都算见证了,这个项目从无到上线总共经历了207天的时间(6~7个月左右,以前可能只听到网上分析或者预估的时间,但是这个时间是我从写的第一句代码到上平台开服的那一天的准确时间.)

继续阅读“AIR项目个人技术总结(完结)”

我的编码规范

在我参与实际项目的这一年多的时间里,我间接或者直接修改,重写,补充,拓展过不同的同事的代码.

在这之中发现大家的风格不一,加上我本身是一个强迫症患者,看到与自己习惯不相符的地方往往会停下一切工作去修改回来,例如我最近把项目的100多个警告全部改回来了,让人不舒服的警告图标消失了,顿时觉得精神气爽.我遇到的同事中 不少人都保持着一种或者几种个人特色的代码写法.

例如同事A:

[code lang=”java”]var demoA = 1;[/code]

这会引发一个没有声明类型的警告.

例如同事B:

[code lang=”java”]
var demoB:int=1;
var demoC:int = 1;[/code]

"="号两边紧挨数值和变量,代码看起来比"="号两边空格累人.

同事C:

[code lang=”java”]
private function demoC(arg1:*=null)[/code]

三个字符组合:*=null,在FB4.6中会引发整个类无法着色.

继续阅读“我的编码规范”

win7下为Github设置SSH

以前一直都是使用https方式在github上clone项目.一直没什么问题.但是今天clone一个100M左右的项目的时候,总是卡在几十M的地方,而且速度从1000 byte/s 到 70 kib/s 不等,真是煎熬.

于是想用ssh的方式clone.但是我使用sshclone的时候一直会报以下错误:

[code lang=”java”]Permission denied (publickey).[/code]

几番寻找都没找到解决方式.偶然间在stackoverflow上的一条评论中给出了答案,

在win下 把 个人用户目录的.ssh文件夹复制到 git-cmd.bat中的%HOME%指定的文件夹中.

例如我本机:

C:\Users\RECT\.ssh -> E:\git\.ssh

  • 如何win7下正确配置ssh

0>参考在mac和linux下的配置方法方法:传送门,以我本机为例

1>C:\Users\RECT\.ssh 下生成了id_rsa和id_rsa.pub文件;

2>复制id_rsa.pub的内容在github的Accounting settings配置ssh key

3>复制C:\Users\RECT\.ssh到git-cmd.bat中的%HOME%文件夹中

4>复制C:\Users\RECT\.ssh到C:\Users\Public\.ssh