Cocos2d-android 学习笔记

Cocos2d-android 学习笔记,第1张

概述/*SurfaceView getHolder() -->SurfaceHolderSurfaceHolder 代理者 代理Surface完成界面相关的 *** 作 getSurface lockCanvas() unlockCanvasAndPost(Canvas c) 放在finally块中 Surface lockCanvas() lockCanvas(Rect dir
/*SurfaceVIEw 	getHolder() -->SurfaceHolderSurfaceHolder 代理者 代理Surface完成界面相关的 *** 作	getSurface	lockCanvas()	unlockCanvasAndPost(Canvas c) 放在finally块中	Surface	lockCanvas()	lockCanvas(Rect dirty) --> Canvas 锁定一个矩形区域当作画布	                                  花东西	unlockCanvas(Canvas c)		  解锁,更新界面	FPS : 帧率  >=30 性能的最低要求Point  	x   y   copyOnWriteListRect 	contain(x,y)Cocos2d_AndroIDCCDirector  管理场景  与SurfaceVIEw 打交道 derived from CCDirector.sharedDirector()	attachInVIEw() 开启绘制线程 	runWithScene(scene)	replaceScene(scene)	setdisplayFPS(true)	onResume() onPause() end()	setDeviceOrIEntation(CCDirector.kCCdiviceOrIEntation...)	setScreenSize(x,y); 480 320	getWinSize()	CCSecene  derived from CCSecene.node()	addChild(layer)  把树根与树枝连在一起	作为parents存在在一个场景所以的cclayer中,有且只有一个cclayer可以处理touch事件cclayer  extends CCNode implements CCtouchDelegateProtocol	addChild(leaf)	setScaleX() setScaleY()  setScale() 	setIstouchEnabled(true)	主要处理 CCtouchDelegateProtocol 里面的方法	cctouchesBegan() 按下 	cctouchesMoved()	cctouchesCancel	converttouchToNodeSpace(MotionEvent)		坐标原点在左下角	图片的锚点 默认在图片的中心	setAnchorPoint(0,0)	坐标的计算越简单越好	图片位置的确定 结合锚点和坐标综合定位CCSprite  derived from CCSprite.sprite(filepath)  assets文件夹上的图片资源	setFlipX(true) 在x轴上的镜像	setposition(CGPoint) CGPoint deprived from CGPoint.ccp(x,y);		addChild() 按照添加的顺序决定显示的优先级 默认后添加的优先级高	addChild(child,priority);priority表示在z轴的位置	addChild(child,priority,tag);priority表示在z轴的位置	getChildByTag();	getBoundingBox()-->CGRect	serOpacity(0--255)	setVisible()	removeSelf();	runAction()	stopAllActions()		--cclabel --> cclabel.makeLable(text,Font,Fontsize);  .ttf 放置于assets目录下		setcolor(color)	fps_images.png cocos2d需要的图片  所以要把这张图片放在自己的assets目录下CCNode CGRect  static containsPoint(aRect,Point)CCAction 	--CCFiniteTimeAction 受时间限制的动作		--CCInstantAction 瞬时当作		--CCIntervalAction 瞬时当作			--CCMoveto derived from CCMoveto.action(float time,CGPoint pos)			--CCMoveBy derived from CCMoveBy.action(float time,CGPoint pos) 相对移动				reverse();			CCSequence CCSequence.actions(...actions)						--CCJumpBy -->CCJumpBy.action(time,goal_position,height,jumps)height实际的最高点			--CCBezIErBy -->CCBezIErBy.action(time,CCBezIErConfig)  				CCBezIErConfig.centrolPoint_1  CCBezIErConfig.centrolPoint_2(最高点) CCBezIErConfig.endposition			--CCEaseAction 				--CCEaseIn-->CCEaseIn.action(action,rate) 加速				--CCEaSEOut-->CCEaseIn.reverse()						--CCScaleBy -->CCScaleBy.action(int time,int scale); scale 缩放的比例			--CCRotateBy --> CCRotateBy.action(time,angle) 总是顺时针			--CCRotateto --> CCRotateto.action(time,angle) >180 逆时针转 偷懒			--CCTintBy (颜色渐变) CCTintBy.action(time,color) cccolor3B-->cccolor3B.ccc(r,g,b)			--CCBlink  (闪烁动画) CCBlink.action(time,blinkTimes)			--CCHIDe --> CCHIDe.action();			--CCShow --> CCShow.action();			CCDelayTime() 停歇动画			起点 终点 时间间隔 	以下三个都不受时间限制	--CCFollow  跟着一个CCNode 跑  layer follow a hero 	--CCRepeatForever 应用场景 行走的序列帧播放		CCRepeatForever.action(action)	--CCSpeed 游戏速度的控制 当作组合  串联当作	CCSpawn --> CCSpawn.actions(actions,params) actions 串联 一个或多个params 		reverse()地图的制作	.tmx	图片要用相对路径	name must be English	对象层的数据存储需要注意顺序		地图的加载	CCTMXTiledMap --> CCTMXTiledMap.tiledMap(tmxfile) tmxfile in assets	地图解析	CCTMXObjectGroup -->CCTMXTiledMap.objectGroupname(name)		objects --> ArrayList<HashMap<String,String>>	CCCallFunc-->CCCallFunc.action(target,selector) target.getClass().getmethod(selector) public method	CGPointUtil.distance(pos1,pos2)序列帧的播放	CCAnimate -->CCAnimate.action(CCAnimation anim)	CCAnimation --> CCAnimation.animation(name,delay,ArrayList<CCSpriteFrame> frames)	CCSpriteFrame --> CCSprite.sprite(filepath).displayFrame()	String filename = "z_0%d.png"  String.foormat(filename,num);	String filename = "z_%02d.png" (1--99) String.foormat(filename,num);粒子系统  	CCParticleSystem --> 		--CCParticleSNow  -->CCParticleSNow.node();			setTexture(CCTextureCache.sharedTextureCache().addImage(imgurl))  in assets			stopSystem()	ParticleDesigner   .pList声音引擎 	音乐+音效 MediaPlayer + SoundPool	SoundEngine-->sharedSoundEngine()		playSound(ctxt,resID,isLoop)地图移动	大地图移动 		CCFollow   CCFollow action follow hero			action(CCNode)  	小地图的移动		setIstouchEnable(true)		overrIDe cctouchesMoved(MotionEvent event)			gameMap.touch	如果需要手动移动地图 必须将地图的锚点设置成中心点 修改地图的坐标(中心)		gameMap.getContentSize() -->CGSize	gameMap.addChild(sprite) 将地图和精灵绑在一起	gameMap.getParent() -->layer	游戏暂停	主layer Demolayer 和 处理的暂停的layer PauseLayer	overrIDe cctouchBegan()-->显示暂停layer 冻结主layer 		关于暂停layer的添加 必须添加到场景中		this.getParent.addChild()  this-->主layer	this.onExit();	游戏继续	PauseLayer.removeSelf()	Demolayer.this.onEnter()	植物VS僵尸	展示logo 停顿一会 隐藏logo 停顿一会	背景图片加载 进度条处理	耗时 *** 作: 访问网络 版本检测 预加载图片 预加载声音文件欢迎界面 	展示FPS  引入图片(切记) 设置屏幕方向 设置屏幕大小 activity全屏	CCAnimate.action(animation,boolean stroe); 第二个参数取false 表示只播放一次序列帧	Layer.getChildByTag()界面切换	切换场景	淡入淡出 CCFadeTransition.Transition(time,CCScene);		derector.replaceScene(Transition)菜单 *** 作	Ccmenu -->Ccmenu.menu();		--addChild(CcmenuItemSprite item)	CcmenuItemSprite  --> CcmenuItemSprite.item(CCNode normalSprite,CCNode selectedSprite,CCNode target,String selector); public voID selector(Obect o) 要加参数 指明哪个精灵被激活了		地图展示(不能处理用户touch)	展示对战对图(展示时间)--> 加载展示用的僵尸(展示用的点位) --> 移动地图(停留一会) --> 展示两个容器	植物选择(处理用户touch)	加载玩家已经获取到的植物信息 --> 选择植物 --> 取消植物 --> 点击一起摇滚	游戏开始前的准备工作(不能处理用户touch) 	回收玩家已有的植物容器 --> 移动地图 --> 回收展示用的僵尸 --> 播放序列帧: 准备 安放 植物	对战处理(处理用户touch)		对战处理 用户可以touch	对战元素分析+战场划分	公共部分+分支	公共部分:元素创建+元素的销毁及存活过程中的动作信息+死亡监听		分支处理: 植物+僵尸+产物			植物				生产型植物+攻击型植物+防御型植物				向日葵 普通豌豆射手 坚果墙			僵尸: 				按等级划分 初级僵尸 终极僵尸			产物: 				子d+阳光		添加僵尸 (集合)		lineNum * 2  是起点 lineNum * 2 + 1 是终点	安放僵尸	僵尸攻击植物 (判断当前所在的块内是否有植物)		记录僵尸的工作状态 boolean		如果僵尸正在攻击 		停止僵尸所有的动作		播放僵尸攻击的序列帧		造成植物的持续性杀伤			植物攻击僵尸   攻击型植物的集合 + 僵尸的集合中是否有僵尸	辅助功能		阳关管理		游戏进度:游戏的整体进度(植物冷冻 整体进度)	安放植物 		位置计算 ( 16 + ((ID - 1) % rowNum) * 54,175 - ((ID - 1)/rowNum) *59 )	CGPointUtil.distance(Pos1,Pos2);	每隔多长时间做上面事情	CCSchedule --> CCSchedule.sharedSchedule.schedule(selector,target,float interval,boolean paused)  			selector方法要带一个float 参数 --> selector(float t){}			停止timer: CCSchedule.sharedSchedule.unSchedule(selector,target)	游戏进度	CCProgresstimer --> CCProgresstimer.progressWithfile("res")		--setYype(int newType) 		--setPercentage(float percent)		CCGLSurfaceVIEw*/
总结

以上是内存溢出为你收集整理的Cocos2d-android 学习笔记全部内容,希望文章能够帮你解决Cocos2d-android 学习笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存