iOS/Android Game开发笔记
n5
在信息时代客观障碍已不复存在所谓障碍都是主观上的如果你想研发什么新的技术你不需要几百万美元的资金你只需要在冰箱里放满比萨和可乐再有一台便宜的计算机和与之献身的决心你即可拥有任何你想拥有的编程境界- John Carmack
展开
-
iPhone对OpenGL ES的支持程度!
GLBenchMark的结果:http://www.glbenchmark.com/phonedetails.jsp?benchmark=pro&D=Apple%20iPhone&testgroup=gl 这个很重要,复制一份,以备不时之需: OpenGL ES Environment VariablesGL_VENDORImagination Te原创 2008-11-29 13:18:00 · 4065 阅读 · 0 评论 -
iOS中使用自定义ttf/ttc字体,以及cocosbuilder中指定字体的方法
iOS中使用自定义ttf/ttc字体的方法,网上一搜一堆,但是还是有一些没有说清的地方,因此我认为有必要再总结整理一下。(可跳至快速总结直接看结论)首先,明确个概念,这儿讨论的使用ttf/ttc字体的方法,是指使用iOS自建的机制渲染字体,即UIFont去渲染字体将文本生成一张贴图。因此就要符合iOS的一些既定规则。规则有两个:1)让iOS系统找到你的字体 2)原创 2014-07-25 15:01:36 · 7334 阅读 · 0 评论 -
【cocos2d-x 】解决scrollview上的menu拖动问题以及menu item在可视区外仍能触发的问题
在使用cocos2d-x的scroll view的时候,会遇到两个问题:1)scroll view上放menu时,如果拖动menu scroll view不会被拖动,如果scroll view上全是按钮就几乎没地方可以拖动了。2)当menu item滚动出scrollview的可视区域时,仍然能被触发。这两个问题确实挺讨厌的,大大影响用户体验,我看到一些基于cocos2d-x的原创 2014-07-29 13:13:06 · 7528 阅读 · 2 评论 -
Fix cocos2d-x 2.x版本, ios7上字体描边bug
cocos2d-x 2.x版本(到2.2.5都有),在ios7上字体描边和阴影功能失效,原因是使用了一个deprecated API:- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(NSLineBreakMode)lineBreakMode alignment:(NSTextAlignment原创 2014-08-11 15:39:39 · 3177 阅读 · 0 评论 -
CocosStudio UI编辑器(1.6.0)使用调研 (基于cocos2dx-3.2)
CocosStudio UI编辑器(1.6.0)使用调研 (基于cocos2dx-3.2)1. 游戏使用的分辨率适配模式核心设计区域960*640, 对于宽屏使用fix height 640, 对于方屏(如ipad)使用fix width 960, 保证任意屏幕设计分辨率至少为960*640例如: iphone5 设计分比率为 1136*640, ipad为960*720因原创 2014-11-14 17:44:44 · 5092 阅读 · 0 评论 -
【ios8】dyld: program was built for Mac OS X and cannot be run in simulator
程序在iOS8模拟器里面运行,报错:dyld: program was built for Mac OS X and cannot be run in simulator这个提示信息太模糊了,把编译选项和各种库检查了一遍没有解决,然后下载了ios7模拟器,报错:sh: ls command not found原来是某个地方调用了sh: ls,查到是在lua代码中使用os.execu原创 2014-10-14 14:36:24 · 4876 阅读 · 0 评论 -
配置mac android ndk开发环境
WuHaodeiMac:~ wuhao$ cat .bash_profile export PATH=/usr/local/Cellar/git/2.1.2/bin:${PATH}export ANDROID_SDK_ROOT=~/sdk/adt-bundle/sdkexport ANDROID_NDK_ROOT=~/sdk/android-ndk-r9dexport PATH原创 2014-11-20 15:52:09 · 2715 阅读 · 0 评论 -
[android] 指定apk assets里面的文件是否压缩的方法
ant 的 build.xml,查找 nocompress, 按照说明添加后缀,例如:则 asseets或res/raw里面的后缀为zip的文件不会被压缩(因为已经压缩过了)另外,有一篇文章里面也提到了相应的方法,详见:http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-a原创 2014-12-08 17:35:11 · 7754 阅读 · 0 评论 -
{iOS} NSJSONSerialization解析和保存JSON String
NSJSONSerialization是iOS5以后有的,据说比各种第三方库都要快。在其他语言和OC交互时,使用json字符串传递参数是比较常用的方法,这儿看一下怎么做。1)从string 解析NSData* data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *error;原创 2016-01-15 17:59:29 · 3291 阅读 · 0 评论 -
{iOS} 出iOS越狱渠道ipa包的方法
方法1:使用Itunes导出ipastep0. 选中要出包的target的schemestep1. edit scheme, 设置run的build config为releasestep2. Build for runstep3. 在products里面找到刚buld出来的target的app, 右键Show in Finderstep4. 把app拖入it原创 2015-11-28 12:54:47 · 7344 阅读 · 0 评论 -
{Android} 测试Google Play In-App-Billing支付
Google Play的支付接入就不多说了,基本上就是自己搭一个android工程框架,把支付框架也好,把google的例子里面的helper代码copy进去,然后把相关的代码export出一个jar给unity使用。注意要把gen里面自动生成的IInAppBillingService.java也export到jar里面。以前也接入并测试过Google IAB,从v2开始还比较麻烦需要信用原创 2016-02-20 19:03:01 · 5215 阅读 · 0 评论 -
iOS编译集成linux开源c库的一些记录
最近一个iOS项目需要使用一些Linux下面的开源c库,说是Linux的其实是跨平台的,各种Unix系统都有支持。理论上iOS来自MacOS,而MacOS其实是一种兼容的Unix系统,所以这些库应该也可以在iOS上跑。当然了这些库并没有直接操作系统硬件的。目的是在iOS中使用开源c库,那么第一步得能在Linux或Mac上编译他们吧,所以需要点一点Linux 编译安装c库的技能点。 最基本的就是gc原创 2017-05-03 17:27:37 · 2246 阅读 · 1 评论 -
NDK使用静态库模块组织代码详解
使用NDK时,需要编写Android.mk文件,在里面指定要编译的c/c++源码,如果源码比较多,则最好分成模块。NDK build系统可以编译静态库和动态库,一般把各个模块都编译为静态库,最终的项目编译为动态库并依赖所有的静态库。本文总结一下实现的基本方法和步骤。首先需要设定一个例子项目作为参考,例子项目的目录结构为:example - foo -src原创 2014-04-17 16:29:36 · 6599 阅读 · 1 评论 -
spine cocos2d-x runtime修改:支持挂接CCNode到slot,并跟随动画(包括TSR, color, alpha)
spine的cocos2d-x runtime不是专门为cocos2d-x写的,核心部分是一个通用的spine c runtime,所以对于cocos2d-x的支持不是很好。当然如果只是播个动画啥的也足够了,但是真实使用场景中会有各种需求。比如我们现在需要在spine动画的某个骨骼上绑定一个CCSprite。因为spine的骨骼并不是一个CCNode,所以无法直接绑定,因此需要对spine run原创 2014-03-22 14:39:53 · 14293 阅读 · 10 评论 -
Building c++ static library for iPhone
It is a good idea to use c++ static library in a iPhone project, for xcode always need rebuild all files once a while ( Even if I modify only cpp file, I dont know why :( ).The way is simple but ther原创 2008-12-28 11:19:00 · 2311 阅读 · 0 评论 -
iPhone开发中混用objc,c,c++的一些问题
<br />1)xcode的编译器可以指定源文件是按照哪种格式编译,可以在info-build里面指定,也可以为单独文件指定。当然最常用的还是按照文件名后缀解析。<br />c : 使用 c compile,可以在info-build里面设定使用的标准,默认是c99<br />cpp : 使用c++ compile<br />m :使用objective-c compile<br />mm : 同时支持obj-c和 c++<br /> <br />2) 如果cpp文件中包含了obj-c的头文件,即便cpp原创 2010-09-07 11:07:00 · 1674 阅读 · 2 评论 -
OpenGL ES on iOS
<br />iOS Graphics Overview<br /><br />core animation是ios图形子系统的基础,UIView对象由core animation layer支持。各种各样的layer更新他们的内容,由core animation动画和合成,并向显示设备呈现。OpenGL ES是Core Animation的客户,要使用OpenGL ES需要创建一个UIView,这个UIView由一个特殊的core animation layer支持,这个特殊的layer是一个CAEAG原创 2010-10-28 23:30:00 · 3269 阅读 · 0 评论 -
iOS stencil buffer
iOS stencil buffer Both ES1.1 and ES2.0 support stencil operations.However the availability of a stencil buffer is renderer-dependent. On iPho转载 2011-06-07 10:32:00 · 1805 阅读 · 0 评论 -
不能修改texture2D返回的颜色值?OpenGL ES fragment shader在 iPad2上的一个问题
不能修改texture2D返回的颜色值?OpenGL ES fragment shader在 iPad2上的一个问题今天遇到的这个问题很奇怪,这个shader本身很简单,只是把从纹理中look up出来的颜色值稍作修改而已,原版本大概这样:void main(原创 2011-07-04 16:57:03 · 5916 阅读 · 2 评论 -
[iOS] GameCenter无法从游戏中登出
我们的游戏需要支持多个账号,包括facebook, gamecenter, weibo等第三方账号的登陆支持,并且可以在游戏中切换账号。现在遇到一个问题,GameCenter无法从游戏中logout。搜索了一下,并且研读了文档,确实不行,唯一logout的方法是用户自己在GameCenter App中注销。那么对于多账号的游戏,如果想登出gamecenter账号,只能在上一层做封装,注销自原创 2012-07-11 11:30:36 · 10510 阅读 · 0 评论 -
从引用计数,auto release pool 到 shared ptr
想起这个话题,是因为最近在研究cocos2d-x,其内存管理机制使用c++模拟了Obj-C的auto release pool机制。先从头说起,这是一种基于引用计数的技术。我最早接触引用计数,是学习研究irrlicht引擎,当时的感觉是,必须弄清楚每个返回对象的函数,是否grab了对象,虽然irrlicht引擎自己是按照命名规则给予用户提示的,但是别人写的方法可就苦恼了。 纯粹引用原创 2012-08-19 20:08:33 · 3254 阅读 · 0 评论 -
查看和设置ndk使用的gcc版本
项目使用的一个开源库更新后,发现在android平台编译出错了,因为他使用了c++11的auto特性,编译器尚未支持。因为gcc4.8.1已经完全实现了c++11的特性,所以我需要看一下我使用的ndk支持哪些toolchain。我使用的是ndk r8e (也是目前-2013.6月-的最新版),看一下他的toolchains目录,支持到了gcc4.7。根据他的文档,默认是使用了gcc4.6。原创 2013-06-24 13:48:46 · 19583 阅读 · 1 评论 -
[iOS] identifierForVendor和advertisingIdentifier为全0或者每次重启应用会变的bug
最近发现有各别ios6的设备,取厂商id和广告id会有问题,问题1:取出来的是00000000-0000-0000-0000-000000000000这种全0的值;问题2:每次完全关闭应用程序,重新打开,取得的厂商id和广告id都会变。查了一下,应该是ios系统的bug:Apple confirmed this bug in their system in response t原创 2013-08-28 13:24:04 · 6638 阅读 · 0 评论 -
[ios] itunes connect注意事项两则
1)plist中填写的版本号最好为 x.x.x的格式,如1.0.1。如果写成1.01,苹果会认为是1.1。如果你想上传1.0.2,验证时不能通过,报错为1.0.2版本小于1.1。所以最好使用x.x.x的格式。2)如果游戏支持多国语言,请分别为每种语言添加lproj。即使lproj中的string内容是一样的。因为itunes是根据lproj来判断你支持的语言数量的。如果不添加,就不原创 2013-08-29 11:39:55 · 1874 阅读 · 0 评论 -
lua print在android系统上的问题
今天又被android坑了一把,一个协议请求失败,看了下log,有个参数是mac地址,且进行了url encode。log上显示经过encode的值中带有空格。比如3A:0F被encode为3A%20A0F, log上显示为3A A0F。后端程序说可能是有空格协议不完整。于是就开始查,首先这个encode实现是在java里面的,通过jni传到了c++,通过tolua++绑定传到了lua。最原创 2014-01-16 17:42:26 · 4186 阅读 · 0 评论 -
app扩展输出log到文件并从containing app读取
app扩展,即appex,如today widget,network extension之类。现在有个需求是在开发扩展时,将log输出到文件,在必要的时候获取文件内容进行查看。此处不讨论将log通过网络传输到服务器的情况,也不讨论使用类似CocoaLumberjack这样的第三方库的情况,我们简单的使用NSLog而已。思路整理:首先,我们要能取得log文件,此处不讨论通过网络将log文件传输到服务原创 2017-08-17 18:31:40 · 1253 阅读 · 0 评论