代码是别人写的,我这里只是拿来学习基本知识,技术都是在实战中锻炼出来的,因为你最后还是去做,而不是学。
首先提供我上传到github的地址:
看别人代码,首先看Appdelegate.cpp文件,看主界面是哪一个,然后一步一步看下去:
auto scene = InkmooFlash::createScene(); // run director->runWithScene(scene);
这里明显看到是又InkmooFlash来执行的,简单看了下InkmooFlash文件,是一个开始Flash画面,提示出一个工作室。
Appdelegate里面有一些初始化:比如资源路径,屏幕适应方案,音乐预导入等等,自己慢慢看,我就不进行粘贴代码了。
然后跟进InkmooFlash文件,看见进入MainSence类,这是主界面了。这里主要学习的是MenuItemImage类,这个类主要是用来做主界面的选择按钮的,该类的create函数如下:
/******* normalImage 默认图片路径 selectedImage 选中之后图片路径 disabledImage 禁止的图片显示路径PS:就是这个按钮不能使用的时候的图片 target 大家都懂的 selector 回调函数指针*********/static MenuItemImage* create(const std::string& normalImage, const std::string& selectedImage, const std::string& disabledImage, Ref* target, SEL_MenuHandler selector);
Layer 的两个virtual函数的实现:onExitTransitionDidStart()、onEnterTransitionDidFinish(),使用xcode看代码注释即可知道两个函数的作用。
主界面可以进入的两个界面一个是 游戏界面GameSence、一个是设置界面Devloper,后者我们就不详谈了,关于GameSence:主要分为几个部分,我们也按程序进程走下去:
直接看Init()函数:
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("icon.plist"); spriteSheet = SpriteBatchNode::create("icon.png"); addChild(spriteSheet); initMap(); scheduleUpdate(); schedule(schedule_selector(GameScene::myClock),1.0f ); auto touchListener = EventListenerTouchOneByOne::create(); touchListener->onTouchBegan = CC_CALLBACK_2(GameScene::onTouchBegan, this); touchListener->onTouchMoved = CC_CALLBACK_2(GameScene::onTouchMoved, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
前面的都是些建标签等等东西,我这里就不讲了,这几行才是精华部分。首先是SpriteFrameCache类,该类的介绍链接如下:,是用来缓存数据的,缓存之后调用速
度会变快,类似于ios的NSCache功能。
然后initMap(),初始化3消的方阵,其中里面有一个封装好的SpriteShape类,赞!
cocos2dx的记时器scheduleUpdate(); 每秒做一个事情。
手指触摸事件的绑定,目前除了以上两种事件还有:
onTouchBegan 手指触摸开始事件,指手指刚开始触摸到的事件
onTouchMoved 手指移动事件,手指在上面滑动的事件
onTouchCancelled 手指取消事件,譬如移除监听范围
onTouchEnded 手指结束事件
今天到此为止。