用了一天的时间,写了一个俄罗斯方块的手机游戏。
基础游戏框架是用C写的,或者说是在微软的.net环境下写的。然后附加到iPhone(XCode环境)下运行调试。
界面部分则是在XCode里写的。
说起来,.net的C/C++的.cpp或c文件,总是要带个"stdafx.h",否则就编译报错,解决方案是带个stdafx.h,然后在iPhone的工程里额外加个"stdafx.h",不过就不是原来的h文件了,里面就简单的包含了几个.h,比如stdlib.h。
(另:如果.net里指定生成空的静态库,就可以不指定stdafx.h)
一直以为objective c只支持c文件,所以改名为.c文件加到工程里,然后很意外的发现也支持一些c++,比如bool好象在c里是没有的。所以在xcode里编译报错,换成.cpp后就编译通过了。至于class是否支持,就没试了。
不过还没完,既然是c函数,肯定要加个声明了,比如
extern void RunInit(int Rng);
结果很沮丧的发现编译过了,链接时却提示找不到该函数,折腾了好一阵,试着把.cpp文件改名为.m文件,链接通过,正常运行,真是抓狂。
现在回到XCode。先抱怨下键盘操作。
标准键盘里是有home,end,delete的,这三个我用得相当多。原先只是照着书输下示例代码,也还可以忍受。现在频繁的改代码,真是有点吃不消。尝试了一下,发现mac环境有自己的解决方案。标准键盘的"win"对应于mac键盘里的一个四方花纹键。不过用得比win频繁的多,用这个键加上右移键相当于end,加上shift,就相当于shift+end,选中到结尾。
然后是delete键,这个在mac里其实是回删键,mac下估计是某个组合相当于delete,不过没找到,就算找到了估计也不想用,所以每次要按delete都是按下右移,再回删,或干脆用鼠标选中按回删,这就严重影响速度了。。整得刚回到win里都忘了有deletes可按了。
然后是选择一段代码,拖到某处,mac很华丽的把整段文字一起拖动,害得我找目标好头大。这是何苦来啊,还是win的显示一个小小矩形好。
mac的键盘按起来还是挺舒服,对比我的xp笔记本。不过比起台式机还是差了好多。试着外接了一个键盘,不过上面的home,delete,还是不能用。
所谓入乡随俗,只是现在频繁的在mac/win切换,不知入的了不。。
刚用XCode,好几次画完视图,运行,很傻眼的发现啥的没有,最后发现是要先保存,界面也就算了,代码有时也这样。现在基本是本能的按保存键。
输代码,XCode默认是不弹出提示代码列表的(不知道可不可以配置成弹示),每次都用从菜单里找,快捷键是有,不过不认识,怎么看都象是电源键加某键,这谁敢按啊。
XCode里的代码提示其实挺强大的,比如输入UIL,后面就跟了able,按Tab就把able放上去了。尤其是标准C函数,.net是不提示的,比如输::p,会看到::printf,不过如果只输prin,是没反应的。。而XCode虽然没有代码列表,不过在prin后会有所反应。可能和.net重点不在c有关吧。
然后是发布程序,看起来,,不成为付费开发人员是别想发布,测试都不行。。