作为一个买书爱好者,读书却十分的不擅长,真的忒丢脸。主要原因大概就是书本总是没有实例的来的那么令人兴奋,引人入胜。
目前由于daota传奇的兴起,许多公司都开始模仿起dota纷纷投入到卡牌游戏的制作。
那么我们先承接上篇,Q&R:
Q:项目android移植时候遇到的ndk报错问题。
R:实际上很多问题都是因为不熟悉mk导致的问题。
好吧,我们首先看下上述的mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
这里忽略,因为我们基本不用改上面这部分,引擎组已经帮我们做好了,下面的才是重点:
LOCAL_SRC_FILES //表示你的cpp文件路径 是以当前路径为相对路径的,即proj.android/jni/,别忘了\(相当于目录+目录,多个目录之间的划分)
LOCAL_C_INCLUDES//表示你的头文件路径,如果你没在class里面做细分(创建了多个文件夹,类似筛选器,存放cpp),则不必改
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static//cocos基本库
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static//cocos声音库
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static//box2d物理引擎库
而这些又是怎么来的呢?
请看:
进入cocos目录,打开2d目录,找到子目录下的android.mk ,打开之~
LOCAL_MODULE := cocos2dx_static
LOCAL_MODULE_FILENAME := libcocos2d
没错,这就是引擎帮你做好的android.mk,而你需要看的则是LOCAL_MODULE,你这就是你自己的项目需要填入的东西。同理,我们在audio/android/下也能找到相应的库。
then,here:
$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
其实不用很清楚的知道什么是什么,你只要知道什么是你需要填写上的就行了。就是:2d,audio/android,box2d这一列,即告诉ndk的引用的库目录,其实眼睛细的人一下子就能发现,2d是cocos目录下,audio也是cocos目录下,但是box2d却不在cocos目录下,那在哪儿呢?额,其实就在外面的external目录中,其实这部分目录表示的就是同级目录。如果说新建项目下的cocos2d目录是1级别目录的话,cocos和external则是二级目录,2d,audio,box2d则是三级目录,你只要知道这个就能很快的填上了~
琐碎的问题:
Q:cocostudio的button如何切换状态
R:请用setbright,setbrgihtstyle
Q:cocos如果我想让让一个精灵帧动画,在我需要的帧数暂停一段时间,怎么做?
R:提供3种方法 1.首先我们得知道每帧之间的time,这是你设置好的~,然后n即具体的帧数,在哪一帧暂停
,然后你可以启动一个定时器,在(n-1)*time时间后进入定时器函数,
Director::getInstance()->getActionManager()->pauseTarget()//利用这个可以暂停需要处理的精灵帧对象,然后需要的resume就哦了~
2.runaction(spawn(action,seq(delaytime,回调(暂停),null),null))也可
3.查看帧动画的step,即内部的定时器,进行内部处理,具体的话,就不说了。
上面这些是我看到群里有人提问,我就顺便解答了~
下篇主要会针对,dota传奇的不知道是掩码图还是灰度图的图~进行说明~
哦~又暴露我菜鸟的智商了~T T