A2013年05月15日10:12:40关于精灵的状态切换,例如超级玛丽,吃蘑菇长大个 小孩变成了 大人 怎么改变的 (期间还有逐渐变大效果,暂且不提)。
。。。。。。正在学习中,谁知道麻烦告诉我啦
2013年05月15日11:55:57
OK 学习结束 终于找到方法嘞 好高兴 VERY HAPPY
初始化里:载入贴图集
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("canimei-daoju_UntitledSheet.plist");
CCSpriteBatchNode* batchMenu =CCSpriteBatchNode::create("canimei-daoju_UntitledSheet.png",50);
addChild(batchMenu);
// 生成Sprite
CCSprite *dian = CCSprite::createWithSpriteFrameName("xiaohai"); // 这里的xiaohai就是plist 文件key frames 下面每个对象所对应的名字
CCSpriteFrame *frame=CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("大人");
zhujiao->setDisplayFrame(frame); 主角就是我们的CCSprite * zhujiao 要操作的那个精灵类
由此 吃蘑菇长大个 问题 解决一部分。
2013年05月15日12:03:53 到点了 吃饭喽 哇咔咔B 关于无敌方法。
声明 int 无敌; 初始化设为 无敌=0;//没有无敌状态——>
碰到无敌对象后 添加无敌方法()-> 定义 无敌=1;//为无敌状态 在遇到对象时 当然是检测到碰撞的前提下,判断是否为 无敌 if 无敌=0 那就执行对对象操作(例如移除对象) if (无敌=1) {cclog"我是无敌我怕谁"} 但无敌不能一直进行下去(游戏,你懂的),
CCActionInterval* wait = CCDelayTime::create(10);
CCCallFuncN * fun =CCCallFuncN::create(this,callfuncN_selector(YeZiScene::kaishi));
qiu->runAction(CCSequence::create(wait,fun,NULL));
等待10秒后 运行fun 方法 在回调方法( callfuncN_selector ( YeZiScene :: kaishi ))中 kaishi 设定 无敌=0;(即10秒后取消无敌状态)比如if判断时
如果满足某条件时终止函数运行(后面还有代码)
这是就可以用return false; 而后面的代码将不再执行
<a href="b.htm" οnclick="alert('c');return false;alert('d');">link</a>
return false 会终止事件执行 上例中 return false之前的alert('c')会执行 alert('d')不会执行 而且 连接也不会跳转.
脚本可以继续执行以后的所有脚本
return false;
后面的脚本就不回执行
indexOf(aaa) == -1
就是在指定的字符串中没有指定的字符
CCSprite* _ball;
初始化 加入精灵贴图集 (A中有),之后就是 调用key 创建精灵
x=..y=..
_ball = CCSprite::createWithSpriteFrameName("ball");
_ball->setPosition(ccp(x,y));
_ball->setTag(11);
this->addChild(_ball);
调用精灵时候需要通过tag获取精灵
_ball = (CCSprite*)getChildByTag(11);
F怎样让for创建的所有精灵都移动?
我for创建了 5个精灵 初始化给了移动方法() 外部写有移动方法的定义 可是运行只有一个在动 错在哪里呢?
创建数组把ball加入数组
void (){
for(int i = 0; i < _balls->count(); i++)
{
CCSprite * _ball = (CCSprite*)_ciqius->objectAtIndex(i);
X =rand() % 480;
Y = rand() % 320;
float juli1= ccpDistance(_ciqiu->getPosition(), ccp(X,Y));
float time1=juli1*1.0/sudu1;
CCLog("==%f===%f===%f=",X,Y,time);
CCActionInterval *action = CCMoveTo::create(time, ccp(X,Y));
CCFiniteTimeAction* seq = CCCallFuncN::create( this,callfuncN_selector(PlayGameScene::b));
_ciqiu->runAction( CCSequence::create(action, seq, NULL) );
}
}
void PlayGameScene::b(CCNode *sender)
{
CCSprite *_ball = (CCSprite *)sender;
X =rand() % 480;
Y = rand() % 320;
float juli= ccpDistance(_ball->getPosition(), ccp(X,Y));
float time=juli*1.0/sudu;
CCLog("ciqiuaction==%f===%f===%f===%f=%f",X1,Y1,time,juli,sudu);
CCActionInterval *action = CCMoveTo::create(time, ccp(X,Y));
CCFiniteTimeAction* seq = CCCallFuncN::create( this,callfuncN_selector(PlayGameScene::b));
_ball->runAction( CCSequence::create(action,seq, NULL) );
}
注意初始化要定义sudu=?.
开始只写了 一个循环再执行本循环 结果进入了死循环 所以执行进入另一个方法中G 2013年05月18日16:19:16
好吧 上个问题依然没解决
发现了一个新知识 看来没C++基础 真是坑爹
|| 表示逻辑上的“或者”
&& 表示逻辑上的“并且”
if(_hongqiu ==NULL&&_lanqiu ==NULL&&_huangqiu==NULL)
this->addqiu();
创建一个自定义时间间隔的定时器,时间间隔不能小于帧间隔
1 |
2 |
3 |
4 |
5 |
6 |
先1.0秒之后执行一次,再每1.5秒执行一次共5次(注:如果最后一个参数为0的话会1.5秒执行6次)
1 |
2 |
3 |
4 |
5 |
6 |
J s格式字符 用来输入字符串