博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2dx 学习笔记(4) --《万圣节大作战》项目分析(1)
阅读量:5255 次
发布时间:2019-06-14

本文共 1871 字,大约阅读时间需要 6 分钟。

  代码是别人写的,我这里只是拿来学习基本知识,技术都是在实战中锻炼出来的,因为你最后还是去做,而不是学。

  首先提供我上传到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    手指结束事件

 

 

      今天到此为止。

 

     

 

   

 

转载于:https://www.cnblogs.com/RoysPhoneBlog/p/4624162.html

你可能感兴趣的文章
[转]Log4j使用总结
查看>>
ssh(安全外壳协议)
查看>>
python基础_特殊符号
查看>>
关于Java序列化和Hadoop的序列化
查看>>
创建线程的三种方式
查看>>
docker rancher 体验 (未完待续.....)
查看>>
10反射
查看>>
Android操作Sqlite数据库
查看>>
opencv 鼠标交互
查看>>
iOS之地图开发
查看>>
[Swift]LeetCode1015. 可被 K 整除的最小整数 | Smallest Integer Divisible by K
查看>>
[Swift]LeetCode1124. 表现良好的最长时间段 | Longest Well-Performing Interval
查看>>
[Swift]LeetCode942. 增减字符串匹配 | DI String Match
查看>>
Pascal代码自动格式化
查看>>
蔡康永的说话之道2-透过说话,懂得把别放在心上
查看>>
计算机网络设备之交换机和路由器
查看>>
软件工程(2019)结对编程第一次作业
查看>>
[SCSS] Loop Over Data with the SCSS @each Control Directive
查看>>
[Node.js] Use "prestart" in scripts
查看>>
[AngularJS] ngCloak
查看>>