如何使用Python脚本语言在游戏中进行操作里面主要有两种方式,一种方式是主程序使用一门高级语言,比如C++进行编写,然后对其嵌入一个脚本解释器,在运行时动态执行一些脚本函数。
启动Python脚本语言,Platform选择memlow-lpia-ubuntu-hardy,target选择ububtu-mobile,自动生成即可,等待的时间那叫一个长啊。这也是工具的好与不好,之前敲命令,交叉编译了Gnome Mobile框架的几乎所有模块,吃尽了苦头,但不至于闲着没事干;
而由工具自动生成呢,清闲了很多,也不太关心编译的细节,就是盼着赶快编完,好做测试。接下来,生成Image文件,选择Live RW USB。此时以为大功告成了,点击Launch VM,没有反应...郁闷阿。Google,运行KVM需要CPU支持Intel VT才行,手头又没有MID,那就试试Qemu吧。
把编成的映象文件(Launch VM时选择的文件)直接扔给Qemu,结果“checking device /dev/sda for installation source...”问题出在哪呢,把映象文件挂到本地也没有看出个所以然,其实,Python无法直接跑出画面也在预料之中(此处Qemu的使用可能存在问题 qemu -hda moblin.img)。
由于内核、文件系统由MIC生成,使得很多处理的细节无法得知,但编译的文件总是存在的吧,我想完全可以根据MIC生成的文件来创建Qemu仿真所需的文件。内核可以在${Project Name}/targets/${Target Name}/fs/boot中找到,主要的工作是建立根文件系统的ext3文件:
- dd if=/dev/zero of=1G.img bs=1M seek=1000 count=0
- mkfs.ext3 1G.img
- sudo mount 1G.img ${Mount Dir} -o loop
接下来就比较简单了,拷贝${Project Name}/targets/${Target Name}/fs下的所有内容到${Mount Dir},根文件系统就算形成了(没用的内容请删掉,我的目录下有内核的连接)。linux启动过程一切顺利,提示输入用户名和密码...再次挂载根文件系统1G.img,删掉shadow?还是用文明一点的办法吧,拷贝本机/etc/shadow到${Mount Dir}/etc。
再次启动,得到了shell,可还是没有图形界面(如果MID需要手工启动X,感觉有点多此一举,问题可能出在配置上,没有深究,跑起X再说)。没有/etc/init.d/gdm,还是startx吧,令人沮丧的事再次发生,“(EE):no valid modes found”。没办法。
只能再次挂载根文件系统,添加Modes “800x480”(仅仅是我添加的模式,不知是否支持其他)。总算见到画面了,也许是费了些周折的缘故吧,觉得Moblin的界面还是很漂亮的。
使用同样的方法,可以用Qemu对其他Platform进行仿真(没有一一验证,测试过netbook-lpia-moblin2)。之所以选择Python,首先,易于移植,Python解释器把源代码转换成字节码,然后再把它翻译成机器语言并运行,不需要担心如何编译程序。
如何连接到正确的库等等,只需要把Python脚本语言拷贝到目标机上,它就可以工作了;其次,最近一直在写Python。觉得它可以快速地把想法变成现实,就懒得用C了;***呢,Python是一种极其流行的解释性语言,我们可以看到在Gnome Mobile的原型中也保留了Python的编程接口。