2019独角兽企业重金招聘Python工程师标准>>>

就是这个例子,应该很简单,主要用到的有:精灵的移动,触摸,碰撞检测。

赶紧搞定,待会还要陪哲哲来几局爱消除。

首先在Scene初始化方法里添加精灵:

CCSprite *player =CCSprite::create("Player.png",CCRectMake(0,0,27,40));

player->setPosition(ccp(origin.x+ player->getContentSize().width/2,origin.y+visibleSize.height/2));

this->addChild(player,1);

注意,以前的版本初始化方法叫spriteWithFile

修改Scene背景色

class HelloWorld : public cocos2d::CCLayerColor

if ( !CCLayerColor::initWithColor(ccc4(255,255,255,255)) )

随机在屏幕右侧添加幽灵

void HelloWorld::addTarget()
{
CCSprite *target=CCSprite::create("Target.png",CCRectMake(0,0,27,40));
CCSize winSize=CCDirector::sharedDirector()->getWinSize();
int minY=target->getContentSize().height/2;
int maxY=winSize.height;
int rangeY=maxY-minY;
int acturalY=(rand()%rangeY)+minY;
target->setPosition(ccp(winSize.width-target->getContentSize().width/2,acturalY));
this->addChild(target);
}

初始化里调用addTarget几次,此时,屏幕上就应该有忍者和几个随机的幽灵了,

骨头忍不住在手机上跑下看看,注意,要拷贝新资源到assets里。

cocos2d-x中CCCallFunc CCCallFuncN CCCallFuncND的区别:差了下,就是参数区别

void callback1();
    void callback2(CCNode* sender);
  void callback3(CCNode* sender, void* data);
CCCallFunc::create(this, callfunc_selector(testCallFunc::callback1)),NULL);
CCCallFuncN::create(this, callfuncN_selector(testCallFunc::callback2)),NULL);
  CCCallFuncND::create(this, callfuncND_selector(testCallFunc::callback3), (void*)0xbebabeba),NULL);

添加动作和事件监听

CCFiniteTimeAction *actionMove=CCMoveTo::create((float)actualD,ccp(100-target->getContentSize().width,winSize.height/2)); 
CCFiniteTimeAction* actionMoveDone = CCCallFuncN::create(this,callfuncN_selector(HelloWorld::spriteMoveFinished));
  target->runAction(CCSequence::create(actionMove,actionMoveDone,NULL));

void HelloWorld::spriteMoveFinished(CCNode* sender)
{
CCSprite *sprite = (CCSprite *)sender;
this->removeChild(sprite);
CCLOG("Anim stop!");   
addTarget();
}

每隔1秒调用一下

this->schedule( schedule_selector(HelloWorld::gameLogic), 1.0 );

添加触摸事件

void ccTouchesEnded(cocos2d::CCSet *touches,cocos2d::CCEvent *event);

this->setTouchEnabled(true);

触摸事件里添加子弹,并且(move方法里)算出子弹的运行线路

CCSprite *bullet=CCSprite::create("Projectile.png",CCRectMake(0,0,20,20));
this->addChild(bullet,0,2);
this->move(bullet,location.x,location.y);

先了解下更新机制

scheduleUpdate();
schedule(schedule_selector(Updatedemo::update),1.0f);
scheduleOnce(schedule_selector(Updatedemo::update2),8.0f);

然后再用子弹遍历幽灵,判断两个矩形是否相交,即中弹

if (CCRect::CCRectIntersectsRect(projectileRect, targetRect))判断方法

中弹后,该remove的remove,该减分的减分。

笔记:

遍历CCArray

CCARRAY_FOREACH(array, object){}

类型转换,jt为CCObject,转换为CCSprite

CCSprite *target = dynamic_cast<CCSprite*>(jt);

//添加SimpleaudioEngine.h  
#include "SimpleAudioEngine/SimpleAudioEngine.h"  
  
//播放背景音乐的代码  
SimpleAudioEngine::getSharedEngine()->playBackgroundMusic("background-music-aac.mp3");  
  
//播放音效的代码  
SimpleAudioEngine::getSharedEngine()->playEffect("pew-pew-lei.wav");

label赋值char

sprintf(buffer,"code: %i",res);

简单一记录,骨头去把这个demo完成了去

噼里啪啦%……×&×(

搞定,做成了霰弹效果,哲哲喊了,Z Z Z...

------------------- 飞船起飞--------------------

Cocos2dx游戏开发系列笔记10:解刨《战神传说》

Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应

Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》

Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?

Cocos2dx游戏开发系列笔记3:牛刀小试->忍者飞镖射幽灵的Demo

Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么

Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin

-------------------- 飞船降落--------------------

最后,骨头介绍一下陪在身边的哲哲(右边就是低调的哲哲)

哲哲,小名 YIYI ,手工爱好者,文艺范,手艺人,《YiYiの妙舍》创始人,很有自己想法。

转载于:https://my.oschina.net/kaiyuan/blog/182668

Cocos2dx游戏开发系列笔记3:牛刀小试-忍者飞镖射幽灵的Demo相关推荐

  1. Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》

    2019独角兽企业重金招聘Python工程师标准>>> 周末了,哲哲在旁边看<爸爸去哪>,骨头继续玩cocos2dx, 首先,如果你新加了CPP和H文件,记得修改项目目录 ...

  2. Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》(VS2013快捷键)

    懒骨头(http://blog.csdn.net/iamlazybone  QQ124774397 青岛 ) 周末了,哲哲在旁边看<爸爸去哪>,骨头继续玩cocos2dx, 源码下载 ht ...

  3. Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

    2019独角兽企业重金招聘Python工程师标准>>> 感谢听D同学赞助的Demo. 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2\tools\project-cr ...

  4. Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

    2019独角兽企业重金招聘Python工程师标准>>> 又是一个愉快的夜晚 还是那张长长的工作桌 哲哲在左边做一个香云纱手包 骨头在这里噼里啪啦的解刨 pad里放着<赢在中国& ...

  5. Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

    懒骨头(http://blog.csdn.net/iamlazybone  QQ124774397 青岛 ) 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜 ...

  6. Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)...

    2019独角兽企业重金招聘Python工程师标准>>> 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜欢这样与哲哲共勉 多少个夜晚 一张长 ...

  7. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题

    转载:http://blog.csdn.net/iamlazybone/article/details/17191539 懒骨头(http://blog.csdn.net/iamlazybone  Q ...

  8. Cocos2dx游戏开发系列笔记10:解刨《战神传说》

    2019独角兽企业重金招聘Python工程师标准>>> 有点困了,从桌子换到床上,刚要开敲,豆瓣电台传来的传来奇怪的歌声"马的-马的-" 看看歌词,应该是&quo ...

  9. Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇

    懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...

最新文章

  1. Core Animation放大缩小;CAKeyframeAnimation
  2. MongoDB数据库--扩展Base64,算法
  3. Unity3D 自定义数据格式
  4. SQL SERVER数据库多条件查询
  5. Powershell-获取DHCP地址租用信息
  6. 赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台
  7. docker 在window 10 专业版的安装 .net core 在docker的部署
  8. 字符串转命令行字符图片
  9. 3-6 字符和字符串处理
  10. [02]基于webservice权限系统
  11. 关于Facebook,Linkedin网的数据采集总结
  12. 【初学数据结构系列】 顺序表的实现——通讯录
  13. DPCM差分预测编码原理及实现
  14. Macbook安装双系统的方法
  15. 张宝杰:将IT创造价值进行到底的秘诀
  16. vue省市区 下拉框实现
  17. 独家思维导图!让你秒懂李宏毅2020机器学习(二)—— Classification分类
  18. 模糊查询银行卡号mysql_mysql like查询字符串示例语句
  19. 解决警告:Unable to preventDefault inside passive event listener due to target being treated as passive.
  20. html5 画太极图,canvas基础画太极图(娱乐~)

热门文章

  1. php加数据库开发案例,PHP简单数据库操作类实例【支持增删改查及链式操作】
  2. 优秀logo设计解析_日本的logo设计为什么那么优秀?
  3. git 撤销全部的commit_git如何撤销commit的方法(未push)
  4. 字体文件夹_下载了各种五花八门的CAD字体,为什么打开图纸还是找不到字体?...
  5. 什么是决定计算机内部寄存器,问题解答之 计算机中寄存器定义,分类
  6. UVALive - 6436
  7. Spring Boot整合Swagger3的分组问题
  8. php实现access数据库连接,PHP实现Access数据库连接
  9. linux日志报multipath,linux device mapper multipath 驱动的路径聚合
  10. eclipse 选取当前行_苏云金杆菌的防虫效果,取决于能否科学利用,绝非一句“用就行”...