Cocos2dx游戏开发系列笔记3:牛刀小试-忍者飞镖射幽灵的Demo
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相关推荐
- Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》
2019独角兽企业重金招聘Python工程师标准>>> 周末了,哲哲在旁边看<爸爸去哪>,骨头继续玩cocos2dx, 首先,如果你新加了CPP和H文件,记得修改项目目录 ...
- Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》(VS2013快捷键)
懒骨头(http://blog.csdn.net/iamlazybone QQ124774397 青岛 ) 周末了,哲哲在旁边看<爸爸去哪>,骨头继续玩cocos2dx, 源码下载 ht ...
- Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
2019独角兽企业重金招聘Python工程师标准>>> 感谢听D同学赞助的Demo. 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2\tools\project-cr ...
- Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的
2019独角兽企业重金招聘Python工程师标准>>> 又是一个愉快的夜晚 还是那张长长的工作桌 哲哲在左边做一个香云纱手包 骨头在这里噼里啪啦的解刨 pad里放着<赢在中国& ...
- Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
懒骨头(http://blog.csdn.net/iamlazybone QQ124774397 青岛 ) 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜 ...
- Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)...
2019独角兽企业重金招聘Python工程师标准>>> 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜欢这样与哲哲共勉 多少个夜晚 一张长 ...
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题
转载:http://blog.csdn.net/iamlazybone/article/details/17191539 懒骨头(http://blog.csdn.net/iamlazybone Q ...
- Cocos2dx游戏开发系列笔记10:解刨《战神传说》
2019独角兽企业重金招聘Python工程师标准>>> 有点困了,从桌子换到床上,刚要开敲,豆瓣电台传来的传来奇怪的歌声"马的-马的-" 看看歌词,应该是&quo ...
- Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...
最新文章
- Core Animation放大缩小;CAKeyframeAnimation
- MongoDB数据库--扩展Base64,算法
- Unity3D 自定义数据格式
- SQL SERVER数据库多条件查询
- Powershell-获取DHCP地址租用信息
- 赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台
- docker 在window 10 专业版的安装 .net core 在docker的部署
- 字符串转命令行字符图片
- 3-6 字符和字符串处理
- [02]基于webservice权限系统
- 关于Facebook,Linkedin网的数据采集总结
- 【初学数据结构系列】 顺序表的实现——通讯录
- DPCM差分预测编码原理及实现
- Macbook安装双系统的方法
- 张宝杰:将IT创造价值进行到底的秘诀
- vue省市区 下拉框实现
- 独家思维导图!让你秒懂李宏毅2020机器学习(二)—— Classification分类
- 模糊查询银行卡号mysql_mysql like查询字符串示例语句
- 解决警告:Unable to preventDefault inside passive event listener due to target being treated as passive.
- html5 画太极图,canvas基础画太极图(娱乐~)
热门文章
- php加数据库开发案例,PHP简单数据库操作类实例【支持增删改查及链式操作】
- 优秀logo设计解析_日本的logo设计为什么那么优秀?
- git 撤销全部的commit_git如何撤销commit的方法(未push)
- 字体文件夹_下载了各种五花八门的CAD字体,为什么打开图纸还是找不到字体?...
- 什么是决定计算机内部寄存器,问题解答之 计算机中寄存器定义,分类
- UVALive - 6436
- Spring Boot整合Swagger3的分组问题
- php实现access数据库连接,PHP实现Access数据库连接
- linux日志报multipath,linux device mapper multipath 驱动的路径聚合
- eclipse 选取当前行_苏云金杆菌的防虫效果,取决于能否科学利用,绝非一句“用就行”...