2013年4月14日星期日

C++学习类教程

 // pointer to classes example
    #include <iostream.h>
    
    class CRectangle {
        int width, height;
      public:
        void set_values (int, int);
        int area (void) {return (width * height);}
    };
    
    void CRectangle::set_values (int a, int b) {
        width = a;
        height = b;
    }
    
    int main () {
        CRectangle a, *b, *c;
        CRectangle * d = new CRectangle[2];
        b= new CRectangle;
        c= &a;
        a.set_values (1,2);
        b->set_values (3,4);
        d->set_values (5,6);
        d[1].set_values (7,8);
        cout << "a area: " << a.area() << endl;
        cout << "*b area: " << b->area() << endl;
        cout << "*c area: " << c->area() << endl;
        cout << "d[0] area: " << d[0].area() << endl;
        cout << "d[1] area: " << d[1].area() << endl;
        return 0;
    }
 
 
 
result:
 
a area: 2
*b area: 12
*c area: 2
d[0] area: 30
d[1] area: 56 


  • *x 读作: pointed by x (由x指向的)
  • &x 读作: address of x(x的地址)
  • x.y 读作: member y of object x (对象x的成员y)
  • (*x).y 读作: member y of object pointed by x(由x指向的对象的成员y)
  • x->y 读作: member y of object pointed by x (同上一个等价)
  • x[0] 读作: first object pointed by x(由x指向的第一个对象)
  • x[1] 读作: second object pointed by x(由x指向的第二个对象)
  • x[n] 读作: (n+1)th object pointed by x(由x指向的第n+1个对象)

2013年4月10日星期三

Ubuntu下cocos2d-x + android开发环境搭建及配置

1.搭建开发环境

Ubuntu12.10 + JDK1.7
Eclipse 下载的Android SDK中已经自带了Eclipse。
各自解压,并下载和配置SDK。

2.环境配置
打开cocos2d-x根目录,编辑create-android-project.sh文件,修改NDK_ROOT_LOCAL和ANDROID_SDK_ROOT_LOCAL相应的目录为NDK和SDK的根目录
 
  NDK_ROOT_LOCAL="/home/xxx/soft/android-ndk-r8e"   
  ANDROID_SDK_ROOT_LOCAL="/home/xxx/soft/adt-bundle-linux-x86-20130219/sdk" 
3.创建并运行cocos2d-x项目
运行create-android-project.sh。
输入package path、target id、project name,会自动在当前目录下生成相应的cocos2d-x项目。
 
 4.编译项目
 切换到新建项目的proj.android文件夹下,运行./build_native.sh命令,进行编译。
这时会提示 
  $ ./build_native.sh    
  please define NDK_ROOT  
 
export相应目录,重新执行./build_native.sh
  export NDK_ROOT=/home/jiang/soft/android-ndk-r8e  
  
5.导入Eclipse并运行 
导入项目到Eclipse中,将Coco2d-2.0-x-2.0.4目录下的cocos2dx/platform/android/java/src/org/cocos2dx/lib文件夹复制到android工程下,运行。 如果在模拟器下运行不成功,要修改模拟器的属性,勾上Use Host GPU
 
 
 

2013年4月9日星期二

html5语音输入功能speech属性

以前语音输入功能虽然没用过,但是看上去很高级的样子,有了智能手机之后,在ios和android中的语音输入,特别是iPhone的Siri,让一切变得如此简单,嘎嘎。
当然我不是在这里要实现如此强悍的功能,只是说说html5中的语音输入功能speech属性,大家先可以看看W3C文档:http://www.w3.org/2005/Incubator/htmlspeech/2010/10/google-api-draft.html
看上去很强大的样子,不过不要高兴的太早,因为大部分的浏览器还没有实现这些接口,目前可以用的只有chrome(11版本以上)的私有属性:x-webkit-speech。例如我们看看淘宝在chrome下的搜索框,如图:
实现语音输入也非常简单:
1<input id="q" name="q" accesskey="s" autofocus="true" autocomplete="off" x-webkit-speech  x-webkit-grammar="builtin:translate" />
简单的来说,我们只要在input元素上加上x-webkit-speech属性就可以了,当然你如果用xhtml,那么标准的写法是:x-webkit-speech=”x-webkit-speech”;
1<input  name="q"  x-webkit-speech />

其他属性:

lang
设置语言种类:
1<input lang="zh-CN" type="text" />
x-webkit-grammar
语音识别语法,取值:
  • translations—说一个词,并把它翻译
  • definitions—说一个词,并且获得定音
  • directions—说一个地址,要求行车路线
  • dictation

事件

onwebkitspeechchange
语音输入事件,当发声语音改变时触发:
1<form action="http://www.google.com/search" >
2<input type="search" name="q" lang="zh-CN" x-webkit-speech x-webkit-grammar="builtin:search" onwebkitspeechchange="startSearch(event)"/>
3</form>




此文引自:http://www.css88.com/archives/4800