cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第3天

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:44 点击:

 

 

1. 数据结构的选择

// array 插入 删除效率低 ;查找、遍历效率高
// list 插入 删除效率高;查找、遍历效率 低
// 添删:怪物出现 飞镖出现  碰撞 用的次数少
// 遍历: 1.0/fps 时间进行一次遍历 用的次数多
// 选用array

2. 碰撞检测的函数

 


void HelloWorld::update(float delta) // delta = 1.0 / fps
{
	CCArray* targetToDelete = new CCArray;
	CCArray* projToDelete = new CCArray;
	CCObject* itarget;
	CCObject* iproj;
	CCARRAY_FOREACH(_targets, itarget){
		CCSprite* target = (CCSprite*)itarget;

		CCRect targetZone = CCRectMake(target->getPositionX(),
			target->getPositionY(),
			target->getContentSize().width,
			target->getContentSize().height);

		CCARRAY_FOREACH(_projs, iproj){
			CCSprite* proj = (CCSprite*)iproj;
			CCRect projZone = CCRectMake(proj->getPositionX(),
				proj->getPositionY(),
				proj->getContentSize().width,
				proj->getContentSize().height);

			if (projZone.intersectsRect(targetZone)){
				projToDelete->addObject(iproj);
				targetToDelete->addObject(itarget);
			}
		} // end of iterate projectile


	} // end of iterate target

	CCARRAY_FOREACH(projToDelete, iproj){
		_projs->removeObject(iproj);
		CCSprite* proj = (CCSprite*)iproj;
		proj->removeFromParentAndCleanup(true);
	}

	CCARRAY_FOREACH(targetToDelete, itarget){
		_targets->removeObject(itarget);
		CCSprite* target = (CCSprite*)itarget;
		target->removeFromParentAndCleanup(true);
	}

	targetToDelete->release();
	projToDelete->release();}

注意:不可以在遍历CCArray的同时 从CCArray中删除成员。

 

 

3. 使用CCSprite->setTag(int)

这样可以为每一种不同的精灵打上标志,区分不同精灵。

 

 

 

上传到了优酷

 

http://v.youku.com/v_show/id_XNjY0MjEzNzI0.html 第1课

http://v.youku.com/v_show/id_XNjY0MjMzMzYw.html 第2课

http://v.youku.com/v_show/id_XNjY0MjU1OTcy.html 第3课

http://v.youku.com/v_show/id_XNjY0MzQxMDE2.html 第4课

http://v.youku.com/v_show/id_XNjY1MTI3NjYw.html 第5课

http://v.youku.com/v_show/id_XNjY1MTI5ODQw.html 第6课

 

 

高清还请从百度网盘下载。


转载请注明出处:http://blog.csdn.net/xingxiliang/article/details/18557631

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • cocos2d-x学习笔记(19)--label 、label atlas
    • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
    • Cocos2d-x学习(一):HelloWorld
    • cocos2dx在xcode下开发,编译到android上(2)
    • cocos2d 设置屏幕默认方向
    • Cocos2d-x 2.0 之 Actions “三板斧” 之一
    • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
    • cocos2d-x学习笔记(18)--游戏打包(windows平台)
    • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1