在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图形界面的入门样例。

BlackBerry PlayBook NDK 官方样例介绍。相关推荐

  1. Android NDK基础样例

    Android NDK基础样例 NDK(Native Development Kit),用C/C++封装一些东西?好像就这么理解好了== 一.环境准备 这个好讨厌==!因为我环境都已经搭了很久了. 已 ...

  2. VOT-toolkit Python 版本使用教程--官方样例版

    1.下载与安装 不成功的话,用以下方案: 附:如果你以这种方式,可以查看./build/lib/vot/utilities/cli.py下面的输入参数的含义. 这是vot-toolkit定义输入参数的 ...

  3. 昇腾Mindstudio官方样例黑白图片上色

    本应用支持运行在Atlas 200 DK上,实现了对黑白图像自动上色的功能. 黑白图像上色是利用卷积计算提取特征,然后用卷积进行分类,从而计算出每个灰度图片的色彩预期.其中处理的图片为LAB图片,L通 ...

  4. 你知道这个C#开发跨平台APP的样例介绍开源项目吗?

    站长英文太差就不翻译了,大家看效果图,都是使用Xamarin.Forms开发的开源移动App介绍,感兴趣的可以访问Github和Gitee仓库看看,下载对应的App项目研究. Github:https ...

  5. Dubbo 新增本地 IDE 插件,快速创建样例工程

    Cloud Toolkit 是一个 IDE 插件,帮助开发者更高效地开发.测试.诊断并部署应用. Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Sp ...

  6. webgl_gpgpu_birds 样例分析

    webgl_gpgpu_birds 是一个 three.js 的官方样例,这个例子模拟了鸟群的运动,是一个群组动画,并且动画的帧率也很高:鸟群的运动很自然,非常值得研究.类似的群组动画还有鱼群,boi ...

  7. ESB项目培训样例说明

    公司项目整体分为两类:一类是产品加交付类项目,另一类为产品加培训类项目.公司所有的解决方案都离不开ESB企业服务总线,所以不管是技术人员还是研发人员对ESB的产品功能都要非常了解,因为在涉及到ESB项 ...

  8. Python word_cloud 样例 标签云系列(三)

    转载地址:https://zhuanlan.zhihu.com/p/20436642 word_cloud/examples at master · amueller/word_cloud · Git ...

  9. elasticSearch Analysis Token Filters作用及相关样例

    1.Standard Token Filter standard 目前什么都不做; 2.ASCII Folding Token Filter asciifolding 类型的词元过滤器,将不在前127 ...

最新文章

  1. Android监听安装卸载
  2. java gc 触发_Java GC种类和触发时机
  3. 本地开发的 SAP UI5 应用,部署到 ABAP 服务器执行出错的问题分析
  4. SignalR在React/Go技术栈的实践
  5. 华为机试——提取不重复的整数
  6. 检测React组件外部的点击
  7. define定义的函数如何引用_3分钟短文:Laravel 编程中优雅地添加定义常量
  8. cad 2010 64位
  9. Zabbix监控系统系列之九:监控网络设备指定接口流量
  10. 用一行`CSS`实现10种布局
  11. 家谱文化④:江苏百岁老人多达8375人,健康长寿的秘密都写在家谱
  12. Word2013制作中国的传统福字在屋门上贴的福字(福倒了)
  13. 《醒来的森林》带你走进神奇的鸟类世界
  14. local variable xxx referenced before assignment
  15. 地形系统shader学习
  16. 有哪些外行看上去很高大上,但在内行眼里 low 得不行的东西?
  17. cesium 鼠标操作习惯修改 鼠标左键旋转 鼠标右键平移
  18. python字符串居中对齐_Python center()字符串居中对齐方法详解
  19. 软考-高项-论文-论信息系统项目的整体管理
  20. 使用Latex排版选择题试卷

热门文章

  1. baseline和benchmark的区别
  2. GraphX二度关系(代码)
  3. 20200510-读后感-用户故事地图-1.什么是用户故事地图以及有什么用
  4. 2019风中劲草 思想政治理论冲刺背诵核心考点【超清】
  5. Linux下安装SVN服务端的方法步骤
  6. Oracle Database 12c 云盘链接
  7. matlab 和 numpy 矩阵乘法异同
  8. MMC5603地磁传感器调试日志
  9. 挑战一个月完成一篇论文初稿
  10. MATLAB---回归分析