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

第1天的地址:

http://blog.csdn.net/xingxiliang/article/details/18557631

书接上回:今天我们让我们的飞镖可以打死怪物。

更新:出品了box2d编辑工具PhysicsEditor的视频(一起做一个实战级别的游戏,需要MAC操作系统)http://blog.csdn.net/s_xing/article/details/21331459

更新:出品了box2d物理引擎视频http://blog.csdn.net/s_xing/article/details/20836727

更新:终于出进阶篇了http://blog.csdn.net/s_xing/article/details/20165097请大家关注


avi版本可以方便的在手机,pc上查看。下载地址:http://pan.baidu.com/s/1ELk78


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里面如何用texture picker和像素格式来优化spritesheet.pdf (译)在cocos2d里如何制作各种按钮.pdf (译)如何使用cocos2d制作基于tilemap的游戏教程 第一部分.pdf (译)如何在cocos2d里面使用动画和spritesheet.pdf (译)如何用cocos2d制作iphone游戏:旋转炮塔.pdf (译)如何用cocos2d制作iphone游戏:更猛的怪物和更多得管卡.pdf (译)如何使用cocos2d制作一个Slide Image Game:第一部分.pdf (译)如何使用cocos2d来制作一个塔防游戏:第一部分.pdf cocos2d 2.0 添加遮罩.pdf iOS Code Signing解惑.pdf iPhone上面的现实增强(Augmented Reality)入门教程.pdf OpenGL ES2.0 – Iphone开发指引.pdf OpenGLES2.0 Iphone开发指引:第二部分,纹理贴图.pdf 使用cocos2d和box2d制作滚动背景.pdf 加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分.pdf 在cocos2d里面如何使用物理引擎box2d:弹球.pdf 在cocos2d里面如何拖拽精灵.pdf 如何使用box2d来做碰撞检测(且仅用来做碰撞检测).pdf 如何使用CCRenderTexture来创建动态纹理.pdf 如何使用cocos2d1.0来给sprite添加Mask(遮罩).pdf 如何使用cocos2d制作一个塔防游戏:引子.pdf 如何使用cocos2d制作一个太空射击游戏.pdf 如何使用cocos2d制作一个打地鼠的游戏:(第二部分。完).pdf 如何使用cocos2d和box2d来制作一个Breakout游戏:第一部分.pdf 如何使用cocos2d和box2d来制作一个Breakout游戏:第二部分(完).pdf 如何使用cocos2d来制作一个打地鼠的游戏:第一部分.pdf 如何使用GameCenter制作一个简单的多人游戏教程:第一部分.pdf 如何使用GameCenter制作一个简单的多人游戏教程:第二部分.pdf 如何使用NSCoding和NSFileManager来保存你的应用程序数据.pdf 如何制作一个类似tiny wings的游戏:第一部分.pdf 如何制作一个类似tiny wings的游戏:第二部分(完).pdf 如何升级你的cocos2d版本.pdf 如何学好Iphone开发.pdf 如何查找资料.pdf 碰撞检测和收集物品:如何使用cocos2d制作基于tiled地图的游戏:第二部分.pdf (译)cocos2d精灵教程:第一部分.pdf (译)cocos2d精灵教程:第三部分.pdf (译)cocos2d精灵教程:第二部分.pdf (译)cocos2d菜单教程:第一部分.pdf (译)cocos2d菜单教程:第三部分(完).pdf (译)cocos2d菜单教程:第二部分.pdf (译)使用cocos2d和box2d来制作一个platformer游戏.pdf (译)如何使用cocos2d制作一个塔防游戏:第三部分.pdf (译)如何使用cocos2d制作一个塔防游戏:第二部分.pdf (译)如何使用cocos2d制作一个塔防游戏:第四部分(完).pdf (译)如何使用cocos2d制作一个滑动图片游戏教程:第二部分(完).pdf (译)如何用cocos2d制作一款简单的iphone游戏(第一部分).pdf
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值