Posts

  • gradle 配置参数

    manifestPlaceholders 的使用 build.gradle android { defaultConfig { ... manifestPlaceholders += [foo: "abc"] manifestPlaceholders += [foo2: "def"] } buildTypes { release... [全文]

  • xcode-license

    服务器升级完xcode后,运行终端命令时会提示 Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. 只要执行下面的命令后就可以了。 sudo xcodebuild -license https://intellij-support.jetbrains.com/hc/en-us/articles/206827657-Mac-OSX-can-t-start-Git-after-updating-Mac-OS-XCode... [全文]

  • 配置Github Pages的https

    首先申请 https://www.cloudflare.com,把dns服务换成cloudflare的,我原来是使用dnspod的,为了使用https我就直接换了。 它会把之前的dns记录复制过来,直接替换就可以了。设置成功后,等待几分钟,使用 https://linguofeng.com 就可以访问我的网站了。 一定要把dnspod里的解析停掉,要不么会有问题。 然后是修改_config.yml url: https://linguofeng.com enforce_ssl: linguofeng.com 修改index.html <link rel="canonical" href="{ { site.url } }{ {... [全文]

  • Mono Hello World

    1.安装 zsh $ brew install mono 2.创建Hello.cs zsh $ mkdir mono-workspace $ cd mono-workspace $ vim Hello.cs using System; public... [全文]

  • 游戏热更新系统设计记录

    问题 如何得到自上一个版本更新增加删除的文件 zsh $ git diff \ --name-only \ --diff-filter=AM \ SHA1 \ SHA2 \ sources 替换删除路径 zsh $ git... [全文]

  • Unity3D

    1. 获取按钮并设置点击事件 using UnityEngine.UI; var button = transform.Find("Btn_login").gameObject.GetComponent<Button>(); if (button != null) { button.onClick.RemoveAllListeners(); button.onClick.AddListener( delegate { this.onLogin(button); } );... [全文]

  • Convert CSV To UTF-8

    $ iconv -c -f GBK -t UTF-8 gbk.csv > utf8.csv [全文]

  • Dnsmasq for IOS

    安装 Dnsmasq 前提,已越狱 Cydia中搜索Dnsmasq安装,同时安装iFile用于编译配置文件 使用iFile打开/etc/dnsmasq.conf,在最后追加 server=114.114.114.114 # 所有域名通过114.114.114.114解析 server=/google.com/8.8.8.8 # google.com通过8.8.8.8解析 如果配合dnscrypt使用可防止dns污染,可看之前的文章 最后重启,修改当前网络的dns为127.0.0.1即可 [全文]

  • Swift

    Hello World println("Hello World!!") [全文]

  • Cocos Code IDE

    Cocos Code IDE 安装 Vrapper(vim)插件 下载Vrapper: http://sourceforge.net/projects/vrapper/files/vrapper/ 解压至 $COCOS_CODE_IDE/ [全文]

  • DNSCrypt And Dnsmasq

    安装 $ brew update $ brew install dnscrypt dnsmasq 配置 $ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf $ vim /usr/local/etc/dnsmasq.conf server=192.168.1.1 # 所有IP使用该DNS... [全文]

  • GYP

    安装 $ git svn clone -r HEAD http://gyp.googlecode.com/svn/trunk/ gyp $ cd gyp $ ./setup.py build $ sudo ./setup.py install Hello... [全文]

  • Cocos2d-x Upgrade 2.0 to 3.0

    由于项目使用CocosBuilder构建UI,类的变化比较多 old new CCNodeLoaderLibrary NodeLoaderLibrary CC*Loader *Loader CCTable* Table* CCLuaEngine LuaEngine CCScriptEngineManager ScriptEngineManager SEL_CCControlHandler Control::Handler CCScrollView ScrollView CCControlEvent* Control::EventType::* CCControlEvent... [全文]

  • Android Freetype2

    下载源码包: http://download.savannah.gnu.org/releases/freetype 设置构建环境: $ $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-19 --install-dir=~/standalone-toolchain-19 $ PATH=~/standalone-toolchain-19/bin:$PATH 解压freetype $ cd Download $ tar xf freetype-2.5.3.tar.bz2 $ cd freetype-2.5.3... [全文]

  • Raspberry Pi

    默认的http://mirrordirector.raspbian.org源太慢了,在http://www.raspbian.org/RaspbianMirrors找一个快的 $ sudo vim /etc/apt/sources.list [全文]

  • OpenGL

    今天做了一个可以移动的三角形,并且有碰撞检测功能,不可以移出窗口外 #include <GLTools.h> #include <GLShaderManager.h> #include <glut/glut.h> #include <algorithm> GLBatch triangleBatch; GLShaderManager shaderManager; GLfloat blockSize = 0.5f; GLfloat vVerts[] =... [全文]

  • OpenGL

    最近开始有点想学习OpenGL,第一个OpenGL程序,记录一下 在看OpenGL蓝皮书,第一个程序就是显示一个三角形。 需要GLTools这个库的支持 在OS X 10.9系统下glut很多接口都已经过时了 #include <GLTools.h> #include <GLShaderManager.h> #include <glut/glut.h> GLBatch triangleBatch; GLShaderManager shaderManager; void ChangeSize(int w, int... [全文]

  • Unity 2014

    今天有幸去参加了Unity2014亚洲开发者大会,早早就在闹铃声中起床了,然后接着吃早餐坐地铁前往国家会议中心 9点20分钟左右到,一进门,被吓到了,排队签到的人好多,起码有10条队伍,排了差不多10来分钟才到我,还发生扫码时我的手机竟然扫不出来,问我电话我说的还没有,有可能用的是旧的号码登记的,不过最后还好是扫成功,才拿到了参会嘉宾证。 上次来参加Cocos2d-x开发者大会也是在这里,不过当时人不多,签到根本不用排队。签到完了就上楼,发现有几个展台,就好奇去看看了,全是也Unity有关的,作为一名Cocos2d-x的开发者,看到那3D效果切实很牛B,有点心动想学习Unity了,在高通那个展台,是一个老外在那里,突然一个中国女孩,用一口流利的英文跟高通那老外聊起来,突然感觉会说英语的女孩好美啊,虽然那女孩确实长得也是个美女,哈哈。现在工作后才后悔当年在学校的时候怎么就不好好学习英语呢,有点气人啊。接着就往里走了,有小米互娱、360手机助手、三星等的展台,最后被一个虚拟现实的展台吸引住了,看那设备,不就是Facebook 20亿美刀收购的,太好了,终于有机会体验一下了,然后就排队了,人好多了,排了也差不多20来分钟,中间设备还出现两次故障,最后终于到我了,带上设备后,里面的场景是一间鬼屋里,第一人称视角,手里拿着灯笼,然后下面有一条黑色的指引线,工作人员告诉我,沿着这条线走就行了,在带上设备之前,已经看到在我前面的人的反应了,最后都被吓到大喊一声,我对这个最怕了,胆很小,然后全程我都是低着头,然后把眼睛半眯着,然后一睁一睁地走到最后,然后最后那个东西就出来,小吓了一跳,还好是半眯眼睛,要不吓死,总体感觉效果很不错,不过分辨率好像有点低,看不大清楚,跟我近视也有原因,算是体验过虚拟现实是什么东西了。然后就是进主会场听演讲了,整个上午好像没有特别的东西,中午就出去吃饭了,下午回来2点10分开场,下午主要是听了目前国内几个大游戏公司的制作人在说目前以及未来国内游戏的一些动态,最后还有一个吸引我的就是动作捕捉技术,感觉超级超级牛B,17个传感器就能够把一个人的全部动作捕捉起来。 最后就是对比Cocos2d-x开发者大会,这次Unity亚洲开发者大会首先要想听好内容就是要收钱的,我今天是免费去的,就只拿一参会证,啥也没有,交钱的就东西比较多,不过这两个引擎没什么好比的,一个是开源,别一个是商业的,不过在参会人数来看,Unity人多一点,主是要亚洲这两个字,像台湾、韩国都有企业过来参会的。 最后,感觉自己还是要学习一下Unity,毕竟多一门技术不会坏事。 [全文]

  • Mac vagrant ubuntu

    由于需要在mac下使用ubuntu环境,如果要建一个虚拟机太费事了,还费内存,现在使用vagrant非常简单,这里记录一下 首先安装 https://github.com/phinze/homebrew-cask,这个brew的一个扩展命名,能够通过命令行安装dmg的应用 $ brew tap phinze/cask $ brew install brew-cask 安装vagrant与virtualbox $ brew cask install vagrant $ brew cask... [全文]

  • Google Breakpad Android

    开发过程中,最担心的问题就是程序崩溃,而且还不知道崩溃的原因,现在使用Google Breakpad来跟踪崩溃的位置,非常方便 由于目前使用Mac系统开发,Google Breadpad处理Android崩溃日志时需要Linux环境,借助vagrant可以非常方便地在Mac使用Ubuntu环境 有了vagrant以后就方便了 $ varant ssh $ cd /vagrant $ sudo apt-get update $ sudo apt-get install build-essential... [全文]

  • StormLib

    创建mpq文件 HANDLE hMpq = NULL; DWORD dwCreateFlags = MPQ_CREATE_ARCHIVE_V4; TCHAR szMpqName[MAX_PATH] = "/Users/linguofeng/test/stormlib/new.mpq"; DWORD dwMaxFileCount = 1; if (!SFileCreateArchive(szMpqName, dwCreateFlags,... [全文]

  • Cocos2d-x Curl Gzip

    HttpClient.cpp中的configureCURL里加入 code = curl_easy_setopt(handle, CURLOPT_ACCEPT_ENCODING, "gzip"); if (code != CURLE_OK) { return false; } 关键字:curl, CURLOPT_ACCEPT_ENCODING, gzip [全文]

  • Cocos2d-x And Gradle

    安装Gradle $ brew update $ brew install gradle 创建化gradle $ cd $COCOS2DX-ROOT $ gradle init 修改build.gradle,替换成 buildscript { repositories {... [全文]

  • Android Wear

    Android出智能手表平台了,然后就去申请了个测试,很简单,在线报名,然后会回复一个邮件,点击邮件中的链接去play上下载app 具体步骤看官网介绍 1. Open the Android Wear Preview app. You should see a notice that the app is currently not... [全文]

  • Cocos2d-x 3.0

    今天试着把代码升级至3.0,发现之前的CCArray的容器都变了,现在是使用Vector与Map<K,V>,简单用法 cocos2d::Vector<Sprite> sprites; auto sprite1 = Sprite::create("hello.png"); auto sprite2 = Sprite::create("hello.png"); auto sprite3 = Sprite::create("hello.png"); auto sprite4 = Sprite::create("hello.png"); sprites.push_back(sprite1)... [全文]

  • CocoaChina 2014

    今天去参加了CocoaChina 2014 春季开发者大会,上午7点半的时候骑自行车过去了,上午的演讲,主要是了解到了Cocos2d-x的最新动态,作为Cocos2d-x开发者,是很有必要了解的,3.0版本改动的东西确实是多,C++11特性,各种新API等,有时间真的要开始使用3.0了,要不然就跟不上了。 CocoStudio也将要发布2.0版本,这个版本我最喜欢的就是跨平台,实在不想再用回Windows了,期待2.0版本的表现。现在一直是使用CocosBuilder来做场景UI,不过现在已经不更新,等出2.0以后就换。 然后就是还有一个IDE,是基于Eclipse的,支持Lua与JS的断点调试,这个确实不错,现在写Lua是用Sublime Text,还行,不过不支持断点,这个IDE还有一点就是保存后自动重新加载游戏,省去重新部署游戏节省时间。 然后就是有一些新的想法,周末有时间把现在的游戏代码往3.0升级,不过这里肯定会有很多问题,只能是一步一步来了 [全文]

  • Google Breakpad IOS

    $ svn checkout http://google-breakpad.googlecode.com/svn/trunk/ google-breakpad-read-only $ cd google-breakpad-read-only $ ./configure $ make 打开google-breakpad-read-only/src/tools/mac/dump_syms/dump_syms.xcodeproj编译dump_syms工具,编译成功后记录下可执行文件的地址。 打开已有的ios工程,把google-breakpad-read-only/src/client/ios/Breakpad.xcodeproj拖进工程,前提是该工程是workspace 在didFinishLaunchingWithOptions方法里加入 [[BreakpadController sharedInstance]start: YES]; 在applicationWillTerminate方法时加入 [[BreakpadController... [全文]

  • RaspberryPi NAS

    # sudo apt-get install samba samba-common-bin $ sudo smbpasswd -a pi $ sudo mkdir /home/shares $ sudo mkdir /home/shares/public $... [全文]

  • Cocos2d-x queueEvent

    坑惨了。。。 Java中回调C/C++方法更新OpenGL的UI时一定不能直接调用或使用runOnUiThread调用,必须使用 // 定义jni接口 native private static void updateOpenGLUI(); Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() { @Override public void run() { updateOpenGLUI(); } });... [全文]

  • Raspberry Pi iBeacon

    硬件 树莓派一台 奥睿科 BTA-406-RD USB蓝牙4.0适配器 $ sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev $ mkdir bluez $ cd... [全文]

  • Raspberry Pi GPIO Blink

    Blink is the “Hello World” of the GPIO interfacing world. It’s the simplest program and circuit that lets you see... [全文]

  • Unity3D Sprite Click Event

    给Sprite加上Box Collider 2D碰撞检测,然后绑定带有OnMouseDown方法的脚本即可。 [全文]

  • Apache Ivy

    $ brew update $ brew install ivy $ mkdir -p ~/.ant/lib $ cp /usr/local/Cellar/ivy/2.3.0/libexec/ivy-2.3.0.jar ~/.ant/lib $ mkdir hello-ivy $ cd... [全文]

  • git Remove sensitive data

    $ git filter-branch --force --index-filter \ 'git rm -r --cached --ignore-unmatch filedir' \ --prune-empty --tag-name-filter cat -- --all [全文]

  • OpenWrt relayd

    开始前,电脑使用网线连接MR10U的LAN/WAN网线接口,tenlet 192.168.1.1进入设置 开启WIFI功能,MR10U刷OpenWrt默认没启用WIFI uci set wireless.@wifi-device[0].disabled=0 uci commit wireless wifi 创建wwan接口 uci set network.wwan=interface uci set network.wwan.proto=dhcp uci commit network... [全文]

  • unity

    正方体的平移旋转 创建一个正方体,编写js脚本赋予正方体 function Update () { transform.Translate(Vector3.left * Time.deltaTime); // 向左移动 transform.Rotate(Vector3.right * 2); // 向右旋转 } [全文]

  • xctool

    $ sudo apt-get update $ sudo apt-get install build-essential cmake git telnet $ git clone http://git.eclipse.org/gitroot/mihini/org.eclipse.mihini.git mihini-repo $ cd mihini-repo... [全文]

  • Learning Python3

    [全文]

  • xctool

    安装 $ brew install xctool build build后的包在DerivedData对应的目录里 $ xtool -workspace xxx.xcworkspace -scheme xxx build archive archive后的包在Archives对应的目录里 $ xtool -workspace xxx.xcworkspace... [全文]

  • Learning JavaScript

    [全文]

  • Install RaspBMC on Raspberry Pi

    安装NOOBS 直接到官网上下载NOOBS最新版的离线安装包,格式化SD卡后解压安装包至SD卡根目录,插入Raspberry Pi启动,选择RaspBMC安装即可。 [全文]

  • Git Flow

    安装 $ brew update $ brew install git-flow 使用 $ git flow init // 初始化flow,会定义一些分支,默认就行 $ git flow feature start... [全文]

  • Nexus4 Root

    1. 下载http://download.chainfire.eu/supersu 2. 下载http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.4.3-mako.img 3. 复制UPDATE-SuperSU-v1.xx.zip到SD卡上 4. 进入bootloader模式,adb reboot-bootloader 5. 刷入recovery,fastboot flash recovery recovery-clockwork-6.0.4.3-mako.img 6. 音量键选择recovery mode电源键确定 7. choose zip... [全文]

  • xxtea

    // 加密 加密后的数据 = xxtea_encrypt(原始数据, 数据的长度, 密钥, 密钥的长度, 加密后的数据长度); // 解密 解密后的数据 = xxtea_decrypt(加密后的数据, 加密后的数据长度, 密钥, 密钥的长度, 解密后的数据长度) [全文]

  • Install CocoaPods

    $ sudo gem install cocoapods $ pod setup $ vim ~/.zshrc export LC_ALL="en_US.UTF-8" $ source ~/.zshrc [全文]

  • HomeBrew Install OpenResty

    $ brew tap marcqualie/nginx $ brew install openresty [全文]

  • OS X 10.9 Install CLT

    $ xcode-select --install 参考: http://stackoverflow.com/questions/18216865/how-to-install-command-line-tools-on-osx-mavericks [全文]

  • Git svn broken in mavericks

    $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.16/darwin-thread-multi-2level/SVN /System/Library/Perl/Extras/5.16/SVN $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.16/darwin-thread-multi-2level/auto/SVN/ /System/Library/Perl/Extras/5.16/auto/SVN 参考: http://nob-log.info/2013/10/24/git-svn-broken-in-mavericks/ [全文]

  • Android Studio Update

    Fuck GFW You know!!!! $ vim /Applications/Android\ Studio.app/bin/idea.vmoptions -Djava.net.preferIPv4Stack=true -Didea.updates.url=http://dl.google.com/android/studio/patches/updates.xml -Didea.patches.url=http://dl.google.com/android/studio/patches/ see: http://blog.csdn.net/liugangnhm/article/details/10011831 [全文]

  • Mac adb_usb.ini

    获取手机的Vendor ID $ system_profiler SPUSBDataType Android: Product ID: 0x3f10 Vendor ID: 0x1d91 Version: 2.31 Serial Number: MotorolaXT788 Speed: Up to... [全文]

  • Raspberry Pi Install OpenResty

    OpenResty是一个全功能的web服务器,以Nginx为核心,集成了Lua模块。 $ ssh pi@raspberrypi.local $ sudo apt-get update $ sudo apt-get install libreadline-dev libpcre3-dev libssl-dev perl libncurses5-dev $ wget http://openresty.org/download/ngx_openresty-1.4.1.1.tar.gz... [全文]

  • CocosBuilder

    宏 说明 CCB_MEMBERVARIABLEASSIGNER_GLUE 绑定成员变量 CCBMemberVariableAssigner::onAssignCCBMemberVariable CCB_SELECTORRESOLVER_CCMENUITEM_GLUE 绑定菜单事件 CCBSelectorResolver::onResolveCCBMenuItemSelector CCB_SELECTORRESOLVER_CCCONTROL_GLUE 绑定按钮事件 CCBSelectorResolver::onResolveCCBControlSelector JavaScript Controlled的坑 原来Cocos2dBuilder是区分脚本[lua/js]与C++的,如果选中了 Document > JavaScript Controlled 则表明这个ccb是与脚本绑定的,并且要是Owner var类型的绑定。... [全文]

  • C++11

    Lambda表达式:匿名函数的实现。 [] // 变量参考,用于闭包 () // 函数参数列表 {} // 函数体 () // 函数调用,如果函数有参数,那应该是在些传入 []() { std::cout << "Hello Lambda!!" <<... [全文]

  • OpenCV Mat

    Mat是OpenCV中基本的图像容器,2.0之前的版本是IplImage对象。它比IplImage有一个好处就是不需要再手动内存,而是让程序自动管理。 Mat类带有两部分数据:矩阵的头信息与一个像素数据指针。 Mat的内存管理,每个Mat对象有自己的头信息,当拷贝的时候只是拷贝头信息与指针地址。不是数据本身。 Mat A, C; // 创建A与C两个Mat对象,只包含头信息部分。 A = imread("image.jpg", CV_LOAD_IMAGE_COLOR); // 读取图片并把图像的数据指针赋值给A Mat B(C); // 使用拷贝构造函数 C =... [全文]

  • OSX 10.8.4

    自从昨晚升级了10.8.4,我的电脑断网问题解决了,头不疼,脚不痛了 话说升级前基本上是一天断网千百遍啊,直到现在我还怀疑是公司的无线好了,原来是我系统升级了。 [全文]

  • OpenCV Introduction

    OpenCV是一个开源的计算机视觉库,具有模块化。 模块 说明 core 核心模块,包括基本的数据结构,例如cv::Mat。 imgproc 图像处理模块,包括图像过滤、图像转换、颜色空间转换和直方图等。 video 视频分析模块,包括运行估计、背景减法和对象跟踪算法等。 calib3d 基本的多视图几何算法、单一和立体摄像机标定、 对象的姿势估计、 立体声函授算法和元素的三维重建。 features2d 特征探测器 objdetect 对象检测,可做人脸识别、汽车识别等对象识别功能。 highgui 用户界面接口。 gpu... [全文]

  • OpenCV Display Image

    DisplayImage.cpp #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main( int argc, char** argv ) { Mat image; image =... [全文]

  • OSX Install OpenCV

    通过homebrew安装opencv $ brew tap homebrew/science $ brew install opencv 配置vim自动补全与查看源码,只有头文件 $ /usr/local/bin/ctags -R --c++-kinds=+p --fields=+iaS --extra=+q \ /usr/local/include/opencv $ mv... [全文]

  • error failed to attach to process ID 0

    今天调整了一个工程名称与配置文件,发现无法启动应用了,出现 error: failed to attach to process ID 0 这个问题,最后在 http://stackoverflow.com/questions/12741188/error-failed-to-attach-to-process-id-0 中解决了,关键步骤是 1. 退出 xcode 2. 进入 ~/Library/Application Support/iPhone Simulator/6.1/Applications... [全文]

  • WR720N Install OpenWrt

    今天无聊跟实在无法忍受天朝的网络,就搜索了一下wr720n openwrt,发现官方已经出了wr720n专用的固件了,之前是没有官方的,民间高手有出一些教程可以自己编译,我是懒得编译了。 既然出了就当然是要刷一下了,目前还是测试版,刷机有风险。刷机过程如下: 第一步:下载专用固件 http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin 第二步:开刷 由于刷机前没有截图,网上找了一张WR703N的图片,操作是一样的。 第三步:配置无线 刷机过程大概一两分钟,路由重启后使用 telnet 命令连接路由 telnet 192.168.1.1 默认应该是不用帐号密码的,如果需要就是admin。接着就是开启无线,命令 # vi /etc/config/wireless 删除 option disabled... [全文]

  • Arduino HC-SR04

    HC-SR04是一个超声波测距模块 接线 HC-SR04 Arduino VCC 5v GND GND Trig PIN8 Echo PIN9 程序 const int TP = 8; const int... [全文]

  • Linear Algebra

    最近开始学习线性代数,在看http://v.163.com/special/opencourse/daishu.html麻省理工的线性代码公开课。 这里做一些笔记吧。 方程组的几何解释 x + 2y = 13; 3x - y = 4; 使用矩形表示 - - - - - -... [全文]

  • Arduino HC-06

    HC-06是一个Arduino的蓝牙从机扩展。从机不能主动与其它蓝牙发起连接。 接线 HC-06 Arduino VCC 3.3v GND GND RXD TXD TXD RXD 蓝牙参数的配置 命令 说明 AT 判断是否与蓝牙通信成功 AT+NAMExxx 修改蓝牙的名称,xxx为新的名称 AT+PIN1234... [全文]

  • Arduino Car

    2013-05-13 原本打算是做一个四轴的,可是琢磨了好些天,感觉还是先来个小车项目吧,四轴的话最大的问题是遥控器要买,而且好一点的又贵,所以目前暂时先做个小车项目了。 其实做个小车成本也是挺贵的(╯-_-)╯╧╧ 名称 数量 价钱 小车车体 1 HC-06蓝牙模块 1 L298N电机驱动模块 2 SR04超声波模块 1 2013-05-15 今天小车车体到了,晚上回来就开始组装了,原本我以为这个小车车体应该不会很大,事实是有点大啊。 把电机都装上了 有把小电钻自己焊了张电路板配合arduino nano使用 装上去之后的效果还不错... [全文]

  • Arduino nRF24L01

    nRF24L01是一个Arduino 2.4G的无线扩展。注: 不是Wifi。 库: https://github.com/maniacbug/RF24 [全文]

  • Arduino ENC28J60

    ENC28J60是一个Arduino的网卡扩展。 库: https://github.com/jcw/ethercard 文档: http://jeelabs.net/pub/docs/ethercard/index.html 接线 ENC Arduino VCC 3.3v GND GND SCK Pin 13 SO Pin 12 SI Pin... [全文]

  • Android Multiple Screens

    作为一名Android应用开发程序猿,最痛苦的事莫过于在屏幕适配了,这与历史原因有关,具体就不深究了。 直到最近才搞明白dpi是怎么换算的,在开发的过程中,一个应用运行的屏幕标准应该是分辨率为320x480密度为160dpi的屏幕上,所以所有放在drawable、drawable-mdpi、values、layout、layout-normal的资源文件大小的单位就是px,1dp = 1px。比如有一张宽30px高45px的图片放置在drawable-mdpi目录下,那对应的dp单位就是30dp x 45dp。那么放在drawable-hdpi目录下的这张图片的宽应该是30*1.5px,高45*1.5px,240/160=1.5。放置在drawable-xhdpi的自然就是30*20px和45*2px,320/160=2。 但是,很多公司开发应用不会只开发Android版本的,通常是和IOS一起开发,那美工所做的图片如果给Android做四套图(ldpi、mdpi、hdpi、xhdpi)的会很大工作量,通过的做法是把IOS中的640x960分辨率下的图片拿过用,这样实际只要一套图就能够适配标准的Android手机屏幕,所谓的标准就是密度为160dpi、分辨率为320x480,密度为240dpi、分辨率为480x800等的屏幕,当然不包括平板,这类平板通常是指国内的平板,那屏幕大啊,而分辨率却小,这类不包括在内。 那么该如何得用IOS中的640x960的图片来适配呢,640x960分辨率的在Android系统中对应的应该是320dpi密度的,所以把这类图片放置在drawable-xhdpi目录下,然后在使用的时候,通常布局文件都放置在layout目录,该目录是160dpi使用的,所以我们需要把xhdpi中的图片作一个处理,就是宽高分别除以2,320/160=2。 例如一张登录按钮图片,IOS中对应的是640x960分辨率的,大小为72x64,在Android中使用时把图片放到xhdpi目录,使用的时候这样定义宽高 <ImageView android:layout_width="36dp" android:layout_height="32dp" android:src="@drawable/image" /> 这样做的目标是使图片在Android自动转换的时候不会出现失真的问题,把一张图片从大往小转是不会失真的,效果保持了。36dp是通过72/2得到的,为什么除以2,是转为图片是为320dpi的屏幕设计的,但是布局文件是在layout目录的,也就是说这个布局是为160dpi的屏幕而设计的,因此需要转换成160dpi标准的密度。 当应用在240dpi密度的屏幕上运行的话,图片会被自动从160dpi转换成240dpi,也就是36*1.5dp、32*1.5dp。实际是72*0.75dp、64*0.75,图片只是作缩放,因为不存在失真的问题。 这种做法能够使图片在120、160、240、320这四种标准密度上自适应,是一种按比例自动缩放的过程。同时图片不存在失真的问题。只是如果内容过于多的情况在120密度的屏幕上看非常难看的,道理就是把一张图片从72x64缩小到了27x24。 [全文]

  • Hello May

    今天是5月1号。昨天晚上已经团购了钢铁侠的电影票,今天就10多出门去换票了,换票归来路上差点被汽车撞到,主要是因为我骑车刚好要从自行车道上超车,它却要停要路边,后面又刚好来了一辆公车,还好我速度快了一点,要不然被就撞到了,然后是骑了不远,口袋里的近视眼镜掉了下来,然后被后面来的公车辗成了翔,虽说我不常戴,但想到晚上就要看电影我就白痴了,这也太TM有点背了。 然后就是吃云南过桥米线,钱不够,只好跟老板娘说我现在就去外面取,还好带了卡。 晚上去看电影的时候,还好是IMAX屏幕够大,我这近视眼勉强刚好能够看,也就这样了,看完后从鸟巢骑自行车回建国门,时间已经是晚上11点了,也算是做了件有点疯狂的事了,为了看中国最大的IMAX屏幕的电影,骑自行车来回两小时,加上早上取票的时间,总共骑行4小时。 这个5月,希望好过一点。 [全文]

  • Arduino Quadcopter

    四轴,就是四轴飞行器,通过使用4个高速电机进行空中飞行。 这两天才发现原来有这么酷的东西,刚好手上有Arduino的板子,就想做一个,手痒痒地就在某宝上买材料了,首先我是想做一个迷你的,通过蓝牙来操控,毕竟是新手,再说专业的飞行遥控还挺贵的,就买了一块4合1的传感器集成板,有三轴陀螺仪、三轴加速度、三轴磁场、气压,板子的型号是GY-86,我打算是使用MWC这套开源的四轴程序,对GY-86是兼容的,价钱也不算贵,还买了一块HC-06从机蓝牙模块,24L01+无线模块,一块Arduino nano板,虽然已经有了一块UNO,不过即然是做迷你飞行器还是买块小点的,再说手上的这块UNO是原装的,舍不得。 GY-86 10DOF MS5611 HMC5883L MPU6050 Arduino nano V3.0 ATMEGA328P HC-06蓝牙模块 做四轴的准备工作 今天在网上查了一天的资料了,发现用Arduino板子做四轴的很少,多数都是直接使用328P单片机集成的,目前四轴的机架还没有买,想等GY-86传感器调试好了再买,如果是做迷你四轴的话,那应该是直接使用有刷空心杯电机,而不是使用无刷电机+电调,用空心杯电机比无刷的便宜很多,也算是适合拿来学习了,但是如果这样就有问题了,要怎么通过Arduino直接驱动空心杯电机,由于对电路不懂,就只能是Google了,后来在一些论坛上发现可以使用一种叫做场效应管的元件,具体参考:http://www.geek-workshop.com/thread-196-1-1.html。 经过参考:http://www.cooking-hacks.com/index.php/blog/diy-arduino-pro-mini-quadcopter与http://www.amobbs.com/thread-5490259-1-1.html得到使用SI2302场效应管来驱动空心杯有刷电机 [全文]

  • Arduion And inotool

    Ino是Arduino的一个命令行工具,可以创建Arduino工程与工程的编译部署。 安装ino $ sudo pip install ino 创建Arduino工程 $ mkdir inotest $ cd inotest $ ino init 编译Arduino工程 $ ino... [全文]

  • RaspberryPi And Arduino

    由于Arduino的无线模块真的是比Arduino板子还贵的原因,又刚好手上有一块Raspberry Pi的板子,通过无线控制派再通过USB与Arduino进行通信,这样也是个不错搭配。 安装Raspberry Pi与Arduino串口通信的pySerial: $ sudo pip install pyserial Hello World client.py import serial ardunio = serial.Serial('/dev/tty.usbmodem1411', 9600) print(ardunio.readline()) server.ino... [全文]

  • Arduino Basics

    第一次玩Arduino,这里就记录Arduion的一些基础知识,这些都可以从官方中获取得到,只不过英文看着不太方便。 1. Digital I/O 普通数字输入输出,共14个引脚。 相关的函数 pinMode(pin, INPUT); // 设置为输入或输出 digitalWrite(pin, HIGH); // 打开上拉电阻,即高电平 2. Digital I/O PWM 支持模拟输出的引脚,可用于调节LED灯的亮度。 相关的函数... [全文]

  • Arduino Use Button Switch

    通过按钮输入信息去控制LED灯 线路图 用到的材料 10K欧电阻1个 220欧电阻1个 按钮开头1个 杜邦线4根 面包线3根 LED灯1只 代码 void setup() { pinMode(4, INPUT); // 4号针脚输入 pinMode(13, OUTPUT); //... [全文]

  • Raspberry Pi GPIO LED

    Rev2版本的Raspberry Pi一共有21个GPIO接口,有4个在P5上,其余17个在P1上 目前我知道的有两种模式可以控制GPIO,对应的PIN针脚号也不同的 BCM模式 [全文]

  • Arduino 第一个实验

    按照图片所示接线,四个电阻都是220Ω。 /** * 连接2、4、6、8四个针脚,这四个灯会间隔1秒依次亮起后又依次熄灭 */ void setup() // setup函数为初始化函数,第一次启动Arduino或重启执行,且只执行一次. { pinMode(2, OUTPUT); // pinMode函数是把一个引脚设置为INPUT(输出)或OUTPUT(输出). pinMode(4, OUTPUT); pinMode(6, OUTPUT); pinMode(8, OUTPUT);... [全文]

  • Arduino 到手了

    前天在DFRobot买的意大利原装Arduino UNO R3到手了,比某宝上的山寨贵,不过还是喜欢原装的东西,贵也贵得值,拆开包装一看,一张信用卡大小的蓝色小板子,很不错。 准备学习的工具 晚上有时间做了一个小实验,GND针脚与13号针脚,LED就亮了,一闪一闪,不明真相,好像默认是不会闪的吧,是不是售前测试给我装了个来测试的。 接下来就是去看 http://study.163.com/course/introduction.htm?courseId=194002 的视频了,这套视频不错。 什么是Arduino,Arduino是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O 接口版,并且具有使用类似Java,C 语言的Processing/Wiring开发环境。参考维基百科 https://zh.wikipedia.org/wiki/Arduino [全文]

  • Raspberry Pi Install BitTorrent Sync

    BitTorrent Sync是一个非常强的同步软件,不需要远程服务器的支持,完全是机器与机器之间的通讯。 一、安装BitTorrent Sync 1.1 在Raspberry Pi树莓派里安装 $ wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_arm.tar.gz $ tar zxvf btsync_arm.tar.gz $ ./btsync 解压出来就是一个可执行文件,执行它之后会在当前用户目录下产生.sync目录 此时打开 http://raspberrypi-ip:8888/gui 即可打开web管理界面,界面非常简洁。... [全文]

  • Raspberry Pi GPIO LED

    手上的Raspberry Pi是ModeB的第二版,GPIO接口方面有有所变动,具体看http://www.elinux.org/Rpi_Low-level_peripherals的说明。 前天买的实验小物品今天收到了,明天Arduino也会到,今天就先用Raspberry Pi来玩一下GPIO先,第一次玩这种电路的东西,总是小心翼翼的,怕不小心把板子给毁了,新手一枚… 接线前找了很多例子,网上很多例子没有使用220欧的电阻,而我手上只有200欧的电阻,担心不行,后来找到了http://www.bianbian.me/2012/07/raspberry-pi-led-test.html这个例子,看板子是第一版的,主要看音频接口的颜色,黑色就是国产的第一版,蓝色就是英国产的第二版。 根据它的接线方式是一个GND即地线接口,看刚刚那个网址就能看到板子上有5个地线接口,电压是0v的,第二个是GPIO17,即音频口向上下排左边第6个接口, 由于Fritzing中没有Raspberry Pi Rev2版的图片,暂时使用Rev1版的图,刚好使用到的两个接口是一样的 这个实验用到的元件有 Raspberry Pi Rev2板子一块 220欧电阻一只 Led灯一枚 杜邦线两根 面包板一块 代码,目前新版本中的系统已经默认装好GPIO的库了 import RPi.GPIO... [全文]

  • mosquitto与paho实现推送服务

    mosquitto是一个开源的mqtt服务器,官网: http://mosquitto.org/ paho是eclipse的一个开源项目,使用c、java、lua实现了mosquitto客户端,官网: http://www.eclipse.org/paho/ 一、 安装mosquitto $ brew install mosquitto $ /usr/local/sbin/mosquitto // 启动mosquitto服务器 二、 下载并编译paho的jar包 $ wget http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/snapshot/org.eclipse.paho.mqtt.java-0.2.1.zip $... [全文]

  • 使用Eclipse调试Android Native Application

    由于最近需要调试C++程序,以后都是暴力调试的,暴力调试就是在源码中把想要得到的内容通过log的形式输出,这就调试速度快精准度高,但是得到的内容有限,所以才开始使用GDB来高度C++。 现在如果想要通过Google搜索关于Debug Android Ndk的内容很多都是旧版本的,如今ADT插件的发展已经支持NDK的调试的,不需要安装Sequoyah插件与一大堆配置,只需要简单几步即可调试应用,下面记录下调试的步骤,方便以后查阅。 系统: OS X 10.8.3 Eclipse: Juno 4.2.1 ADT: r21.1.0 NDK: android-ndk-r8e 一、创建工程 二、添加Native支持 三、切换至C/C++视图,方便C/C++代码编写 四、检查工程目录结构是否正常,如果没有includes文件夹可以关闭工程再重新打开 五、这样一个完整的工程就创建完成了,接下来我们要实现的功能是点击一下按键,显示从Jni返回的字符串。... [全文]

  • brew安装gdb后的代码签名

    OS X自带的gdb版本有点低了,就使用brew安装了一个最新版本,可是遇到了 please check gdb is codesigned - see taskgated(8) 首先创建一个证书,用于给gdb签名用的,没图片的选项保持默认即可 用刚刚创建的证书给gdb签名 $ codesign -s gdb-cert /usr/local/bin/gdb 输入密码即可 参考: http://sourceware.org/gdb/wiki/BuildingOnDarwin... [全文]

  • SpiderMonkey是mozilla开发的js引擎

    1. 安装 $ brew install SpiderMonkey 2. Hello World #include "jsapi.h" static JSClass global_class = { "global", JSCLASS_GLOBAL_FLAGS, JS_PropertyStub, JS_PropertyStub,... [全文]

  • 使用ndk-gdb调试hello-jni

    $ cd $NDK_ROOT/sample/hello-jni $ ndk-build NDK_DEBUG=1 $ android update project -p . -t android-17 $ ant debug install $ ndk-gdb... [全文]

  • Cocos2d-x ndkgdb 调试记录

    由于目前Cocos2d-x中的libtiff.a静态库中存在main主函数,导致gdb调试时会出现问题,现在需要重新编译一个没有main函数的libtiff静态库 $ git clone git://github.com/dumganhar/libtiff.git $ cp -r libtiff $NDK_ROOT/samples/hello-jni/jni/tiff $ cd libtiff $ ./configure # 目的是生成tif_config.h和tiffconf.h两个文件 $ cp libtiff/{tif_config.h,tiffconf.h}... [全文]

  • PhysicsEditor很好用的一个物理引擎编辑工具

    非常感觉PhysicsEditor的作者赠送的免费许可,有兴趣的同学可以访问 http://www.codeandweb.com/request-free-license 申请。 安装 http://www.codeandweb.com/physicseditor [全文]

  • CodeIgniter

    因为最近要帮朋友做一个网站,所以又开始拾起PHP了,想想已经很久没用php了,以前也用过codeigniter,不过那时候的我还不会面对对象编程,所以总是不能很好地理解继承。 刚好手上有个树每派,就开始在树莓派上配置php运行环境了, 详见 安装: $ wget http://bcs.duapp.com/codeigniter/CodeIgniter_2.1.3.zip $ unzip CodeIgniter_2.1.3.zip $ sudo cp CodeIgniter_2.1.3 /var/www/ [全文]

  • Android的中会用到的获取头像的功能

    1.1 ACTION_PICK的使用 通过相册获取图片 Intent intent = new Intent(Intent.ACTION_PICK); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(intent, 1); 1.2 ACTION_IMAGE_CAPTURE的使用 通过相机获取图片 File file = new File(Environment.getExternalStorageDirectory(),... [全文]

  • 像操作vim一样操作chrome的插件vimium

    1.1 安装 https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb 1.2 常用操作 确保该插件已启用: 查看帮助: ctrl + ? 打开当前页面某链接: f 接着再按提示的字母即可打开对应的链接,如果需要在新tab中打开使用: F [全文]

  • GDB学习笔记

    1.1 常用命令 命令 用法 说明 r run 的缩写,运行程序 q quit 的缩写,退出程序 l list 的缩写,查看当前10行代码 b b linenumber b functionname break... [全文]

  • TexturePacker很好用的一个拼图合成工具

    TexturePacker是一个非常好用的图片合成工具,在游戏开发中经常用到,因为游戏中使用的图片很多都是一张张很小的,如果这样一张一张地加载到内存,好像会浪费很多内存,如果拼成一张N的2次方大小的图片会很高效地复用图片,通过这个工具就很容易实现这个效果了。 安装 http://www.codeandweb.com/texturepacker 点击发布后就会生成.plist和.png文件了,这时在Cocos2d-X中使用 CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist"); CCSprite *pNor = CCSprite::spriteWiteSpriteFrameName("bt_publicinfo_close_nor.png"); CCSprite *pPr = CCSprite::spriteWiteSpriteFrameName("bt_publicinfo_close_pr.png"); 4.16更新: 查看邮件,收到了该工具作者赠送的license了,非常感谢 [全文]

  • 树莓派安装LAMP服务器

    先安装apache服务器和mysql数据库与php $ sudo apt-get install apache2 mysql-server php5 php5-mysql $ sudo service apache2 restart $ sudo service apache2 static $... [全文]

  • HHKB到手

    从下订到手差不多一个月了,第一次海淘,还算理想,也是因为年后萌购的订单多,导致到货速度慢。 第一次买这么贵的键盘,因平时喜欢用vim,所以这个键盘最合适不过了,刚上手的时候,还是有点不习惯没有方向键,当想要移动光标的时候手指问题习惯性地放在原本方向键的位置,可是已经木有方向键了,在hhkb上是使用fn+;、[、’、/分别代替左上右下,这个要慢慢习惯了,话说在vim中完全不需要方向键,hjkl足矣 最近萌购的日元汇率降了,所以现在买会更便宜一些,不过现在日本亚马逊已经没货了。 日本原装进口,质量无得弹,手感不错,声音很好听。 键盘加手续费1281元,再加点运费也才1300不到,比某宝上1600便宜多了。不过我多买了一个专用的包,心想这么贵的键盘怎么也要给它一个好一点的包吧,没想到现在键盘的包比我背的还要贵,现在的生活水平真的是越来越“高”了,不过程序员也不容易,工作辛苦,平时想买啥就买啥,总之自己开心最重要。 现在有一个问题,就是现在macbook外接了键盘发现触摸板摸不到了,这不是要逼我买Apple Magic Mouse。。。算了,暂时拿个普通鼠标用着先吧,等有钱了再买个Apple Magic Mouse。 高清相册: https://plus.google.com/101408036511204166638/posts/fxzs7MWMuzZ [全文]

  • keytool 的使用

    一、使用keytool keytool 是java的jar签名与校验工具,随jdk一同安装 1.1 使用keytool生成签名文件 $ keytool -genkey -v -keystore test.keystore -alias test -keyalg RSA -keysize 2048 -validity 10000 [全文]

  • jarsigner 的使用

    一、使用jarsigner jarsigner 是java的jar签名与校验工具,随jdk一同安装 1.1 使用jarsigner校验apk是否签名 $ jarsigner -verbose -verify test.apk 1.2 使用jarsigner对apk进行签名 // 签名需要三样东西,证书:test.keystore 密码:000000 alias:test $ jarsigner -verbose -keystore... [全文]

  • apktool 的使用

    一、安装apktool 1.1 安装方法很简单,只需要下载解压到本地即可 $ wget https://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2 $ wget https://android-apktool.googlecode.com/files/apktool-install-macosx-r05-ibot.tar.bz2 $ tar -xvf apktool1.5.2.tar.bz2 $ tar -xvf apktool-install-macosx-r05-ibot.tar.bz2 $ mv apktool-install-macosx-r05-ibot/*... [全文]

  • Android

    FILE_LIST := $(wildcard $(LOCAL_PATH)/目录1/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/目录2/*.cpp) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) [全文]

  • 树莓派 Raspberry Pi

    一、依赖库的安装 $ sudo apt-get install bluetooth bluez-utils bluez-compat blueman libbluetooth-dev #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <bluetooth/bluetooth.h> //蓝牙的3个头文件. #include... [全文]

  • 树莓派 Raspberry Pi

    昨天买的Raspberry Pi到了,又有玩具玩了,打算是配置一个通用的环境。 一、系统安装与配置 1.1 OS X下通过下面的命令能够把镜像写入SD $ unzip 2013-02-09-wheezy-raspbian.zip $ df -h $ sudo diskutil unmount /dev/rdisk1s1 $ sudo dd... [全文]

  • C++的extern "C"

    一、extern "C"的用法一 使用原则: 当在C++中引用C的函数或变量,在包含C头文件的时候应该使用extern "C"。 ps: C的函数或变量指的是通过gcc编译的c文件。 1.1 utils.h #ifndef __utils_h__ #define __utils_h__ void add(int, int); #endif 1.2 utils.c #include... [全文]

  • OSX下安装zeromq

    一、安装 $ brew install zeromq 二、Hello World For C++ [全文]

  • OSX下安装VirtualBox与Ubuntu Server

    一、安装 此处省略N个字... 二、安装后的配置 2.1 安装VBoxLinuxAdditions 2.1 把网络连接方式设置为桥接网卡 2.2 修改/etc/default/locale为英文,由于默认安装的是中文,发现不好用 LANG="en_US.UTF-8" 2.2 修改/etc/apt/sources.list ###### http://repogen.simplylinux.ch/index.php ###### Ubuntu Main Repos deb http://cn.archive.ubuntu.com/ubuntu/... [全文]

  • OSX下的LuaJIT测试

    一、安装LuaJIT $ brew install luajit --enable-debug # 开启deubg支持 二、Hello World 2.1 main.c #include "lua.h" #include "lualib.h" #include "lauxlib.h" int main(void)... [全文]

  • Cocos2d-x之Lua支持std::vector容器

    一、编写vector.pkg class vector { TOLUA_TEMPLATE_BIND(T, string, CCSprite*) // 添加我们想要的容器类型 void clear(); int size() const; const T& operator[](int index) const; T&... [全文]

  • Cocos2d-x之回调Lua的函数

    一、编写注册函数 1.1 创建LuaHandler.h,方便其实控件增加该功能。 #ifndef __LUAHANDLER_H__ #define __LUAHANDLER_H__ #include "CCLuaEngine.h" class LuaHandler { public: LuaHandler(): m_nLuaHandler(0){} virtual ~LuaHandler(){} // 注册Lua回调函数 virtual... [全文]

  • Android中编译和使用LuaJIT开发应用

    一、编译Android平台的LuaJIT $ git clone http://luajit.org/git/luajit-2.0.git $ cd luajit-2.0 $ NDK=/opt/android/ndk $ NDKABI=8 $ NDKVER=$NDK/toolchains/arm-linux-androideabi-4.6 $ NDKP=$NDKVER/prebuilt/darwin-x86/bin/arm-linux-androideabi- $ NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm" $... [全文]

  • Cocos2d-x之使用tolua++生成lua对象

    一、创建CCScale9Sprite.pkg 1.保留枚举类型 2.删除CC_DLL,改用多继承 3.删除inline内联关键字 4.删除public等访问限定词 5.删除成员变量 6.保留static关键字 7.删除非public的函数 class CCScale9Sprite : public CCNode { void setPreferredSize(CCSize size); static CCScale9Sprite* create(const... [全文]

  • 每日日记

    今天主要是学习Cocos2d-x平台下如何使用Lua做动态模块,因为工作需要开发一个插件式的应用,希望通过下载一个模块来增加新功能,了解到Lua是很不错的脚本语言,在查看Cocos2d-X官方2.0版本的时候无意看到spidermonkey,Google了一下才知道原来是javascript的C++解析器,能够在C++中直接调用javascript,也能够实现脚本的动态加载,不过仔细查看了一下,如果要在javascript中调用Cocos2d-x中的对象还需要绑定,目前官方实现的对象还没有Lua中的丰富,看来是刚刚弄起来的东西,不过相信以后会更加完善的,目前还是先使用Lua来实现这个动态加载的功能。 目前的想法是使用Lua实现一个新的场景,然后通过CCDirector都进行场景的切换,做了简单的测试这个可以实现,不过在进行测试的时候有用到CCScale9Sprite这个对象,不过官方的LuaCocos2d.cpp中并没有注册这个对象,所以无法在Lua中直接使用该对象,还需要自己添加,不过在想直接用C++实现好一个Layer的封装,再注册这个简单接口的,而不需要注册CCScale9Sprite这个很多接口的,用到的时候直接:create()进来,不过需要作一些事件的回调。 晚上的时候看了Ubuntu开发者网站的第一个做应用的视频,才发现原来Ubuntu可以这么容易开发,不过现在用着RMBP,分辨率太高了,跑Ubuntu字太小了,在考虑要不要增加一个外置显示器。 [全文]

  • Cocos2d-x之CCRenderTexture fix htc

    一、CCRenderTexture.h CCTexture2D *m_pTexture; + CCTexture2D *m_pTextureCopy; CCImage *m_pUITextureImage; 一、CCRenderTexture.cpp , m_pTexture(0) + , m_pTextureCopy(0) , m_pUITextureImage(NULL) bool bRet = false;... [全文]

  • Cocos2d-x之CCRenderTexture

    一、如果使用 CCRenderTexture *pRender = CCRenderTexture::renderTextureWithWidthAndHeight(width, height); pRender->begin(); // 这里可以调用,把相应的东西画在CCRendertexture上,可以画任何东西 CCNode::visit(); pRender->end(false); 二、使用混合模式 主要是使用 glBlendFunc() 函数,有两个参数,前者表示源因子,后者表示目标因子。 GL_ZERO // 表示使用0.0作为因子,实际上相当于不使用这种颜色参与混合运算。 GL_ONE //... [全文]

  • Android中获取状态栏的高度

    代码 /** * @brief GetStatusBarHeight 获取状态栏的高度 * * @return */ public static int GetStatusBarHeight() { int statusBarHeight = 0; if... [全文]

  • Git与Svn配合使用

    1.1 取出最新版本 $ git svn clone -r HEAD svn://svn.linguofeng.com/test/ test 1.2 取出全部 $ git svn clone svn://svn.linguofeng.com/test/ 1.3 提交 $... [全文]

  • C++的new与nothrow、new_handler关键字

    1.1 new #include <iostream> int main() { try { int *pInt = new int(); } catch (std::bad_alloc e) { //... [全文]

  • Cocos2d-x之CCTMXTiledMap

    一、安装Tiled 环境:ubuntu 12.10 $ sudo apt-fast install tiled $ tiled // 启动tiled $ tmxviewer xxx.tmx // 查看tmx文件 [全文]

  • Ubuntu安装apt-fast

    一、安装 $ sudo add-apt-repository ppa:apt-fast/stable $ sudo apt-get update $ sudo apt-get install apt-fast 二、配置 $ sudo dpkg-reconfigure apt-fast 三、使用... [全文]

  • 游戏开发-分离轴定律

    一、分离轴定律定义 是指两个物体每条边分别垂直于该轴,如两物体的投影全部重叠则为碰撞,否则没碰撞。 二、一些公式 2.1 投影公式 投影公式: 顶点:(vx, vy) 轴 :(ax, ay) 顶点的投影:(x, y) x = (vx * ax + vy... [全文]

  • Github中Fork的使用

    一、fork 把别人的版本库变成自己的 详细官方教程: https://help.github.com/articles/fork-a-repo 二、clone 克隆自己的版本库 $ git clone git@github.com:linguofeng/cocos2d-x.git 三、remote 配置远程版本库,实现与原始版本库同步 $ git remote -v // 查看当前远程版本库 $ git... [全文]

  • Cocos2d-x之CCUserDefault

    一、set 设置 CCUserDefault::sharedUserDefault()->setStringForKey("string", "value"); CCUserDefault::sharedUserDefault()->setIntegerForKey("integer", 10); CCUserDefault::sharedUserDefault()->setFloatForKey("float", 2.3f); CCUserDefault::sharedUserDefault()->setDoubleForKey("double", 2.4); CCUserDefault::sharedUserDefault()->setBoolForKey("bool", true); CCUserDefault::sharedUserDefault()->flush(); 二、get 获取 string ret = CCUserDefault::sharedUserDefault()->getStringForKey("string"); double... [全文]

  • Cocos2d-x之CCSprite

    注:本api基于Cocos2d-x 0.13版本 一、CCSprite 精灵 CCSprite * sprite = CCSprite::spriteWithFile("file"); // spriteWithFile("file", CCRectMake(x, y, width, height)); // spriteWithTexture(texture, CCRectMake(x, y, width,... [全文]

  • Cocos2d-x之CCProfiler

    注:本api基于Cocos2d-x 0.13版本 一、CCProfilingTimer 分析计时器 #if CC_ENABLE_PROFILERS CCProfilingTimer * timer = CCProfiler::timerWithName("none", this) #endif #if CC_ENABLE_PROFILERS CCProfiler::releaseTimer(timer); timer = NULL; #endif... [全文]

  • Cocos2d-x之Schedule

    一、schedule 定时器 // 每隔0.5秒执行一次callback函数 schedule(schedule_selector(Test::callback), 0.5f); Test::callback(ccTime dt) { } 二、unschedule 取消定时器 unschedule(schedule_selector(Test::callback)); 三、CCScheduler 定时器管理器 CCScheduler::sharedScheduler()->pauseTarget(this); // 暂停当前对象所有的定时器 ->resumeTarget(this); //... [全文]

  • Cocos2d-x之CCTextureCache

    一、CCTextureCache int picnums = 30; // 总张数 int picnum = 0; // 已经加载张数 CCTextureCache::sharedTextureCache()->addImageAsync("图片地址", this, callfuncO_selector(Test::loadingCallBack)); void Test::loadingCallBack(CCObject * obj)... [全文]

  • Cocos2d-x之CCMenu

    一、CCMenuItemSprite 精灵按钮 CCSprite * normal = CCSprite::spriteWithFile("默认状态的图片"); CCSprite * selected = CCSprite::spriteWithFile("选中状态的图片"); CCSprite * disabled = CCSprite::spriteWithFile("禁用状态的图片"); CCMenuItemSprite * item... [全文]

  • Cocos2d-x之CCLayer

    一、CCLayer class HelloLayer: CCLayer { public: HelloLayer() { setIsKeypadEnabled(true); } virtual ~HelloLayer(); virtual void keyBackClicked(); // 重写手机返回键点击 virtual void keyMenuClicked();... [全文]

  • Cocos2d-x之CCLabel

    一、CCLabelAtlas 显示图片中的数字或文本 CCLabelAtlas * label = CCLabelAtlas::labelWithString("0", "数字图片", 24, 30, ' '); label->setString("124"); 二、CCLabelBMFont 显示Bitmap图片中的字体 BMFont生成工具:http://www.n4te.com/hiero/hiero.jnlp CCLabelBMFont * label =... [全文]

  • C++的拷贝构造函数和赋值运算符

    一、拷贝构造函数 使用原则:当对象中含有类型为指针的成员变量时,重载拷贝构造函数能够防止两对象共享同一成员指针的问题。 class Test { public: Test(void); // 默认构造函数 Test(const Test& t); // 拷贝构造函数 ~Test(void); // 析构函数 private: char *... [全文]

  • Cocos2d-x之学习笔记

    一、RotateWorldTest 这是一个旋转动画效果 CCAction* rot = CCRotateBy::actionWithDuration(8, 720); [全文]

  • C++的重载、覆盖、隐藏

    一、重载 同一个类中的函数 函数名相同 参数不同 virtual关键字可有可无 class Test { public: void post(const char* addr); void post(const char* addr, int port); //... [全文]

  • C++的动态内存分配

    一、malloc/free char * mName; void setName(const char * name) { free(mName); // free用于释放malloc申请的内存空间,同时记住释放后应该把指针置NULL防止出现“野指针”。 mName = (char*) malloc(sizeof(name) + 1); if... [全文]

  • C++的const与pointer

    一、重载 const char* str; // 常量指针,指向常量的指针,地址可变,值不可变。 // char const *str; // 同上。 char* const str; // 指针常量,地址不可变,值可变。 const char* const... [全文]

  • C++的学习笔记

    一、文件结构 .h 头文件:由版权版本声明、预处理块、函数和类结构组成。 /** * 版权版本声明 * 文件名:test.h */ #ifndef __TEST_H__ // 预处理块 #define __TEST_H__ // 全局函数 int add(int x,... [全文]

  • Ubuntu安装SublimeClang插件

    一、安装pythonbrew来安装Python2.6 $ curl -kL http://xrl.us/pythonbrewinstall | bash $ source "$HOME/.pythonbrew/etc/bashrc" $ pythonbrew install --configure="--enable-unicode=ucs4" 2.6 # 这一步会安装错误,修改$HOME/.pythonbrew/dists/Python-2.6.tgz压缩包中的Makefile.pre.in文件,搜索[-DSVNVERSION=\"`LC_ALL=C svnversion .`\"]改成[-DSVNVERSION="\"`LC_ALL=C svnversion... [全文]

  • Ubuntu编译Box2D物理引擎

    一、下载Box2D物理引擎源码 https://code.google.com/p/box2d/ 二、编译环境 $ sudo apt-get install cmake libglu1-mesa-dev libxi-dev 三、编译,查看Building.txt帮助文件 $ cd $BOX2DPATH/Build $ cmake -DBOX2D_INSTALL=ON -DBOX2D_BUILD_SHARED=ON .. $... [全文]

  • Cocos2d-x之tests工程在Ubuntu上运行

    一、安装依赖库 $ sudo apt-get install libglfw2 libglfw-dev libzip2 libzip-dev 二、编译Box2D库 $ cd $COCOS2DX_ROOT/Box2D/proj.linux // 进入对应的linux工程 $ make // 这一步是编译libbox2d.a静态库 $... [全文]

  • Cocos2d-x之CCSpriteFrameCache

    配合plist文件加载一张大图片中的某个区域 .plist 格式 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>texture</key> <dict> <key>width</key> <integer>图片的宽度</integer>... [全文]

  • Cocos2d-x之CCObject::autorelease

    一、在传递对象指针的过程中有可能被自动释放的可能 class A: public cocos2d::CCObject { public: int getValue(void) { return 25; } }; class B { public: A *... [全文]

  • C++的值、引用和指针的传递

    #include <iostream> void passValue(int x) // 值传递 { x++; std::cout << "passValue() -- x = " << x << std::endl;... [全文]

  • Eclipse在Ubuntu 12.04下实现全局菜单

    step 1: $ sudo vim /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so step 2: (search for "Eclipse") /Eclipse<return> step 3: (replace "E" with "X") rX step... [全文]

  • Cocos2d-x之区域裁剪

    一、在Cocos2d-x中就这样来实现区域的显示 class HelloLayer: cocos2d::CCLayer { public: virtual void visit(void); }; // visit()函数在每帧时调用 void HelloLayer::visit() { glEnable(GL_SCISSOR_TEST); // 开启显示指定区域 float x... [全文]

  • Cocos2d-x之Touch事件处理机制

    一、两种机制的四种不同的事件 CCStandardTouchDelegate 默认事件 virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent); 处理按下事件 virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent); 处理按下并移动事件 virtual void ccTouchesEnded(CCSet... [全文]

  • Google Nexus7获取Root权限

    一、准备 下载获取Root权限的工具包。 下载地址:http://downloadandroidrom.com/file/Nexus7/rooting/Nexus7Root.zip 二、解锁 Ubuntu和Mac下是免驱动的。 $ mkdir nexus7 && cp Nexus7Root.zip nexus7 && cd nexus7 $ unzip Nexus7Root.zip // 解压... [全文]

  • Maven+Nexus私服搭建

    一、下载 直接通过官方下载最新的开源版,里面也有详细的安装教程。 官方下载地址:http://www.sonatype.org/nexus/go 二、安装 安装过程很简单,只需要把文件拷贝到某路径下即可。 $ sudo mkdir -p /opt/nexus // 创建/opt/nexus/目录 $ sudo chmod 777 /opt/nexus // 给/opt/nexus/目录可读可写可执行权限 $... [全文]

subscribe via RSS