哇!板球 源码分析三

守门员出场

守门员出场,每个守门员是从屏幕的右侧中间的位置随机方向向左侧移动

FielderSprite* fielderSprite1 = FielderSprite::create("pic/fielder.png");
	//守门员精灵初始位置为右侧中间位置
	fielderSprite1->setPosition(ccp(GOALKEEPER_X, GOALKEEPER_Y));
	fielderSprite1->setAnchorPoint(ccp(0.5, 0.5));//默认锚点为0.5,0.5
	//将fielder精灵添加到布景中
	this->addChild(fielderSprite1, GAME_LEVEL_WYF);

动作序列中的6个动作,终点都在最左侧

	CCActionInterval* at1=CCMoveBy::create(3.5,CCPointMake(-800,-170));
	CCActionInterval* at2=CCMoveBy::create(4,CCPointMake(-800,-100));
	CCActionInterval* at3=CCMoveBy::create(2.5,CCPointMake(-800,-30));
	CCActionInterval* at4=CCMoveBy::create(4.5,CCPointMake(-800,40));
	CCActionInterval* at5=CCMoveBy::create(5,CCPointMake(-800,110));
	CCActionInterval* at6=CCMoveBy::create(3,CCPointMake(-800,180));

随机移动的6条线路

	int r = rand()%6;
	switch(r)
	{
	case 0:
		fielderSprite1->runAction(at1);
		fielderSprite1->ccat=at1;
		fielderSprite1->mark=1;break;
	case 1:
		fielderSprite1->runAction(at2);
		fielderSprite1->ccat=at2;
		fielderSprite1->mark=2;break;
	case 2:
		fielderSprite1->runAction(at3);
		fielderSprite1->ccat=at3;
		fielderSprite1->mark=3;break;
	case 3:
		fielderSprite1->runAction(at4);
		fielderSprite1->ccat=at4;
		fielderSprite1->mark=4;break;
	case 4:
		fielderSprite1->runAction(at5);
		fielderSprite1->ccat=at5;
		fielderSprite1->mark=5;break;
	case 5:
		fielderSprite1->runAction(at6);
		fielderSprite1->ccat=at6;
		fielderSprite1->mark=6;break;
	}

将定时器在一次创建的守门员都添加到array中,用于后面检测是否与球碰撞了

array->addObject(fielderSprite1);

哇!板球 源码分析三

时间: 2024-11-16 05:56:42

哇!板球 源码分析三的相关文章

Nouveau源码分析(三):NVIDIA设备初始化之nouveau_drm_probe

Nouveau源码分析(三) 向DRM注册了Nouveau驱动之后,内核中的PCI模块就会扫描所有没有对应驱动的设备,然后和nouveau_drm_pci_table对照. 对于匹配的设备,PCI模块就调用对应的probe函数,也就是nouveau_drm_probe. // /drivers/gpu/drm/nouveau/nouveau_drm.c 281 static int nouveau_drm_probe(struct pci_dev *pdev, 282 const struct

[Android]Fragment源码分析(三) 事务

Fragment管理中,不得不谈到的就是它的事务管理,它的事务管理写的非常的出彩.我们先引入一个简单常用的Fragment事务管理代码片段: FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction(); ft.add(R.id.fragmentContainer, fragment, "tag"); ft.addToBackStack("<span style="fo

哇!板球 源码分析二

游戏主页面布局 创建屏下Score标签 pLabel = CCLabelTTF::create("Score", "Arial", TITLE_FONT_SIZE); //分数标签 //设置标签字体的颜色 pLabel->setColor (ccc3(0, 0, 0)); //设置文本标签的位置 pLabel->setPosition ( ccp ( SCORE_X, //X坐标 SCORE_Y //Y坐标 ) ); //将文本标签添加到布景中 this

哇!板球 源码分析一

游戏主菜单页面 BeginLayer类封装该页面,init函数初始化该页面布景 该页面背景 isDialog = false; setKeypadEnabled(true); //开启按键事件 CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); //获取可见区域原点坐标 CCS

baksmali和smali源码分析(三)

baksmali 的源码分析 在baksmali进行源码分析之前,需要读者掌握一条主线,因为本身笔者只是由于项目需要用到这套源码,在工作之余的时间里面来进行学习也没有时间和精力熟读源码的每个文件每个方法,但是依据这条主线,至少能够猜出并且猜对baksmali里面的源码的文件大概的作用是什么,这样在修改问题和移植的时候才能做到游刃有余. 这条主线是,baksmali其实只是利用了dexlib2提供的接口,将dex文件读入到一块内存中,这块内存或者说数据结构开辟的大小是跟输入的dex文件相关的,而这

横屏小游戏--萝莉快跑源码分析三

主角出场: 初始化主角 hero = new GameObjHero(); hero->setScale(0.5); hero->setPosition(ccp(100,160)); hero->setVisible(false); addChild(hero,1); 进入GameObjHero类ccp文件 创建主角及动作 this->setContentSize(CCSizeMake(85,90)); //接收触摸事件 CCDirector* pDirector = CCDire

ABP源码分析三十三:ABP.Web

ABP.Web模块并不复杂,主要完成ABP系统的初始化和一些基础功能的实现. AbpWebApplication : 继承自ASP.Net的HttpApplication类,主要完成下面三件事一,在Application_Start完成AbpBootstrapper的初始化.整个ABP系统的初始化就是通过AbpBootstrapper完成初始化的.二,在Application_BeginRequest设置根据request或cookie中的Culture信息,完成当前工作线程的CurrentCu

ABP源码分析三十一:ABP.AutoMapper

这个模块封装了Automapper,使其更易于使用. 下图描述了改模块涉及的所有类之间的关系. AutoMapAttribute,AutoMapFromAttribute和AutoMapToAttribute:这三个attribute用于标注一个类到另外一个类的map方向. AutoMapperHelper: 通过调用Automapper的API,根据类的AutoMap的特性完成类型之间的Map. AbpAutoMapperModule: 1. 查找项目中所有标注了AutoMap特性的类型,并完

Android 中View的绘制机制源码分析 三

到目前为止,measure过程已经讲解完了,今天开始我们就来学习layout过程,不过在学习layout过程之前,大家有没有发现我换了编辑器,哈哈,终于下定决心从Html编辑器切换为markdown编辑器,这里之所以使用"下定决心"这个词,是因为毕竟Html编辑器使用好几年了,很多习惯都已经养成了,要改变多年的习惯确实不易,相信这也是还有很多人坚持使用Html编辑器的原因.这也反应了一个现象,当人对某一事物非常熟悉时,一旦出现了新的事物想取代老的事物时,人们都有一种抵触的情绪,做技术的