在PlayBook NDK环境中可以通过导入样例的方式创建新项目,所创建的项目中会包括样例的源代码和相关配置文件,开发人员可以直接进行测试,是很好的PlayBook NDK 开发入门资料。现在的样例不多,只有四个,分别是:“Hello World ” “Falling Blocks” “Good Citizen”和“Play Wav”。
首先简单讲一下样例导入的方法:
1. 在PlayBook NDK环境中选择“File -> New -> Examples...”
2. 系统提示选择样例,目前有上面提到的四中样例可以选择,选择样例后点击“Next”
3. 确认页面,一般情况下这步不需要修改内容,直接点击“Finish”就可以
下面逐个介绍一下这些样例。
样例1:HelloWorld
HelloWorld样例中是最简单的NDK代码,完成最简单的工作。不过和一般的Hello World应用不同,这里不是在控制台输出“HelloWorld”字样,而是在PlayBook屏幕上显示“Hello world”字样,应该是考虑到PlayBook没有控制台,屏幕是唯一输出设备。
样例运行结果如下:
打开“Hello World”项目的源代码目录,就是src目录,可以看到main.c , bbutil.c 和bbutil.h三个文件。毫无疑问,其中的main.c就是主函数所在的地方,而bbutil.c和bbutil.h提供了一些需要使用的函数。
main.c主要做的工作就是:
初始化EGL环境,将背景图片“HelloWorld_smaller_bubble.png”载入,显示背景图片,最后在背景图片中央显示“Hello world”字样。
有关main.c中各个函数的关系和应用的事件处理方法在以后的文章中再和大家详细讨论。
样例2:Falling Blocks
样例“Falling Blocks”展现了屏幕触控API的调用和重力感应API的调用。样例运行后,当使用者点击屏幕时在手指点击的地方会出现一个正方形,这个正方形会按PlayBook感应到的重力方向“掉落”,如果使用者改变PlayBook的方向,正方形“掉落”的方向也会随之改变。所以样例的名字叫“Falling Blocks”,注意是“Blocks”,复数,就是说点击多次的话会出现多个正方形,多个正方形都会“向重力方向掉落”。运行结果如下:
样例“Falling Blocks”的源代码和“Hello world”样例的类似,有main.c, bbutil.c 和bbutil.h三个文件。
不同的地方是main.c中加入了屏幕触控的和重力方向变化的响应,大家可以着重看main.c中的handle_events方法,了解事件处理的过程。另外需要关注的就是update方法,该方法根据目前的重力方向修改正方形的x,y位置,虽然方法比较长,不过逻辑不复杂,就是简单的修改x,y的值,当正方形“掉”出屏幕时重设正方形的x,y值,让它出现在屏幕上方。
样例3:Good Citizen
样例“Good Citizen”是一个3D样例,结果是展现一个3D立方体,让开发人员了解如何开始3D开发工作。
不幸的是,在PlayBook模拟器上支持OpenGL有点问题,在我的PlayBook模拟器上运行“Good Citizen”样例的结果如下:
而在PlayBook真机上运行应该是在阴影上有一个漂浮的转动的立方体,还有一个菜单可以修改立方体颜色,效果如下图:
大家可以将“Good Citizen”当做是3D入门的资料,样例中还有一些值得学习的如单选项,选项的保存等。
项目中的文件结构还是一样的,有main.c , bbutil.c和bbutil.h,关键部分还是在main.c中。
样例4:PlayWav
样例“PlayWav”比较特别,可以说没有界面,启动后就是个紫红色的屏幕,然后在后台播放一段声音。所以说这个样例名字叫“PlayWav”。
样例的文件结构也更简单,只有一个main.c,在main.c里装载声音文件并播放出来。该样例可以当做声音文件处理的入门资料。
另一个有意思的是这个样例没有使用EGL,是一个单纯的2D界面,所以大家也可以将它当做是2D图形界面的入门样例。